提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
前言
简单地使用JAVA发送邮件
一、Gmail POP3 IMAP 设置
启用POP和IMAP
接下来获取16位密码
在安全性中找到两步验证,将两步验证启用。
点击两步验证,在页面最底端可以看到设置16位密码的
这样邮箱那边就设置完成啦!
二、JAVA 代码
1.导入jar包,且在 module-info.java 中引用
- 下载java.mail.jar
- Properties->Java Build Path->Libraries->Add External JARs
- 最后在module-info中添加
2.代码
记得发送邮箱和收件邮箱设置成你要的,代码如下(示例):
package mail;
import javax.mail.*;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import java.util.Properties;
// 警告: expected resource not found: /META-INF/javamail.default.address.map
// 大概率是版本问题
public class SendEmailSSL {
public static void main(String[] args) {
// 用户名
final String username = "你的邮箱";
// 密码
final String password = "你的16位密码";
// 创建一个新的Properties对象
Properties prop = new Properties();
// 设置SMTP主机名
prop.put("mail.smtp.host", "smtp.gmail.com");
// 设置SMTP主机端口号
prop.put("mail.smtp.port", "465");
// 是否启用身份认证
prop.put("mail.smtp.auth", "true");
// 下面开始配置SSL(安全套接字层)
// 设置SSL连接的端口号
prop.put("mail.smtp.socketFactory.port", "465");
// 设置SSL连接的SockerFactory类。javax.net.ssl.SSLSocketFactory是SSL套接字的默认工厂类。
prop.put("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
// 创建一个会话,且设置Authenticator(身份验证)
Session session = Session.getInstance(prop, new Authenticator() {
// 重写getPasswordAuthentication方法
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(username, password);
}
});
try {
Message message = new MimeMessage(session);
// 设置发件人地址
message.setFrom(new InternetAddress(username));
// 设置收件人地址
message.setRecipients(Message.RecipientType.TO, InternetAddress.parse("收件人的邮箱"));
// 邮件主题
message.setSubject("Subject Line");
// 邮件内容
message.setText("This is the email content.");
// 发送邮件
Transport.send(message);
System.out.println("Email sent successfully!");
} catch (MessagingException e) {
e.printStackTrace();
}
}
}