利用apache commons-email发送邮件

来源:互联网 发布:长沙蓝狐网络 编辑:程序博客网 时间:2024/06/07 18:20

本文利用apaceh commons-email发送邮件,记录一下

所需要引入的包:commons-email-1.2.jar(apache官网下载),mail.jar(sun官网下载),activation.jar(sun官网下载,如果你使用的jdk是1.6以上,这个包就可以不下载了,因为jdk1.6已经包括了)

直接上代码吧。

PropertiesUtils类:

Java代码  收藏代码
  1. import java.io.IOException;  
  2. import java.io.InputStream;  
  3. import java.util.Properties;  
  4.   
  5. /** 
  6.  *@author liudonggan Email:ldg123456@sina.com 
  7.  *@date 2011-7-20 上午11:29:14 
  8.  *@version v1.0 
  9.  **/  
  10. public class PropertiesUtils {  
  11.   
  12.     private static InputStream inputStream=null;  
  13.   
  14.     public static String getProperties(String propertyName) throws Exception  
  15.     {  
  16.         String _propertyName="";  
  17.         inputStream=PropertiesUtils.class.getClassLoader().getResourceAsStream("config.properties");  
  18.         Properties p = new Properties();     
  19.         try {     
  20.             p.load(inputStream);     
  21.         } catch (IOException e1) {  
  22.             inputStream.close();  
  23.         }  
  24.         _propertyName=p.get(propertyName).toString();  
  25.         inputStream.close();  
  26.         return _propertyName;  
  27.     }  
  28. }  

 

MailUtils类:

Java代码  收藏代码
  1. import java.io.File;  
  2. import java.util.ArrayList;  
  3. import java.util.List;  
  4.   
  5. import org.apache.commons.mail.EmailAttachment;  
  6. import org.apache.commons.mail.MultiPartEmail;  
  7.   
  8. import com.ys.product.bean.UserEmail;  
  9. /** 
  10.  *@author liudonggan Email:ldg123456@sina.com 
  11.  *@date 2011-7-20 上午10:49:41 
  12.  *@version v1.0 
  13.  **/  
  14. public class MailUtils {  
  15.   
  16.     /** 
  17.       * sendMail 方法 
  18.       * <p>方法说明:</p> 
  19.       * @param path附件路迳 
  20.       * @param subject邮件主题 
  21.       * @param msg邮件内容 
  22.       * @throws Exception 
  23.       * @return void 
  24.       * @author liudonggan Email:ldg123456@sina.com 
  25.       * @date 2011-7-20 上午11:39:37 
  26.     */  
  27.     public void sendMail(String path,List<UserEmail> emails,String subject,String msg) throws Exception  
  28.     {  
  29.         MultiPartEmail email = new MultiPartEmail();  
  30.         //SimpleEmail email = new SimpleEmail();  
  31.         // 设置邮件编码  
  32.         email.setCharset("UTF-8");  
  33.         // 设置邮件服务器  
  34.         email.setHostName(PropertiesUtils.getProperties("mail.smtp"));  
  35.         // 设置登录邮件服务器用户名和密码  
  36.         email.setAuthentication(PropertiesUtils.getProperties("mail.email"), PropertiesUtils.getProperties("mail.pwd"));  
  37.         // 添加收件人  
  38.         for(UserEmail _email:emails)  
  39.         {  
  40.             email.addTo(_email.getEmailName(), _email.getTitle());  
  41.         }  
  42.         // 设置发件人  
  43.         email.setFrom(PropertiesUtils.getProperties("mail.email"), "liudonggan");  
  44.         // 设置邮件标题  
  45.         email.setSubject(subject);  
  46.         // 设置邮件正文内容  
  47.         email.setMsg(msg);  
  48.         // 要发送的附件  
  49.         EmailAttachment attachment = new EmailAttachment();  
  50.         File file = new File(path);  
  51.         attachment.setPath(file.getPath());  
  52.         attachment.setName(file.getName());  
  53.         // 设置附件描述  
  54.         attachment.setDescription(subject);  
  55.         // 设置附件类型  
  56.         attachment.setDisposition(EmailAttachment.ATTACHMENT);  
  57.         // 添加附件  
  58.         email.attach(attachment);  
  59.         // 发送邮件  
  60.         email.send();  
  61.     }  
  62.     public static void main(String[] arg) throws Exception  
  63.     {  
  64.         MailUtils mail=new MailUtils();  
  65.         UserEmail _email=new UserEmail();  
  66.         _email.setEmailName("20493351@qq.com");  
  67.         _email.setTitle("XX标题");  
  68.         List<UserEmail> emails=new ArrayList<UserEmail>();  
  69.         emails.add(_email);  
  70.         mail.sendMail("c:\\test.pdf",emails,"XX标题","内容");  
  71.     }