{"title":"Java SMTP邮件发送示例:不使用第三方库进行Base64编码标题和内容", "description":"本文提供了一个使用Java实现SMTP邮件发送的示例,并展示了如何使用Base64编码标题和内容,而无需依赖第三方库。", "keywords":"Java, SMTP, 邮件发送, Base64编码, 邮件标题, 邮件内容, 不使用第三方库, Socket", "content":""下面是一个使用Java编写的SMTP发信示例,其中包括将标题和内容进行Base64编码的步骤,不使用第三方库。\n\njava\nimport java.io.*;\nimport java.net.Socket;\nimport java.nio.charset.StandardCharsets;\nimport java.util.Base64;\n\npublic class SMTPSender {\n\n public static void main(String[] args) {\n String smtpServer = \"smtp.example.com\";\n int port = 25;\n String sender = \"sender@example.com\";\n String recipient = \"recipient@example.com\";\n String subject = \"Test Subject\";\n String message = \"This is a test email.\";\n\n try {\n Socket socket = new Socket(smtpServer, port);\n BufferedReader reader = new BufferedReader(new InputStreamReader(socket.getInputStream()));\n BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream()));\n\n // 读取服务器响应\n String response = reader.readLine();\n System.out.println(response);\n\n // 发送HELO命令\n writer.write(\"HELO \" + smtpServer + \"\r\n\");\n writer.flush();\n response = reader.readLine();\n System.out.println(response);\n\n // 发送发件人命令\n writer.write(\"MAIL FROM:<\" + sender + \">\r\n\");\n writer.flush();\n response = reader.readLine();\n System.out.println(response);\n\n // 发送收件人命令\n writer.write(\"RCPT TO:<\" + recipient + \">\r\n\");\n writer.flush();\n response = reader.readLine();\n System.out.println(response);\n\n // 发送数据命令\n writer.write(\"DATA\r\n\");\n writer.flush();\n response = reader.readLine();\n System.out.println(response);\n\n // 发送邮件头部\n writer.write(\"From: \" + sender + \"\r\n\");\n writer.write(\"To: \" + recipient + \"\r\n\");\n writer.write(\"Subject: =?UTF-8?B?\" + Base64.getEncoder().encodeToString(subject.getBytes(StandardCharsets.UTF_8)) + \"?=\r\n\");\n writer.write(\"MIME-Version: 1.0\r\n\");\n writer.write(\"Content-Type: text/plain; charset=UTF-8\r\n\");\n writer.write(\"\r\n\");\n\n // 发送邮件内容\n writer.write(message + \"\r\n\");\n\n // 发送结束标记\n writer.write(\".\r\n\");\n writer.flush();\n response = reader.readLine();\n System.out.println(response);\n\n // 发送QUIT命令\n writer.write(\"QUIT\r\n\");\n writer.flush();\n response = reader.readLine();\n System.out.println(response);\n\n // 关闭连接\n writer.close();\n reader.close();\n socket.close();\n } catch (IOException e) {\n e.printStackTrace();\n }\n }\n}\n\n\n在上面的示例中,我们使用Socket连接到SMTP服务器,并依次发送SMTP命令进行邮件发送。在发送邮件头部时,我们将标题进行Base64编码,并在邮件头部添加对应的Content-Type和MIME-Version信息。请将示例中的smtp.example.com替换为你的SMTP服务器地址,sender@example.comrecipient@example.com替换为发件人和收件人的邮箱地址。\n\n请注意,这只是一个基本的示例,实际的SMTP服务器可能需要进行更多的身份验证和安全措施。如果要发送带附件的邮件或使用其他高级功能,请参考SMTP协议和相关的RFC文档。"}

Java SMTP邮件发送示例:不使用第三方库进行Base64编码标题和内容

原文地址: https://www.cveoy.top/t/topic/pJKV 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录