Java 如何用 163 邮箱发送邮件
介绍
在日常开发中,我们经常需要通过邮件来发送消息、通知、报告等。Java 提供了一种简便的方式来发送电子邮件,本文将介绍如何使用 Java 代码来通过 163 邮箱发送邮件。
准备工作
在开始之前,我们需要确保已经拥有一个 163 邮箱账号。如果没有,请先注册一个账号,并记下邮箱地址和对应的授权码。
代码示例
以下是一个简单的 Java 代码示例,用于发送邮件:
import javax.mail.*;
import javax.mail.internet.*;
import java.util.Properties;
public class MailSender {
public static void main(String[] args) {
// 163 邮箱 SMTP 配置信息
String host = "smtp.163.com";
String username = "your_email@163.com";
String password = "your_password";
// 收件人地址
String toAddress = "recipient@example.com";
// 邮件主题
String subject = "Java 邮件发送示例";
// 邮件内容
String content = "这是一封使用 Java 代码通过 163 邮箱发送的邮件示例。";
// 创建一个 Properties 对象,用于设置 SMTP 服务器信息
Properties props = new Properties();
props.put("mail.smtp.host", host);
props.put("mail.smtp.auth", "true");
// 创建一个 Authenticator 对象,用于进行 SMTP 用户名和密码认证
Authenticator authenticator = new Authenticator() {
@Override
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(username, password);
}
};
// 创建一个 Session 对象,用于与 SMTP 服务器进行通信
Session session = Session.getDefaultInstance(props, authenticator);
try {
// 创建一个 MimeMessage 对象
MimeMessage message = new MimeMessage(session);
// 设置发件人地址
message.setFrom(new InternetAddress(username));
// 设置收件人地址
message.setRecipient(Message.RecipientType.TO, new InternetAddress(toAddress));
// 设置邮件主题
message.setSubject(subject);
// 设置邮件内容
message.setText(content);
// 发送邮件
Transport.send(message);
System.out.println("邮件发送成功!");
} catch (MessagingException e) {
e.printStackTrace();
}
}
}
代码解析
引入依赖
在上述代码中,我们使用了 JavaMail API 来发送邮件。为了使用该 API,我们需要在项目中引入依赖。如果使用 Maven 管理项目,可以在 pom.xml
文件中添加以下依赖:
<dependencies>
<dependency>
<groupId>javax.mail</groupId>
<artifactId>mail</artifactId>
<version>1.4.7</version>
</dependency>
</dependencies>
设置 SMTP 服务器信息
在代码中,我们首先需要设置 163 邮箱的 SMTP 服务器信息。通过创建一个 Properties
对象,并将 SMTP 服务器地址和认证信息设置为属性键值对的形式,即可完成该步骤。
// 163 邮箱 SMTP 配置信息
String host = "smtp.163.com";
String username = "your_email@163.com";
String password = "your_password";
// 创建一个 Properties 对象,用于设置 SMTP 服务器信息
Properties props = new Properties();
props.put("mail.smtp.host", host);
props.put("mail.smtp.auth", "true");
创建 Session 对象
接下来,我们需要创建一个 Session
对象,用于与 SMTP 服务器进行通信。在创建 Session
对象时,我们需要传入上一步设置好的 Properties
对象和一个 Authenticator
对象,用于进行 SMTP 用户名和密码的认证。
// 创建一个 Authenticator 对象,用于进行 SMTP 用户名和密码认证
Authenticator authenticator = new Authenticator() {
@Override
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(username, password);
}
};
// 创建一个 Session 对象,用于与 SMTP 服务器进行通信
Session session = Session.getDefaultInstance(props, authenticator);
构建邮件内容
在构建邮件内容时,我们需要设置发件人地址、收件人地址、邮件主题和邮件内容等信息。在代码示例中,我们使用了 MimeMessage
类来表示邮件对象,并设置相关属性。
// 创建一个 MimeMessage 对象
MimeMessage message = new MimeMessage(session);