提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
前言
由于业务需要有时候需要用到邮箱功能,当前实现qq邮箱发送
一、pom依赖是什么?
<dependency>
<groupId>javax.mail</groupId>
<artifactId>javax.mail-api</artifactId>
<version>1.6.2</version>
</dependency>
<!-- SMTP transport implementation for JavaMail -->
<dependency>
<groupId>com.sun.mail</groupId>
<artifactId>smtp</artifactId>
<version>1.6.2</version>
</dependency>
二、具体使用
import javax.mail.*;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import java.util.Properties;
public class SendEmailTest {
// 发件人邮箱地址
private static String from = "xxxx@qq.com";
private static String username = "xxxx@qq.com";
private static String password = "fmhffsawpobschge";
public static void main(String[] args) {
String senEmail = "xxxx@qq.com";
String subject = "测试";
String text = "hellow world";
sendEmail(senEmail,subject,text);
}
public static void sendEmail(String senEmail,String subject,String text){
// 收件人邮箱地址
String to = senEmail;
// QQ邮箱SMTP服务器地址
String host = "smtp.qq.com";
// 配置邮件相关参数
Properties props = new Properties();
props.put("mail.smtp.auth", "true");
props.put("mail.smtp.host", host);
props.put("mail.smtp.port", "465");
props.put("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
// 创建会话对象
Session session = Session.getInstance(props, new Authenticator() {
@Override
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(username, password);
}
});
try {
// 创建邮件消息对象
Message message = new MimeMessage(session);
message.setFrom(new InternetAddress(from));
message.setRecipients(Message.RecipientType.TO, InternetAddress.parse(to));
message.setSubject(subject);
message.setText(text);
// 发送邮件
Transport.send(message);
System.out.println("Email sent successfully.");
} catch (Exception e) {
System.out.println("Email sending failed: " + e.getMessage());
}
}
}
2.参数说明
// 发件人邮箱地址 private static String from = "xxxx@qq.com"; // 发件人邮箱地址 private static String username = "xxxx@qq.com"; //授权码 private static String password = "xxxx"; public static void main(String[] args) { //收件人邮箱 String senEmail = "xxxx@qq.com"; //标题 String subject = "测试"; //正文 String text = "hellow world"; sendEmail(senEmail,subject,text); }
3、获取授权码
-
首先登录 QQ 邮箱,在邮箱主页右上角找到“设置”按钮,点击进入设置页面。
-
在设置页面中,选择“账户”选项,找到“POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务”一栏,点击“生成授权码”按钮。
-
在弹出的对话框中输入你的登录密码,点击“确定”按钮。系统将会生成一个授权码,你可以使用这个授权码来代替邮箱密码登录邮箱,进行相关操作。
注意:授权码只会显示一次,建议妥善保管好授权码,以便日后使用。
效果