一、代码
1、 添加依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId>
</dependency>
2、代码实现
import javax.mail.Authenticator;
import javax.mail.PasswordAuthentication;
public class Auth extends Authenticator {
@Override
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication("发件人","授权码");
}
}
import javax.mail.*;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import java.util.Date;
import java.util.Properties;
/**
* @BelongsProject: LibrarySystem
* @BelongsPackage: com.util
* @Author: syh
* @Date: 2021/3/14 22:28
* @Description: mail包,开启IMAP/SMTP服务,获得授权码
* <dependency>
* <groupId>javax.mail</groupId>
* <artifactId>mail</artifactId>
* <version>1.4.7</version>
* </dependency>
*/
public class MailTest {
private static String host = "smtp.qq.com";
private static String agreement = "smtp";
private static String auth = "true";
// 授权码
private static String agreement_code = "ejtq21qmembba";
// 发送人
private static String from = "254338@qq.com";
// 收件人
private static String to = "8133975@qq.com";
public static void main(String[] args) throws MessagingException {
// 根真正的邮箱建立连接
Properties prop = new Properties();
prop.setProperty("mail.smtp.host",host);
// 协议
prop.setProperty("mail.transport.protocol",agreement);
prop.setProperty("mail.smtp.auth",auth);
// 创建一个虚拟邮件对象
Auth auth = new Auth();
Session session = Session.getInstance(prop, auth);
MimeMessage message = new MimeMessage(session);
// 发送人
message.setFrom(new InternetAddress(from));
// 收件人
message.setRecipient(Message.RecipientType.TO,new InternetAddress(to));
// 标题
message.setSubject("测试邮件");
// 发送时间
message.setSentDate(new Date());
// 正文
message.setContent("<b>你想月薪过万吗?</b></br>你想赢取白富美吗?来学java吧。<h3>实现你的梦想!</h3>","text/html;charset=utf-8");
message.saveChanges();
// 发送邮件
Transport transport = session.getTransport();
transport.connect(host,from,agreement_code);
transport.sendMessage(message,message.getAllRecipients());
// 关闭资源
transport.close();
}
}
3、测试
二、授权码获取方法
三、部署到阿里云服务器,25端口被禁止解决方法
prop.setProperty("mail.smtp.port", "465");
prop.setProperty("mail.smtp.starttls.enable", "true"); // required for gmail
prop.setProperty("mail.smtp.ssl.enable", "true"); // required for gmail