使用Apache-commons-email发送邮件


引用
使用Apache-commons-email发送邮件

本文总结如何使用Apache-commons-email提供的接口发送邮件,以及如何处理中文乱码问题。author: ZJ 07-6-1Blog:http://zhangjunhd.blog.51cto.com/ 1.前言

使用Apache-commons-email发送邮件需要这三个jar包:commons-email-1.0.jar、mail.jar、activition.jar。第一个包下载地址http://jakarta.apache.org/site/downloads/downloads_commons-email.cgi后两个包在Sun上下载jaf-1_1-fr.zip和javamail-1_4.zip。其中有所需要的jar包。 2.发送简单邮件下面这段代码是发送一个简单邮件的流程代码,你可以将其封装成一个方法,供调用。
SimpleEmail email = new SimpleEmail();email.setHostName("mail.myserver.com");//指定SMTP serveremail.addTo("", "John Doe");//指定接收方地址与名字email.setFrom("", "Me");//指定发送方地址与名字email.setSubject("Test message");//指定邮件标题email.setMsg("This is a simple test of commons-email");//指定邮件内容email.send();//发送注意,文件内容为中文,会出现乱码,解决方法如下:将email.setMsg("This is a simple test of commons-email");替换为email.setContent("This is a simple test of commons-email", "text/plain;charset=GBK"); 3.发送带附件的邮件下面这段代码是发送一个带附件邮件的流程代码,你可以将其封装成一个方法,供调用。// Create the attachment  EmailAttachment attachment = new EmailAttachment();  attachment.setPath("mypictures/john.jpg");//指定附件在本地的路径  attachment.setDisposition(EmailAttachment.ATTACHMENT);  attachment.setDescription("Picture of John");//附件描述  attachment.setName("John");//附件名称   // Create the email message  MultiPartEmail email = new MultiPartEmail();  email.setHostName("mail.myserver.com");  email.addTo("", "John Doe");  email.setFrom("", "Me");  email.setSubject("The picture");  email.setMsg("Here is the picture you wanted");   // add the attachment  email.attach(attachment);   // send the email  email.send(); 同样,你可以指定一个在网络上的附件,只要给出该附件的地址,将上文绿色代码部分替换为下面这句。attachment.setURL(new URL("http://www.apache.org/images/asf_logo_wide.gif"));注意,如果你的附件的名称是中文时,同样会出现乱码,解决的方法如下。attachment.setDisposition(EmailAttachment.ATTACHMENT);attachment.setDescription("Picture of John");//附件描述attachment.setName("需传送的附件");//附件名称attachment.setName(MimeUtility.encodeText("需传送的附件.txt")); 4.示例代码附件中给出了一个SendMail.java,将上述方法封装成一个class。其中,构造子初始化所有最基本的变量,即发送简单邮件时所使用的变量,看变量名称即可“望文生义”。public SendMail(String hostSMTP, String toMailAddress, String toMailUser,                     String fromMailAddress, String fromMailUser, String mailSubject,                     String mailMessage) {

方法send()可发送一个简单邮件。方法sendAttchment (String path,String des,String name)可发送一个带附件的邮件。其中,path指定附件在本地的物理路径,des指定附件的描述,name指定附件名。方法sendAttachmentWithUrl (URL url,String des,String name)可发送一个指定附件URL的邮件。其中,url指定附件的URL,其余参数和sendAttachment相同含义。发送附件的这两个方法没有考虑处理中文文件名的问题,大家可自己添加。

5.参考资料[1]Apache-commons-emai guide, http://jakarta.apache.org/commons/email/userguide.html[2] javamail 一些资源,http://www.360doc.com/showWeb/0/0/18285.aspx

本文出自 “子 孑” 博客,请务必保留此出处http://zhangjunhd.blog.51cto.com/113473/28782
本文出自 51CTO.COM技术博客
附件下载:
  SendMail.zip

你可能感兴趣的:(apache,http,email)