使用Commons Email组件开发java 邮件程序

    记得我以前在使用java邮件API编写邮件发送程序时,都会感觉异常的繁琐:各种邮件相关的概念抽象,要花一个较长的时间去理解与领悟;写出来的程序特别的繁琐,可读性上也有很大的不足。所以就希望能在java mail api标准接口上做一个更加人性化的包装,让邮件相关程序开发工作变的更加方便,直到我了解了commons email这个小组件。

    commons email是apache基金会commons项目下的一个子项目,是为了广大javaer更加方便的编写邮件程序而生的一个小组件,个人感觉这个小组件能极大的减少邮件程序代码量,方便开发人员更快的开发出稳健的邮件程序。如果你还在用java mail原生的接口编写邮件程序的话,那么十分的建议你采用这个小组件来实现你的逻辑。我最近的案例是在做本站数据备份上,我会定时的将小站文章打包发送到一个备份邮箱里,这样能方便的供我在其它地方使用这些文章数据,也可以避免小站服务器问题导致的数据丢失。

    commons email本身提供了各种不同制式的邮件开发,在数据备份案例中只是使用了其发送带附件的邮件接口,数据备份案例邮件程序核心代码只有以下几行:

//定义一个附件并设定附件属性
EmailAttachment attach = new EmailAttachment();
File file = new File(
    "C:/Users/woodman/Desktop/blog.140529225655.tar.gz");
attach.setPath(file.getAbsolutePath());
attach.setDisposition(EmailAttachment.ATTACHMENT);
attach.setDescription(file.getName());
attach.setName(file.getName());
//定义一个带附件的邮件并设定相关属性 并将附件挂在邮件中
MultiPartEmail mail = new MultiPartEmail();
mail.setHostName("smtpServer");
mail.setSmtpPort(465);
mail.setAuthenticator(new DefaultAuthenticator("userName@coolskill.net",
"userPassword"));
mail.setSSLOnConnect(true);
mail.setFrom("userName@coolskill.net");
mail.setSubject("数据备份");
mail.setMsg("coolskill小站 140529整站原创文章备份");
mail.addTo("XXXXX@qq.com");
mail.attach(attach);
mail.send();

    上面这简单的十几行代码就可以将一个带附件的程序发送出去啦。根据commons email文档介绍,它支持像普通文件邮件、带附件的邮件、HTML格式邮件等各类型邮件,这些功能大大的方便了代码的开发。如果大家需要更多更加高级的邮件程序功能,那可以去commons email官网(http://commons.apache.org/proper/commons-email/)学习更多其它的功能。