1,引入依赖
<dependency>
<groupId >com.sun.mail</groupId>
<artifactId >javax.mail</artifactId>
<version>1.6.2</version>
</dependency>
2,配置发件人信息
mail.setting 配置内容:
# 邮件服务器的SMTP地址,可选,默认为smtp.<发件人邮箱后缀>
host = smtp.qq.com
# 发件人(必须正确,否则发送XXXXX失败)
from = XXXXX@qq.com
# 用户名,默认为发件人邮XXXXX箱前缀
user = XXXXX@qq.com
# 密码(注意,某些邮箱需要为SMTP服务单独设置授权码)
pass =XXXXXXXXXXXXXXXX
腾讯邮箱设置:
其中,邮件收件与发件的服务器可在系统设置中查看。
图中为腾讯邮箱系统设置,相应的host修改
邮件服务器的SMTP地址,可选,默认为smtp.<发件人邮箱后缀>
host =smtp.exmail.qq.com
QQ邮箱服务设置:
邮件服务器的SMTP地址,可选,默认为smtp.<发件人邮箱后缀>
host =smtp.qq.com
如何配置qq邮箱的授权码?
1,账户——开启POP3/SMTP服务
2,验证密保
3,获取授权码
详情指路: https://service.mail.qq.com/cgi-bin/help?subtype=1&id=28&no=1001256
3,设置发送内容常量
注意:%s为占位符,可使用变量替换
详情指路: https://www.cnblogs.com/xrab/articles/5414160.html
public interface MailConstant {
String CSM_HEADER="<h>部门:<h>";
String CSM_CONTENT="<pre> %s客户的账户还有%s个月到期,请跟进相关续费事宜。</pre>";
String SUBJECT="续费提醒";
}
4,编写邮件发送业务代码
MailUtil.send(csmEmail,MailConstant.SUBJECT,
MailConstant.CSM_HEADER+String.format(MailConstant.CSM_CONTENT,tenantIntervalDayDTO.getTenantName(),3),true);
参考链接:https://www.lyscms.info/blog/detail/1392762252272074753
优化思路:将MailConstant 抽取成一个文本文件,也就是作为邮件模板,在代码中配置变量(关键词填空)
这样有一个优点,当模板发生变化的时候,不需要重新打包部署系统,只需要更换模板即可。
5,详情指路
https://www.javajike.com/book/hutool/chapter13/576d21c175ef02372b9fede2b0bd2257.html