使用Apache commons轻松发送Email

版权声明:本文为博主原创文章,未经博主允许不得转载。 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?请往下看:


      3.授权码允许第三方邮件


      


     设置授权码允许第三方邮件客户端登录:

     


      4.测试结果


     


       至此完,这只是个简单的demo,如果真正要用在程序里,可以使用properties把相关的配置信息管理起来,也可以用一个实体类把相关信息封装起来,方便代码扩展




猜你喜欢

转载自blog.csdn.net/zjx86320/article/details/52684366