假如是163邮箱必须去邮箱设置中开启IMAP/SMTP服务
复制代码只需调用次工具类,填入 发件人,收件人,主题,内容 即可
//邮箱发送所需依赖
<dependency>
<groupId>com.sun.mail</groupId>
<artifactId>javax.mail</artifactId>
<version>1.6.2</version>
</dependency>
<dependency>
<groupId>javax.mail</groupId>
<artifactId>javax.mail-api</artifactId>
<version>1.6.2</version>
</dependency>
/**
* @author Mr.Jiang
* @date 2021/12/30 12:04
* @describe 普通邮箱发送
* @param addresser 发送人
* @param recipients 收件人
* @param Subject 主题
* @param context 内容
* @throws Exception
*/
public static void sendEmail(String addresser,String recipients,String Subject,String context) throws Exception {
// 定义邮箱服务器配置
Properties props = System.getProperties();
// 设置邮件服务器主机名 (163 邮件服务器地址:"mail.smtp.host" "smtp.163.com")
props.setProperty("mail.smtp.host", "smtp.163.com");
// 设置邮件服务器的端口
props.setProperty("mail.smtp.port", "25");
// 设置邮件服务器认证属性 (设置为true表示发送服务器需要身份验证)
props.setProperty("mail.smtp.auth", "true");
// 某些邮箱服务器要求 SMTP 连接需要使用 SSL 安全认证
// prop.setProperty("mail.smtp.port", "465");
// prop.setProperty("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
// prop.setProperty("mail.smtp.socketFactory.fallback", "false");
// prop.setProperty("mail.smtp.socketFactory.port", "465");
// 使用JavaMail发送邮件的5个步骤
// 1. 创建session
Session session = Session.getInstance(props);
// 开启Session的debug模式,这样就可以查看到程序发送Email的运行状态
session.setDebug(true);
// 2. 通过session得到transport对象
Transport ts = session.getTransport();
// 3. 使用邮箱的用户名和密码连上邮件服务k器(用户名只需写@前面的即可,密码是指授权码)
ts.connect("smtp.163.com", "发送人邮件名", "邮箱授权码");
// 4. 创建邮件
// 创建邮件对象
MimeMessage message = new MimeMessage(session);
// 设置邮件的发件人的邮箱地址
message.setFrom(new InternetAddress(addresser));
// 设置邮件的收件人的邮箱地址 (现在发件人和收件人是一样的,那就是自己给自己发)
message.setRecipient(Message.RecipientType.TO, new InternetAddress(recipients));
// 发送给多个收件人
// message.setRecipients(Message.RecipientType.TO, new InternetAddress[] {});
// Cc: 抄送(可选)
// message.setRecipient(MimeMessage.RecipientType.CC, new InternetAddress(""));
// Bcc: 密送(可选)
// message.setRecipient(MimeMessage.RecipientType.BCC, new InternetAddress(""));
// 邮件的主题
message.setSubject(Subject);
// 设置发送日期
message.setSentDate(new Date());
// 邮件的文本内容 (setText():纯文本内容)
message.setText(context);
// 5. 发送邮件
ts.sendMessage(message, message.getAllRecipients());
// 关闭transport对象
ts.close();
}