在 Java 中发送电子邮件17 Mar 2025 | 5 分钟阅读 有多种方法可以使用 JavaMail API 发送电子邮件。 为此,您必须拥有负责发送邮件的 SMTP 服务器。 您可以使用以下技术之一来获取 SMTP 服务器 - 安装并使用任何 SMTP 服务器,例如 Postcast 服务器、Apache James 服务器、cmail 服务器等。(或)
- 使用主机提供商提供的 SMTP 服务器,例如我的 SMTP 服务器是 mail.javatpoint.com(或)
- 使用其他公司(例如 gmail 等)提供的 SMTP 服务器。
在这里,我们将学习使用 javamail API 发送电子邮件的上述三种方法。 但是我们应该学习从 java 应用程序发送电子邮件的基本步骤。
使用 JavaMail API 发送电子邮件的步骤使用 JavaMail 发送电子邮件的三个步骤如下 - 获取会话对象,该对象存储主机的所有信息,例如主机名、用户名、密码等。
- 撰写消息
- 发送消息
1) 获取会话对象javax.mail.Session 类提供了两种方法来获取会话对象,Session.getDefaultInstance() 方法和 Session.getInstance() 方法。 您可以使用任何方法来获取会话对象。 Session 类的方法编号。 | 方法 | 描述 |
---|
1 | public static Session getDefaultInstance(Properties props) | 返回默认会话。 | 2 | public static Session getDefaultInstance(Properties props,Authenticator auth) | 返回默认会话。 | 3 | public static Session getInstance(Properties props) | 返回新会话。 | 4 | public static Session getInstance(Properties props,Authenticator auth) | 返回新会话。 |
getDefaultInstance() 方法的示例getInstance() 方法的示例Properties properties=new Properties();
//fill all the information like host name etc.
Session session=Session.getInstance(properties,null);
2) 撰写消息javax.mail.Message 类提供了撰写消息的方法。 但它是一个抽象类,因此其子类 javax.mail.internet.MimeMessage 类最常用。 | 要创建消息,您需要在 MimeMessage 类构造函数中传递会话对象。 例如 |
现在已经创建了消息对象,但是要将信息存储在此对象中,MimeMessage 类提供了许多方法。 让我们看看 MimeMessage 类提供的方法 |
MimeMessage 类的常用方法编号。 | 方法 | 描述 |
---|
1 | public void setFrom(Address address) | 用于设置 from 标头字段。 | 2 | public void addRecipient(Message.RecipientType type, Address address) | 用于将给定地址添加到收件人类型。 | 3 | public void addRecipients(Message.RecipientType type, Address[] addresses) | 用于将给定地址添加到收件人类型。 | 4 | public void setSubject(String subject) | 用于设置主题标头字段。 | 5 | public void setText(String textmessage) | 用于使用 text/plain MIME 类型将文本设置为消息内容。 | 6 | public void setContent(Object msg, String contentType) | 用于使用给定的 MIME 类型将内容设置为消息内容。 |
撰写消息的示例
3) 发送消息javax.mail.Transport 类提供了发送消息的方法。 |
Transport 类的常用方法编号。 | 方法 | 描述 |
---|
1 | public static void send(Message message) | 用于发送消息。 | 2 | public static void send(Message message, Address[] address) | 用于将消息发送到给定地址。 |
发送消息的示例
在 Java 中发送电子邮件的简单示例在此示例中,我们将学习如何通过安装在机器上的 SMTP 服务器发送电子邮件,例如 Postcast 服务器、Apache James 服务器、Cmail 服务器等。 如果您想通过主机提供商提供的 SMTP 服务器发送电子邮件,请参见此示例之后的示例。 | 要使用 JavaMail API 发送电子邮件,您需要加载两个 jar 文件下载这些 jar 文件 或访问 Oracle 站点下载最新版本。 |
在此示例中,我们将学习如何通过安装在机器上的 SMTP 服务器发送电子邮件,例如 Postcast 服务器、Apache James 服务器、Cmail 服务器等。 如果您想通过主机提供商提供的 SMTP 服务器发送电子邮件,请参见此示例之后的示例。 要运行此示例,您需要加载两个 jar 文件。 有 4 种加载 jar 文件的方法。 其中一种方法是设置 classpath。 让我们看看如何运行这个例子 加载jar文件 | c:\> set classpath=mail.jar;activation.jar;.; | 编译源文件 | c:\> javac SendEmail.java | 通过运行 | c:\> java SendEmail |
通过主机提供商提供的 SMTP 服务器在 Java 中发送电子邮件的示例如果您使用主机提供商提供的 SMTP 服务器(例如 mail.javatpoint.com),则需要验证用户名和密码。 javax.mail.PasswordAuthentication 类用于验证密码。 | 如果您使用 JavaMail API 发送电子邮件,请加载两个 jar 文件下载这些 jar 文件 或访问 Oracle 站点下载最新版本。 |
正如您在上面的示例中看到的,需要验证 userid 和密码。 正如该程序所示,您可以轻松发送电子邮件。 相应地更改用户名和密码。 让我们再次通过简单技术看看如何运行它 加载jar文件 | c:\> set classpath=mail.jar;activation.jar;.; | 编译源文件 | c:\> javac SendMailBySite.java | 通过运行 | c:\> java SendMailBySite |
|