使用Apache commons轻松发送Email

    xiaoxiao2023-03-24  3

         最近项目上需要使用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("zjx86320@163.com", "*****");//邮件服务器验证:用户名/密码 email.setCharset("UTF-8");// 必须放在前面,否则乱码 email.addTo("zhoujiangxiao@idstaff.com"); email.setFrom("zjx86320@163.com", "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把相关的配置信息管理起来,也可以用一个实体类把相关信息封装起来,方便代码扩展

    转载请注明原文地址: https://ju.6miu.com/read-1201078.html
    最新回复(0)