使用Common Email轻松发送邮件

喵。猫咪最近一直比较无聊,所以终于打算多更新一下Blog以免自己成为一只懒死的猫。

我们在Java开发中,对于发送邮件,Sun给出了JavaMail框架。但是这个框架调用比较复杂,所以出了很多封装来简化使用。比如Spring就对JavaMail进行了封装。今天猫咪介绍的是Apache的Common组件中的Email组件,封装得很不错。

首先从Sun的网站上下载JavaMail框架实现,最新的版本是1.4.1。然后是JavaBeansActivationFramework,最新版本1.1.1,JavaMail需要这个框架。不过如果JDK是1.6的话就不用下了。1.6已经包括了JavaBeansActivationFramework。

最后从http://commons.apache.org/email/下载最新的CommonEmail,版本1.1。

首先在Eclipse中建立一个新的Java工程,然后把JavaMail和CommonEmail解压缩,在工程中添加解压缩出来的所有Jar的引用。

好了,我们来发一封最简单的邮件吧。

package org.Miao.Mail;

import org.apache.commons.mail.EmailException;
    import org.apache.commons.mail.SimpleEmail;

public class Mail {
         public static void main(String[] args) throws EmailException {
              SimpleEmail email = new SimpleEmail();
              email.setHostName("smtp.sina.com");//邮件服务器
              email.setAuthentication("*****@sina.com", "******");//smtp认证的用户名和密码
              email.addTo("[email protected]","兔子");//收信者
              email.setFrom("[email protected]", "猫咪");//发信者
              email.setSubject("猫咪的测试邮件");//标题
              email.setCharset("UTF-8");//编码格式
              email.setMsg("这是一封猫咪的测试邮件");//内容
              email.send();//发送
         }

}

现在去你的目标邮箱,就可以看到信已经在那里了。注意,如果没有指定编码格式的话(setCharset("UTF-8")),那么正文就会变成乱码(都是?????)。当然你也可以指定其他编码格式,比如“GBK”。

如果你的JavaMail的Session是从JNDI中获取或其他方式获得的,CommonEmail可以通过setMailSession()和setMailSessionFromJNDI()方法进行设置。

CommonEmail除了可以发送普通邮件,也可以发送HTML格式的邮件和带附件的邮件。例子在项目主页上有,大家可以参考。

文章引用自:

相关推荐