赞
踩
引入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.qq.com");//邮件服务器的SMTP地址,网易邮箱为smtp.163.com
- account.setPort(587);//邮件服务器的SMTP端口,QQ邮箱为465或587,网易邮箱为25
- account.setAuth(true);
- account.setFrom("xxxxxxxxxx@qq.com");//设置发送人邮箱
- account.setUser("xxxxxxxxxx");//发送人用户名
- account.setPass("xxxxxxxxxxxxxxxx");//密码或者授权码
- account.isSslEnable();//部分邮箱需要开启SSL
- /**
- 使用SSL加密方式发送邮件 在使用QQ或Gmail邮箱时,需要强制开启SSL支持
- **/
-
- MailUtil.send(account, "xxxxxxxxxx@qq.com", //接收人邮箱
- "测试主题", "TEST", false);
以下是封装后的代码(以qq邮箱为例)
-
- import cn.hutool.extra.mail.MailAccount;
- import cn.hutool.extra.mail.MailUtil;
-
- import java.io.File;
- public class SendMail {
- private static final MailAccount account=new MailAccount();
- /***
- * receiverMail 接收人邮箱 ,也可以将String参数设置成集合如List<String>,
- * List<String>中存储多个邮箱地址,可以实现批量发送邮件
- * theme 发送邮件的标题 ,
- * Text 发送邮件的文本内容,
- * isHtml 当isHtml为ture且Text文本内容为html格式代码,邮件会以网页格式呈现
- * files 发送附件,可以发送多个附件,files可以为空,默认没有附件发送
- */
- public static void sendQQMail(String receiverMail, String theme,
- String Text, Boolean isHtml,File... files){
- account.setHost("smtp.qq.com");
- account.setPort(587);
- account.setAuth(true);
- account.setFrom("xxxxxxxxxx@qq.com");
- account.setUser("xxxxxxxxxx");
- account.setPass("xxxxxxxxxxxxxxxx");
- account.isSslEnable();
- //使用SSL加密方式发送邮件 在使用QQ或Gmail邮箱时,需要强制开启SSL支持
- MailUtil.send(account, receiverMail, theme, Text, isHtml,files);
- }
- }
测试
- @Test
- public void sendMail() {
- SendMail.sendQQMail("xxxxxxxxxx@qq.com","测试主题","TEST",false);
- }
# 邮件服务器的SMTP地址 host = smtp.qq.net # 邮件服务器的SMTP端口 port = 465 # 发件人(必须正确,否则发送失败) from = xxxxxxl@qq.com # 用户名(注意:如果使用foxmail邮箱,此处user为qq号) user = xxxxxx # 密码(注意,某些邮箱需要为SMTP服务单独设置密码,详情查看相关帮助) pass =xxxxxx #使用 STARTTLS安全连接,STARTTLS是对纯文本通信协议的扩展。 starttlsEnable = true # 使用SSL安全连接 sslEnable = true # 指定实现javax.net.SocketFactory接口的类的名称,这个类将被用于创建SMTP的套接字 socketFactoryClass = javax.net.ssl.SSLSocketFactory # 如果设置为true,未能创建一个套接字使用指定的套接字工厂类将导致使用java.net.Socket创建的套接字类, 默认值为true socketFactoryFallback = true # 指定的端口连接到在使用指定的套接字工厂。如果没有设置,将使用默认端口456 socketFactoryPort = 465 # SMTP超时时长,单位毫秒,缺省值不超时 timeout = 0 # Socket连接超时值,单位毫秒,缺省值不超时 connectionTimeout = 0
- # 邮件服务器的SMTP地址,可选,默认为smtp.<发件人邮箱后缀>
- host = smtp.qq.com
- # 邮件服务器的SMTP端口,可选,默认25
- port = 587
- # 发件人(必须正确,否则发送失败)
- from = xxxxxx@qq.com
- # 用户名,默认为发件人邮箱前缀
- user =xxxxxx
- # 密码(注意,某些邮箱需要为SMTP服务单独设置授权码,详情查看相关帮助)
- pass = *****
属性
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。