“是我——又是我。再一次,我有一个小惊喜要给你。”
“今天我要教你如何使用 Java 发送电子邮件。 ”
“让我们从好消息开始吧:Java 有一个用于处理电子邮件的本机库。 ”
“坏消息是这个库是Java EE的一部分,而不是Java SE。”
“ Java EE是JavaSE的扩展版本,其中包含更漂亮的应用程序所需的类。例如,处理电子邮件的应用程序。”
“知道了,那有什么办法呢?”
“好吧,我建议你只下载这个库就可以了。”
“明智地使用 IntelliJ IDEA。”
“创建一个类并将javax.mail.*和javax.mail.internet.*库添加到导入部分。
“然后按Alt+Enter,让IDEA为你做一切:
“这是下载缺失库的提议:”

“这是下载窗口的样子:”

“或者你可以在这里下载它”
“已下载。下一步是什么?”
“您需要转到项目设置(打开模块设置)的库部分,然后从下载的存档中添加 JAR 文件。”

“完毕。”
“下面的线不再是红色的了吗?”
import javax.mail.internet.MimeMessage;
import javax.mail.internet.*;
“是的。”
“很好,那我们继续吧。”
“发送电子邮件需要三个步骤。”
1) 与将用于发送电子邮件的邮件服务器建立连接
2) 创建电子邮件,如有必要,添加附件
3) 发送电子邮件。
“让我们从头开始。”
“要用 Java 发送电子邮件,首先需要与邮件服务器建立连接。”
“如果您在服务器上已有电子邮件帐户,那最好。担心垃圾邮件,现代邮件服务器不想发送来自匿名用户的邮件。 ”
“您可以通过调用 javax.mail.Session.getDefaultInstance 方法连接到服务器:”
Properties props = new Properties();
// Here we need to load data into the props object
Session session = Session.getDefaultInstance(props);
“但是你需要将邮件服务器设置传递给这个方法。”
“例如,您可以创建一个 Mail.properties 文件并用所需的设置填充它,例如,如下所示:”
mail.transport.protocol=smtp
mail.host=smtp.gmail.com
mail.smtp.auth=true
mail.user=arnold@gmail.com
mail.password=strong
“最重要的是指定协议和主机,但您可能需要其他设置,具体取决于邮件服务器的工作方式。”
“您可以简单地将此数据添加到 Java 代码中的 Properties 对象中。”
“例如:”
Properties props = new Properties();
props.put("mail.transport.protocol", "smtps");
props.put("mail.smtps.host", “smtp.gmail.com”);
props.put("mail.smtps.auth", "true");
props.put("mail.smtp.sendpartial", "true");
Session session = Session.getDefaultInstance(props);
“太好了,我们有一个会话。现在让我们创建一封电子邮件。”
“这比乍看起来更容易做到。例如:”
// Create a message
MimeMessage message = new MimeMessage(session);
// Set the message subject
message.setSubject("Test email!");
// Add the message text
message.setText("Asta la vista, baby!");
// Specify the recipient
message.addRecipient(Message.RecipientType.TO, new InternetAddress("stalone@gmail.com"));
// Specify the delivery date
message.setSentDate(new Date());
“我可以指定任何电子邮件地址作为收件人吗?”
“可以。而且,您还可以指定任何电子邮件地址作为发件人。”
“酷!我会考虑的。”
“现在我们只需要发送这个消息。”
“首先,我们登录到服务器,然后发送消息。只需两行代码:”
// Username and password for a Gmail account
String userLogin = “arnold@gmail.com”;
String userPassword = “strong”;
// Sign in on the server:
Transport transport = session.getTransport();
transport.connect("smtp.gmail.com", 465, userLogin, userPassword);
// Send a message:
transport.sendMessage(message, message.getRecipients(Message.RecipientType.TO));
“真有意思!我得试试。”
“如果您想知道如何发送带附件的消息,可以在此处阅读相关内容。”
“如果你也想了解如何接收邮件,请看这里。”
“我的天啊。多么有用的链接!”
“是的,我现在要制作自己的电子邮件客户端。酷!”
“谢谢,艾莉!”
GO TO FULL VERSION