版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/zjx86320/article/details/52684366
最近项目上需要使用javamail发送邮件,在网上搜索了一些资料,发现Apache common下有个Email组件,对javamail进行了封装,灰常的好用。
1.加入maven坐标依赖
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-email</artifactId>
<version>1.3.3</version>
</dependency>
2.编写测试类
/**
* @Description:发送邮件测试
* @Company:biyao
* @author:ZhouJiangxiao
* @date:2016/9/27 14:55
*/
public class TestMail {
public static void main(String[] args) throws EmailException {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//设置日期格式
SimpleEmail email = new SimpleEmail();
email.setHostName("SMTP.163.com");
email.setAuthentication("[email protected]", "*****");//邮件服务器验证:用户名/密码
email.setCharset("UTF-8");// 必须放在前面,否则乱码
email.addTo("[email protected]");
email.setFrom("[email protected]", "overtime_compensate_system");
email.setSubject("赔偿单统计信息-" + sdf.format(new Date()));
StringBuilder msgInfo = new StringBuilder();
msgInfo.append("赔偿单统计信息如下:").append("\r\n\t");
msgInfo.append("1、待赔付数量:4").append("\r\n\t");
msgInfo.append("2、赔付中数量:5").append("\r\n\t");
msgInfo.append("3、赔付失败数量:6").append("\r\n\t");
msgInfo.append("统计时间:").append(sdf.format(new Date()));
email.setMsg(msgInfo.toString());
email.send();
}
}
注意:email.setAuthentication这个方法,第一个参数是你邮箱的账号,第二个参数并非你邮箱的登录密码,而是邮箱的授权码,如何get?请往下看:
扫描二维码关注公众号,回复:
3837128 查看本文章
3.授权码允许第三方邮件
设置授权码允许第三方邮件客户端登录:
4.测试结果
至此完,这只是个简单的demo,如果真正要用在程序里,可以使用properties把相关的配置信息管理起来,也可以用一个实体类把相关信息封装起来,方便代码扩展