定时发送报表统计是公司前段时间的一个小需求,谨此记录一下。
一、hutool邮件工具-MailUtil
hutool就不过多解释了,感谢这个开源项目的贡献者,让平时开发省了不少力,用了才发现之前自己封装的小工具类挺鸡肋...
官方介绍:
Hutool是一个小而全的Java工具类库,通过静态方法封装,降低相关API的学习成本,提高工作效率,使Java拥有函数式语言般的优雅,让Java语言也可以“甜甜的”。
没用过的可以有时间看看,很nice。
这里把hutool的邮件工具-MailUtil的使用拿过来说明一下。
1.引入依赖
Hutool对所有第三方都是可选依赖,因此在使用MailUtil时需要自行引入第三方依赖。
<dependency>
<groupId>javax.mail</groupId>
<artifactId>mail</artifactId>
<version>1.4.7</version>
</dependency>
2.邮件服务器配置
在classpath(在标准Maven项目中为src/main/resources)的config目录下新建mail.setting文件,最小配置内容如下,在此配置下,smtp服务器和用户名都将通过from参数识别:
# 发件人(必须正确,否则发送失败)
from = hutool@yeah.net
# 密码(注意,某些邮箱需要为SMTP服务单独设置密码,详情查看相关帮助)
pass = q1w2e3
but,有时候一些非标准邮箱服务器(例如企业邮箱服务器)的smtp地址等信息并不与发件人后缀一致,端口也可能不同,此时Hutool可以提供完整的配置文件:
完整配置
# 邮件服务器的SMTP地址,可选,默认为smtp.<发件人邮箱后缀>
host = smtp.yeah.net
# 邮件服务器的SMTP端口,可选,默认25
port = 25
# 发件人(必须正确,否则发送失败)
from = hutool@yeah.net
# 用户名,默认为发件人邮箱前缀
user = hutool
# 密码(注意,某些邮箱需要为SMTP服务单独设置授权码,详情查看相关帮助)
pass = q1w2e3
注意:邮件服务器必须支持并打开SMTP协议,详细请查看相关帮助说明 配置文件的样例中提供的是我专门为测试邮件功能注册的yeah.net邮箱,帐号密码公开,供Hutool用户测试使用。
3.发送邮件
- 发送普通文本邮件,最后一个参数可选是否添加多个附件:
MailUtil.send("hutool@foxmail.com", "测试", "邮件来自Hutool测试", false);
- 发送HTML格式的邮件并附带附件,最后一个参数可选是否添加多个附件: