官方文档邮件工具-MailUtil ()/docs/#/extra/%E9%82%AE%E4%BB%B6%E5%B7%A5%E5%85%B7-MailUtil
引入hutool包
<dependency><groupId>cn.hutool</groupId><artifactId>hutool-all</artifactId><version>5.8.12</version></dependency>
引入发送邮件工具包
<dependency><groupId>com.sun.mail</groupId><artifactId>javax.mail</artifactId><version>1.6.2</version></dependency>
开启邮箱SMTP服务,获取授权码,授权码只显示一次,请保存后在关闭授权码窗口
发送邮件测试
MailAccount account = new MailAccount();account.setHost("");//邮件服务器的SMTP地址,网易邮箱为account.setPort(587);//邮件服务器的SMTP端口,QQ邮箱为465或587,网易邮箱为25account.setAuth(true);account.setFrom("xxxxxxxxxx@");//设置发送人邮箱account.setUser("xxxxxxxxxx");//发送人用户名account.setPass("xxxxxxxxxxxxxxxx");//密码或者授权码account.isSslEnable();//部分邮箱需要开启SSL/**使用SSL加密方式发送邮件 在使用QQ或Gmail邮箱时,需要强制开启SSL支持**/MailUtil.send(account, CollUtil.newArrayList("xxxxxxxxxx@"), //接收人邮箱"测试主题", "TEST", false);}
接收成功
SpringBoot配置文件
# 邮件服务器的SMTP地址host = # 邮件服务器的SMTP端口port = 465# 发件人(必须正确,否则发送失败)from = xxxxxxl@# 用户名(注意:如果使用foxmail邮箱,此处user为qq号)user = xxxxxx# 密码(注意,某些邮箱需要为SMTP服务单独设置密码,详情查看相关帮助)pass =xxxxxx#使用 STARTTLS安全连接,STARTTLS是对纯文本通信协议的扩展。starttlsEnable = true# 使用SSL安全连接sslEnable = true# 指定实现.SocketFactory接口的类的名称,这个类将被用于创建SMTP的套接字socketFactoryClass = .ssl.SSLSocketFactory# 如果设置为true,未能创建一个套接字使用指定的套接字工厂类将导致使用.Socket创建的套接字类, 默认值为truesocketFactoryFallback = true# 指定的端口连接到在使用指定的套接字工厂。如果没有设置,将使用默认端口456socketFactoryPort = 465# SMTP超时时长,单位毫秒,缺省值不超时timeout = 0# Socket连接超时值,单位毫秒,缺省值不超时connectionTimeout = 0
或者配置mail.setting
# 邮件服务器的SMTP地址,可选,默认为smtp.<发件人邮箱后缀>host = # 邮件服务器的SMTP端口,可选,默认25port = 587# 发件人(必须正确,否则发送失败)from = xxxxxx@# 用户名,默认为发件人邮箱前缀user =xxxxxx# 密码(注意,某些邮箱需要为SMTP服务单独设置授权码,详情查看相关帮助)pass = *****
属性
tos: 对方的邮箱地址,可以是单个,也可以是多个(Collection表示)subject:标题content:邮件正文,可以是文本,也可以是HTML内容isHtml: 是否为HTML,如果是,那参数3识别为HTML内容files: 可选:附件,可以为多个或没有,将File对象加在最后一个可变参数中即可