<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId>
</dependency>
package com.simons.utils;
public class EmailAuthInfo {
private String userCount;//用户账户
private String authCode;//授权码
private String smtpAdr;//smtp地址
private String sendTo;//收件人
EmailAuthInfo(){
this.userCount = "yue51259@163.com";
this.smtpAdr = "smtp.163.com";
this.authCode = "16位授权码";
this.sendTo = "收件人邮箱:aa@qq.com";
}
public String getUserCount() {
return userCount;
}
public void setUserCount(String userCount) {
this.userCount = userCount;
}
public String getAuthCode() {
return authCode;
}
public void setAuthCode(String authCode) {
this.authCode = authCode;
}
public String getSmtpAdr() {
return smtpAdr;
}
public void setSmtpAdr(String smtpAdr) {
this.smtpAdr = smtpAdr;
}
public String getSendTo() {
return sendTo;
}
public void setSendTo(String sendTo) {
this.sendTo = sendTo;
}
}
package com.simons.utils;
import com.sun.mail.util.MailSSLSocketFactory;
import javax.mail.*;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import java.security.GeneralSecurityException;
import java.util.Properties;
public class SendEamil {
public static void main(String[] args) throws MessagingException, GeneralSecurityException {
//创建一个配置文件并保存
Properties properties = new Properties();
properties.setProperty("mail.host","smtp.163.com");
properties.setProperty("mail.transport.protocol","smtp");
properties.setProperty("mail.smtp.auth","true");
EmailAuthInfo emailAuthInfo = new EmailAuthInfo();
//QQ存在一个特性设置SSL加密
MailSSLSocketFactory sf = new MailSSLSocketFactory();
sf.setTrustAllHosts(true);
properties.put("mail.smtp.ssl.enable", "true");
properties.put("mail.smtp.ssl.socketFactory", sf);
//创建一个session对象
Session session = Session.getDefaultInstance(properties, new Authenticator() {
@Override
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(emailAuthInfo.getUserCount(),emailAuthInfo.getAuthCode());
}
});
//开启debug模式
session.setDebug(true);
//获取连接对象
Transport transport = session.getTransport();
//连接服务器
transport.connect(emailAuthInfo.getSmtpAdr(),emailAuthInfo.getUserCount(),emailAuthInfo.getAuthCode());
//创建邮件对象
MimeMessage mimeMessage = new MimeMessage(session);
//邮件发送人
mimeMessage.setFrom(new InternetAddress(emailAuthInfo.getUserCount()));
//邮件接收人
mimeMessage.setRecipient(Message.RecipientType.TO,new InternetAddress(emailAuthInfo.getSendTo()));
//邮件标题
mimeMessage.setSubject("HAMT“超大预警”");
//邮件内容
mimeMessage.setContent("尊敬的信管专员:用户WX1111680发送超大附件xxxx,具体信息如下。请您审核","text/html;charset=UTF-8");
//发送邮件
transport.sendMessage(mimeMessage,mimeMessage.getAllRecipients());
//关闭连接
transport.close();
// log.info("邮件发送成功");
System.out.println("邮件发送成功");
}
}
邮件发送成功。具体原理不解释了。网上都有。其他版本的邮件差不多是这样子。