Common mail 包的使用

jopen 12年前

   在javax包中虽然定义了一些些关于发mail的类,但是用起来不是很方便,下面是我对common.mail包的一些使用笔记.

package bo;       import java.io.IOException;     import java.io.InputStream;     import java.io.UnsupportedEncodingException;     import java.net.MalformedURLException;     import java.net.URL;         import javax.mail.internet.MimeUtility;         import org.apache.commons.io.IOUtils;     import org.apache.commons.mail.EmailAttachment;     import org.apache.commons.mail.EmailException;     import org.apache.commons.mail.HtmlEmail;     import org.apache.commons.mail.MultiPartEmail;     import org.apache.commons.mail.SimpleEmail;       public class Email {     //发送普通文件的mail      public void mySend() {       try {        SimpleEmail email = new SimpleEmail(); // 构造一个mail对象        //email.setHostName("hostname");// 设置主机名        email.addTo("mail", "my");// 设置发对象        email.setFrom("yahu@.cn.com", "my");// 设置发送人        email.setSubject("邮件测试");// 设置主题        email.setCharset("GBK");// 设置发送使用的字符集        String content = "测试内容是我自己的";// 内容            email.setContent(content, "text/plain;charset=GBK");// 设置内容            email.send();// 发送       } catch (EmailException e) {        e.printStackTrace();       }          }           public static void main(String[] args) {       Email email = new Email();       email.mySend();      }     //发送带附件的mail      public void myAttachment() {       MultiPartEmail email = new MultiPartEmail();// 构造一个mail对象       email.setHostName("hostname");// 设置服务器名       try {        EmailAttachment attachment = new EmailAttachment();// 构造一个发送附件        attachment.setPath("C:\\2.jpg");// 设置附件路径        attachment.setDisposition(EmailAttachment.ATTACHMENT);        attachment.setDescription("中文");// 描述        attachment.setName(MimeUtility.encodeText("美女.png"));            email.addTo("yahu@.cn.com", "name");// 发送对象        email.setFrom("yahu@.cn.com", "name");// 发送人        email.setSubject("测试");// 标题        email.setCharset("GBK");// 使用的字符集            String content = "美女";// 内容        email.setMsg(content);// 设置内容        email.attach(attachment);// 发送附件        email.send();// 发送           } catch (UnsupportedEncodingException e) {            e.printStackTrace();       } catch (EmailException e) {        e.printStackTrace();       }          }          付注:附件可以发送多个,只需要构靠多个EmailAttachment即可                 //发送html格式的mail      public void htmlEmail() {       HtmlEmail email = new HtmlEmail();// 构造一个html mail对象           email.setHostName("hope.cn");// 设置服务器名       try {        email.addTo("yahu@.cn.com", "my");// 设置发送对象        email.setFrom("yahu@.cn.com", "my");// 设置发送人        email.setSubject("测试");// 设置主题        String mag = "红色";//这里可以写你的html文档,因为本页面我是用xml文件做数据存储的,不能写标签,这里我就不写了        email.setHtmlMsg(mag);// 设置内容        email.setCharset("GBK");// 设置字符集        email.send();// 发送       } catch (EmailException e) {            e.printStackTrace();       }          }          public void hEmail() {           EmailAttachment attachment = new EmailAttachment();           try {        attachment.setURL(new URL(          "url"));// 设置附件的URL        attachment.setDisposition(EmailAttachment.ATTACHMENT);        attachment.setDescription("附件.pdf");// 设置附件描述        try {         attachment.setName(MimeUtility.encodeText("附件.pdf"));        } catch (UnsupportedEncodingException e1) {         e1.printStackTrace();        }        HtmlEmail hmail = new HtmlEmail();// 构造mail对象        hmail.setHostName("hope.cn");// 设置服务器        hmail.addTo("yahu@.cn.com", "my");// 设置发送对象        hmail.setFrom("yahu@.cn.com", "my");// 设置发送人        hmail.setSubject("测试");// 设置标题            URL url = new URL(          "url");// 构造一个UTL            InputStream in = (InputStream) url.getContent();// 从URL中获得输出流        String msg = IOUtils.toString(in);// 获得输出流的内容            hmail.setHtmlMsg(msg);// 设置html内容        hmail.setCharset("GBK");// 设置字符集        hmail.attach(attachment);// 设置附件        hmail.send();// 发送           } catch (MalformedURLException e) {        e.printStackTrace();       } catch (EmailException e) {        e.printStackTrace();       } catch (IOException e) {        // TODO 自动生成 catch 块        e.printStackTrace();       }          }     }

 
   本代码中使用了commons.io软件包.