“是我——又是我。再一次,我有一个小惊喜要给你。”

“今天我要教你如何使用 Java 发送电子邮件。

“让我们从好消息开始吧:Java 有一个用于处理电子邮件的本机库。

“坏消息是这个库是Java EE的一部分,而不是Java SE。”

Java EE是JavaSE的扩展版本,其中包含更漂亮的应用程序所需的类。例如,处理电子邮件的应用程序。”

“知道了,那有什么办法呢?”

“好吧,我建议你只下载这个库就可以了。”

“明智地使用 IntelliJ IDEA。”

“创建一个类并将javax.mail.*javax.mail.internet.*库添加到导入部分。

“然后按Alt+Enter,让IDEA为你做一切:

“这是下载缺失库的提议:”

发送电子邮件 - 1

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

发送电子邮件 - 2

“或者你可以在这里下载它”

“已下载。下一步是什么?”

“您需要转到项目设置(打开模块设置)的库部分,然后从下载的存档中添加 JAR 文件。”

发送电子邮件 - 3

“完毕。”

“下面的线不再是红色的了吗?”

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 文件并用所需的设置填充它,例如,如下所示:”

邮件.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));

“真有意思!我得试试。”

“如果您想知道如何发送带附件的消息,可以在此处阅读相关内容。”

“如果你也想了解如何接收邮件,请看这里。”

“我的天啊。多么有用的链接!”

“是的,我现在要制作自己的电子邮件客户端。酷!”

“谢谢,艾莉!”