IT忍者神龟之java简单邮件发送demo

来源:互联网 发布:origin85数据导入 编辑:程序博客网 时间:2024/06/05 07:28

需要用到的jar包:commons-email.jar,activation.jar,mail.jar 

整个代码如下:

[java] view plaincopy
  1. /** 
  2.  * @Author dengsilinming 
  3.  * @Date 2012-9-11 
  4.  *  
  5.  */  
  6. package com.dengsilinming.mail;  
  7.   
  8. import java.net.MalformedURLException;  
  9. import java.net.URL;  
  10. import java.util.ArrayList;  
  11. import java.util.List;  
  12.   
  13. import org.apache.commons.mail.EmailAttachment;  
  14. import org.apache.commons.mail.EmailException;  
  15. import org.apache.commons.mail.HtmlEmail;  
  16.   
  17. public class SendMail {  
  18.   
  19.     /** 
  20.      * @author dengsilinming 
  21.      * @date 2012-9-11 
  22.      * @description  
  23.      */  
  24.     public static void main(String[] args) {  
  25.         sendMultiMessage();  
  26.   
  27.     }  
  28.       
  29.     /* 
  30.      * 可以参考http://commons.apache.org/email/userguide.html 
  31.      * 方法中的附件地址可以当作参数传递,还有其它的一些地方可以进行优化 
  32.      *  
  33.      * 程序中注释掉的部分是发送单个附件的程式 
  34.      * */  
  35.     public static void sendMultiMessage() {  
  36.         HtmlEmail email = new HtmlEmail();//用来发送HTML格式的email,除了有MultipartEmail的所有能力,还可以发送内嵌的图象  
  37. //      SimpleEmail  email = new SimpleEmail ();//用来发送基本的文本email  
  38. //      MultipartEmail email = new MultipartEmail();//该类用来发送Multipart 信息。他允许发送带附件的文本信息  
  39. //      EmailAttachment email = new EmailAttachment();//方便发送email的时候,进行附件处理。主要提供给MultipartEmail和HtmlEmail来使用  
  40.       
  41.         String[] multiPaths = new String[] {"F:\\Photos\\min\\psb.jpg""F:\\Mixed And Disorderly\\测试.txt"};//将上传的文件地址  
  42.         List<EmailAttachment> attachmentList = new ArrayList<EmailAttachment>();  
  43.           
  44.         for (int i = 0; i < multiPaths.length; i ++) {  
  45.             EmailAttachment attachment = new EmailAttachment();//邮件附件对象  
  46.             if (multiPaths[i].indexOf("http") == -1//是本地文件  
  47.                 attachment.setPath(multiPaths[i]);  
  48.             else {  
  49.                 try {  
  50.                     attachment.setURL(new URL(multiPaths[i]));//设置url地址  
  51.                 } catch (MalformedURLException e) {  
  52.                     e.printStackTrace();  
  53.                 }  
  54.             }  
  55.               
  56.             attachment.setDisposition(EmailAttachment.ATTACHMENT);  
  57.             attachment.setDescription("测试邮件的发送");  
  58.             String name = multiPaths[i].substring(multiPaths[i].lastIndexOf("\\")+1);  
  59.             System.out.println("--------name:" + name);  
  60.             attachment.setName(name);//附件在邮件中显示的名字,中文的乱码问题没有解决,导致附件名有中文时显示乱码  
  61.             attachmentList.add(attachment);  
  62.         }  
  63.           
  64.           
  65. //      EmailAttachment attachment = new EmailAttachment();  
  66. //      attachment.setPath("F:\\Photos\\min\\psb.jpg");  
  67. //      attachment.setDisposition(EmailAttachment.ATTACHMENT);  
  68. //      attachment.setDescription("测试邮件的发送");  
  69. //      attachment.setName("psb.jpg");  
  70.           
  71.         try {  
  72.             email.setHostName("smtp.126.com");//发送服务器的名字  
  73.             email.setCharset("utf-8");//设置编码集  
  74.             email.addTo("*******88@126.com");//收件人邮箱  
  75.             email.setFrom("*******@126.com");//发送人邮箱  
  76.             email.setAuthentication("userName""password");//发件人的用户名与密码  
  77.             email.setSubject("这是一封测试邮件,请不要回复!");//发送主题(邮件主题)  
  78.             email.setMsg("<b><a href=\"http://www.google.com\"> 邮件测试内容</a></b>");//邮件内容  
  79.               
  80.             for (int j = 0; j < attachmentList.size(); j ++)   
  81.                 email.attach(attachmentList.get(j));//添加多个附件  
  82. //          email.attach(attachment);  
  83.             email.send();//发送  
  84.             System.out.println("发送完成");  
  85.         } catch (EmailException e) {  
  86.             // TODO Auto-generated catch block  
  87.             e.printStackTrace();  
  88.         }  
  89.           
  90.     }  
  91.   
  92. }  
经过测试,邮件能够正常的发送,多个附件也能成功。

SimpleEmail、MultipartEmail、EmailAttachment的示例可以参见这里
官方地址:http://commons.apache.org/email/

0 0
原创粉丝点击