一、pom.xml
<!-- 添加邮件发送的依赖 -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context-support</artifactId>
<version>5.0.0.RELEASE</version>
</dependency>
<!--邮件发送-->
<dependency>
<groupId>com.sun.mail</groupId>
<artifactId>javax.mail</artifactId>
<version>1.6.1</version>
</dependency>
二、配置文件.properties
#项目ip
my_ip=localhost:8080
#邮件
mail.from=xxxx@163.com
#服务器主机名
mail.smtp.host=smtp.163.com
mail.smtp.username=xxxxx@163.com
#密码/客户端授权码
mail.smtp.password=xxxxx
#编码字符
mail.smtp.defaultEncoding=utf-8
#是否进行用户名密码校验
mail.smtp.auth=true
#设置超时时间
mail.smtp.timeout=20000
mail.smtp.socketFactory.class=javax.net.ssl.SSLSocketFactory
mail.smtp.port=465
mail.smtp.socketFactory.port =465
三、发送工具类
package com.jc.JunJian.util;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import javax.mail.*;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import java.util.Properties;
import java.util.ResourceBundle;
public class MailUtil extends Thread {
private static final Logger logger = LoggerFactory.getLogger(MailUtil.class);
private static String IP;
private static String HOST;
private static String USERNAME;
private static String PASSWORD;
private static String DEFAULTENCODING;
private static String AUTH;
private static String TIMEOUT;
private static String SOCKETFACTORYCLASS;
private static String SOCKETFACTORYPORT;
private static String PORT;
private static String FROM;//发件人
private static String TO;//收件人
private static String SUBJECT; //主题
private static String CONTENT;//内容
static {
ResourceBundle rb = ResourceBundle.getBundle("project"); //即project.properites没有.properties结尾
IP = rb.getString("my_ip");
HOST = rb.getString("mail.smtp.host");
USERNAME = rb.getString("mail.smtp.username");
PASSWORD = rb.getString("mail.smtp.password");
DEFAULTENCODING = rb.getString("mail.smtp.defaultEncoding");
AUTH = rb.getString("mail.smtp.auth");
TIMEOUT = rb.getString("mail.smtp.timeout");
SOCKETFACTORYCLASS = rb.getString("mail.smtp.socketFactory.class");
SOCKETFACTORYPORT = rb.getString("mail.smtp.socketFactory.port");
PORT = rb.getString("mail.smtp.port");
FROM = rb.getString("mail.from");
}
public MailUtil(String toMail,String subject,String content){
super();
this.TO = toMail;
this.SUBJECT = subject;
this.CONTENT = content;
}
@Override
public void run() {
try {
Properties props = new Properties();
props.setProperty("mail.smtp.host",HOST);
props.setProperty("mail.smtp.port",PORT);
props.setProperty("mail.smtp.socketFactory.class", SOCKETFACTORYCLASS);
props.setProperty("mail.smtp.socketFactory.port", SOCKETFACTORYPORT);
props.setProperty("mail.smtp.auth",AUTH);
props.setProperty("mail.smtp.defaultEncoding",DEFAULTENCODING);
props.setProperty("mail.smtp.timeout",TIMEOUT);
Session session = Session.getInstance(props, new Authenticator() {
@Override
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(USERNAME,PASSWORD);
}
});
session.setDebug(true);
final MimeMessage message = new MimeMessage(session);
message.setFrom(new InternetAddress(FROM));
message.setRecipient(MimeMessage.RecipientType.TO,new InternetAddress(TO));
message.setSubject(SUBJECT);
message.setContent(CONTENT,"text/html;charset=utf-8");
final Transport trans = session.getTransport("smtp");
trans.send(message);
logger.info("邮件发送成功");
} catch (Exception e) {
e.printStackTrace();
throw new RuntimeException(e);
}
}
/* public static void main(String[] args){
String html = "<h2>亲爱的"+"557894"+"用户你好:</h2><br/>";
html += "  恭喜你的账号:"+"12346"+" 注册成功!请48小时内,点击此链接激活" +
"<a href = 'http://"+IP+"/user/active/"+"123456"+"'>"
+"13213"+"</a>";
new MailUtil("xxxxx@qq.com","测试",html).start();
}*/
}