java 发送邮件 email相关操作代码测试,生成复杂格式邮件,发送邮件相关操作

来源:互联网 发布:java项目成果怎么写 编辑:程序博客网 时间:2024/05/16 04:55


效果图:


相关代码:

test1

[java] view plaincopy在CODE上查看代码片派生到我的代码片
  1. package com.mail;  
  2.   
  3. import java.util.Properties;  
  4.   
  5. import javax.mail.Address;  
  6. import javax.mail.Message;  
  7. import javax.mail.Session;  
  8. import javax.mail.Transport;  
  9. import javax.mail.internet.InternetAddress;  
  10. import javax.mail.internet.MimeMessage;  
  11. /** 
  12.  * com.mail.reference下面的是在网上找的,还没来得级看 
  13.  * Test 是本人写的,并都测试成功发送了的    邮箱和密码换成你自已的, 
  14.  * 可能会遇到一个问题, 就是要把你自已myeclipse的javaee.jar文件中的mail包给删掉 
  15.  * 他们会冲突,自已到网上找一个具体的操作吧! 
  16.  * @author liangrui 
  17.  * 
  18.  */  
  19.   
  20. public class Test1 {  
  21.       
  22.     public static void main(String[] args) throws Exception {  
  23.         System.out.println("hello....");  
  24.           
  25.         Properties perps=new Properties();  
  26.         //认证  
  27.         perps.setProperty("mail.smtp.auth""true");  
  28.         //协议  
  29.         perps.setProperty("mail.transport.protocol""smtp");  
  30.           
  31.         Session session=Session.getInstance(perps);  
  32.         Message mes=new MimeMessage(session);         
  33.         //收件 内容  、 人  
  34.         mes.setText(" hello worldddddddddddddddddd");     
  35.           
  36.         //设置发件人地址  
  37.         mes.setFrom(new InternetAddress("liangrui_1988@126.com"));  
  38.           
  39.         //发件信息  
  40.         Transport transport=session.getTransport();  
  41.         transport.connect("smtp.126.com",25,"liangrui_1988","******");  
  42.                   
  43.         //收件人  
  44.         transport.sendMessage(mes,   
  45.                 new Address[]{new InternetAddress("liangrui_1988@sina.com")});  
  46.       
  47.        transport.close();  
  48.          
  49.        System.out.println("-----");  
  50.     }  
  51.   
  52. }  

test2


[java] view plaincopy在CODE上查看代码片派生到我的代码片
  1. package com.mail;  
  2.   
  3. import java.util.Properties;  
  4.   
  5. import javax.mail.Authenticator;  
  6. import javax.mail.Message;  
  7. import javax.mail.MessagingException;  
  8. import javax.mail.PasswordAuthentication;  
  9. import javax.mail.Session;  
  10. import javax.mail.Transport;  
  11. import javax.mail.internet.InternetAddress;  
  12. import javax.mail.internet.MimeMessage;  
  13. import javax.mail.internet.MimeMessage.RecipientType;  
  14.   
  15. public class Test2 {  
  16.   
  17.     /** 
  18.      * @param args 
  19.      * @throws MessagingException  
  20.      */  
  21.     public static void main(String[] args) throws Exception {  
  22.           
  23.         //邮件Properties设置============================================  
  24.         Properties pro=new Properties();  
  25.         //认证  
  26.         pro.setProperty("mail.smtp.auth""true");  
  27.                 //协议  
  28.         pro.setProperty("mail.transport.protocol""smtp");  
  29.         //主机 指定服务器 端口默认  
  30.         pro.setProperty("mail.host""smtp.sina.com");  
  31.           
  32.           
  33.         //邮件Session设置============================================  
  34.         Session session= Session.getInstance(pro,  
  35.                 new Authenticator() {  
  36.             protected PasswordAuthentication getPasswordAuthentication() {  
  37.                 //用户名密码  
  38.                 return new PasswordAuthentication("liangrui_1988","******");  
  39.                   
  40.             }  
  41.         });  
  42.           
  43.         //邮件信息设置============================================  
  44.         Message ms=new MimeMessage(session);  
  45.         //地址 发件人  
  46.         ms.setFrom(new InternetAddress("liangrui_1988@sina.com"));  
  47.         //主题  
  48.         ms.setSubject("你好吗!这是邮件主题");  
  49.         //地址 收件人  
  50.         ms.setRecipients(RecipientType.TO,  
  51.                 InternetAddress.parse("liangrui_1988@126.com,liangrui_1988@sohu.com,liangrui_1988@sohu.com"));  
  52.           
  53.         //内容  
  54.         ms.setContent("<span style='color:red'>文本内容 呆呆呆呵呵</span>","text/html;charset=gbk");  
  55.           
  56.     //发射=================================     
  57.     Transport.send(ms);  
  58.     System.out.println("okkk--------------");  
  59.     }  
  60.   
  61. }  

test2222demo
[java] view plaincopy在CODE上查看代码片派生到我的代码片
  1. package com.mail;  
  2.   
  3. import java.io.FileInputStream;  
  4. import java.util.Properties;  
  5.   
  6. import javax.mail.Authenticator;  
  7. import javax.mail.Message;  
  8. import javax.mail.MessagingException;  
  9. import javax.mail.PasswordAuthentication;  
  10. import javax.mail.Session;  
  11. import javax.mail.Transport;  
  12. import javax.mail.internet.InternetAddress;  
  13. import javax.mail.internet.MimeMessage;  
  14. import javax.mail.internet.MimeMessage.RecipientType;  
  15.   
  16. public class Test2Demo {  
  17.       
  18.     /** 
  19.      * @param args 
  20.      * @throws MessagingException  
  21.      */  
  22.     public static void main(String[] args) throws Exception {  
  23.           
  24.         //邮件Properties设置============================================  
  25.         Properties pro=new Properties();  
  26.         //认证  
  27.         pro.setProperty("mail.smtp.auth""true");  
  28.                 //协议  
  29.         pro.setProperty("mail.transport.protocol""smtp");  
  30.         //主机 指定服务器 端口默认  
  31.         pro.setProperty("mail.host""smtp.sina.com");  
  32.           
  33.           
  34.         //邮件Session设置============================================  
  35.         Session session= Session.getInstance(pro,  
  36.                 new Authenticator() {  
  37.             protected PasswordAuthentication getPasswordAuthentication() {  
  38.                 //用户名密码  
  39.                 return new PasswordAuthentication("liangrui_1988","******");  
  40.                   
  41.             }  
  42.         });  
  43.           
  44.         //邮件信息设置============================================  
  45.         /*Message ms=new MimeMessage(session); 
  46.         //地址 发件人 
  47.         ms.setFrom(new InternetAddress("liangrui_1988@sina.com")); 
  48.         //主题 
  49.         ms.setSubject("你好吗!这是邮件主题"); 
  50.         //地址 收件人 
  51.         ms.setRecipients(RecipientType.TO, 
  52.                 InternetAddress.parse("liangrui_1988@126.com,liangrui_1988@sina.com,liangrui_1988@sohu.com")); 
  53.          
  54.         //内容 
  55.         ms.setContent("<span style='color:red'>文本内容 呆呆呆呵呵</span>","text/html;charset=gbk"); 
  56.          
  57.     //发射=================================    
  58.     Transport.send(ms);*/  
  59.           
  60.         //加载生成好的邮件  Test3 并发送  
  61.         Message me=new MimeMessage(session,new FileInputStream("F:/juxunDocument/email/demo3.eml"));  
  62.         Transport.send(me,InternetAddress.parse("liangrui_1988@sohu.com") );  
  63.       
  64.           
  65.           
  66.           
  67.         System.out.println("okkk--------------");  
  68.       
  69.       
  70.     }  
  71. }  

test3
[java] view plaincopy在CODE上查看代码片派生到我的代码片
  1. package com.mail;  
  2.   
  3. import java.io.FileOutputStream;  
  4. import java.io.OutputStream;  
  5. import java.util.Properties;  
  6.   
  7.   
  8. import javax.activation.DataHandler;  
  9. import javax.activation.DataSource;  
  10. import javax.activation.FileDataSource;  
  11. import javax.mail.Address;  
  12. import javax.mail.BodyPart;  
  13. import javax.mail.MessagingException;  
  14. import javax.mail.Session;  
  15. import javax.mail.Message.RecipientType;  
  16. import javax.mail.internet.InternetAddress;  
  17. import javax.mail.internet.MimeBodyPart;  
  18. import javax.mail.internet.MimeMessage;  
  19. import javax.mail.internet.MimeMultipart;  
  20. import javax.mail.internet.MimeUtility;  
  21.   
  22. import com.sun.mail.util.MimeUtil;  
  23.   
  24.   
  25. public class Test3 {  
  26.     public static void main(String[] args) throws Exception {  
  27.           
  28.         Session session=Session.getInstance(new Properties());  
  29.         MimeMessage message=new MimeMessage(session);  
  30.         //发件人 指定别名  
  31.         message.setFrom(new InternetAddress("\""+MimeUtility.encodeText("国务院")+"\" <liangrui_1988@sina.com>"));  
  32.           
  33.         message.setSubject("subject Hello world");//标题  
  34.         //如果收到该邮件 点击回复时,地址是这个邮箱地址 而不是发件人  
  35.         message.setReplyTo(new Address[]{new InternetAddress("liangrui_1988@sohu.com")});//回复  
  36.         //收件人  
  37.         message.setRecipients(RecipientType.TO,  
  38.                 //把字符串转为数组 //转码  
  39.                 InternetAddress.parse(  
  40.                         MimeUtility.encodeText("刘备")+" <liangrui_1988@126.com>,"    
  41.                 +MimeUtility.encodeText("关羽")+ "<liangrui_1988@suho.com>"));  
  42.           
  43.         //复杂格试文件内容  多部件的/混合  
  44.         MimeMultipart mutimart=new MimeMultipart("mixed");  
  45.         //文本  
  46.         message.setContent(mutimart);  
  47.           
  48.         //多用途互联网邮件扩展 mime 体部分  
  49.         MimeBodyPart content =new MimeBodyPart();         
  50.         MimeBodyPart attach1 =new MimeBodyPart();         
  51.         MimeBodyPart attach2 =new MimeBodyPart();  
  52.           
  53.         //添加文本 和附近  
  54.         mutimart.addBodyPart(content);  
  55.         mutimart.addBodyPart(attach1);  
  56.         mutimart.addBodyPart(attach2);  
  57.           
  58.         //附近1  
  59.         DataSource ds=new FileDataSource("E:\\1y2\\context.xml");  
  60.         DataHandler dh1=new DataHandler(ds);  
  61.         attach1.setDataHandler(dh1);  
  62.         attach1.setFileName(MimeUtility.encodeText("中文context.xml"));//附件名称  
  63.           
  64.         //附近2  
  65.         DataSource ds2=new FileDataSource("F:\\ipho\\IMG_0266.JPG");  
  66.         DataHandler dh2=new DataHandler(ds2);  
  67.         attach2.setDataHandler(dh2);  
  68.         attach2.setFileName(  
  69.                 MimeUtility.encodeText("图片img_0266.jpg"));//附件名称 转为中文  
  70.           
  71.         //文本 是一个复杂体  
  72.         MimeMultipart bodyMultipart=new MimeMultipart("related");  
  73.         content.setContent(bodyMultipart);  
  74.           
  75.         //构造 体 有两个部分组成 图片和文本  
  76.         MimeBodyPart thmlPart=new MimeBodyPart();  
  77.         MimeBodyPart imgPart=new MimeBodyPart();  
  78.           
  79.         bodyMultipart.addBodyPart(thmlPart);//html        
  80.         bodyMultipart.addBodyPart(imgPart);//img  
  81.           
  82.         //图片数据来源  
  83.         DataSource dsImg=new FileDataSource("F:/ipho/IMG_0332.JPG");          
  84.         DataHandler dhImg=new DataHandler(dsImg);  
  85.         imgPart.setDataHandler(dhImg);  
  86.           
  87.         //这个图片代表的位置  
  88.         imgPart.setHeader("Content-location","http://www.aaa.com/img_0332.jpg");  
  89.           
  90.         //文本  
  91.         thmlPart.setContent("<h1>你好呀 </h1><span style=color='red'>yesterday once more</sapn>" +  
  92.                 " <img src='http://www.aaa.com/img_0332.jpg'/>",  
  93.                 "text/html;charset=gbk");  
  94.         //生成  
  95.         message.saveChanges();  
  96.           
  97.         //保存在本地 测试       输出到本地  
  98.         OutputStream os=new FileOutputStream("F:\\juxunDocument\\email\\demo3.eml");  
  99.         message.writeTo(os);  
  100.         os.close();  
  101.           
  102.           
  103.     }  
  104.   
  105. }  

servelt
[java] view plaincopy在CODE上查看代码片派生到我的代码片
  1. package com.mail.web.servlet;  
  2.   
  3. import java.io.IOException;  
  4. import java.io.PrintWriter;  
  5.   
  6. import javax.mail.Message;  
  7. import javax.mail.Session;  
  8. import javax.mail.Transport;  
  9. import javax.mail.internet.InternetAddress;  
  10. import javax.mail.internet.MimeMessage;  
  11. import javax.naming.Context;  
  12. import javax.naming.InitialContext;  
  13. import javax.servlet.ServletException;  
  14. import javax.servlet.http.HttpServlet;  
  15. import javax.servlet.http.HttpServletRequest;  
  16. import javax.servlet.http.HttpServletResponse;  
  17.   
  18. import com.mail.Test2Demo;  
  19.   
  20. public class SendMail extends HttpServlet {  
  21.   
  22.     public void doGet(HttpServletRequest request, HttpServletResponse response)  
  23.             throws ServletException, IOException {  
  24.   
  25.         doPost(request,response);  
  26.     }  
  27.   
  28.       
  29.     public void doPost(HttpServletRequest request, HttpServletResponse response)  
  30.             throws ServletException, IOException {  
  31.   
  32.         response.setContentType("text/html");  
  33.         PrintWriter out = response.getWriter();  
  34.           
  35.         try {  
  36.             //调用生成好的Test2Demo.jar 类发送邮件  方式一  
  37.             //Test2Demo.main(new String[]{});  
  38.           
  39.         /** 
  40.          * JNDI 配制方式发送邮件 方式二 
  41.          * META-INF文件夹中配context.xml信息 
  42.          * 在web.xml配置相关信息 
  43.          * 发布到tomcat时 
  44.          * 需要把lib 的mail.jar拷贝到Tomcat的lib下  
  45.          * 并且删掉项目中的mail.jar  
  46.          */  
  47.       
  48.         Context initCtx = new InitialContext();  
  49.         Context envCtx = (Context) initCtx.lookup("java:comp/env");  
  50.         Session session = (Session) envCtx.lookup("mail/hello");  
  51.   
  52.         Message message = new MimeMessage(session);  
  53.         //发件人  
  54.         message.setFrom(new InternetAddress("liangrui_1988@sina.com"));  
  55.           
  56.         //收件人地址  
  57.         InternetAddress to[] = new InternetAddress[1];  
  58.         to[0] = new InternetAddress("liangrui_1988@sohu.com");  
  59.           
  60.         message.setRecipients(Message.RecipientType.TO, to);  
  61.         message.setSubject("测试主题");//主题  
  62.         message.setText("test email ok---");  
  63.           
  64.         //Transport  
  65.         Transport tran=session.getTransport();  
  66.           
  67.         tran.connect("smtp.sina.com","liangrui_1988","*****");//获得连接  
  68.         tran.sendMessage(message, to);  
  69.           
  70.         tran.close();  
  71.           
  72.     out.print("ok----------------");  
  73.     } catch (Exception e) {  
  74.         e.printStackTrace(out);  
  75.     }  
  76.       
  77.           
  78.         out.flush();  
  79.         out.close();  
  80.     }  
  81.   
  82. }  

META-INF

context.xml

[html] view plaincopy在CODE上查看代码片派生到我的代码片
  1. <Context>  
  2. <Resource name="mail/hello" auth="Container"  
  3.             type="javax.mail.Session"  
  4.             mail.smtp.host="smtp.sina.com"  
  5.             mail.smtp.auth="true"  
  6.             mail.transport.protocol="smtp"  
  7.             />  
  8. </Context> 
0 0
原创粉丝点击