zoukankan      html  css  js  c++  java
  • 通过Spring Mail Api发送邮件

    转自:http://blog.csdn.net/smcwwh/article/details/7095027

    【Spring Mail API】

    Spring Mail API都在org.springframework.mail及其子包org.springframework.mail.javamail中封装,且只提供了邮件发送的封装。
    SimpleMailMessage: 对邮件的一个简单封装,只能用于表示一个纯文本的邮件,也不能包含附件等。
    JavaMailSenderImpl: 邮件发送器,主要提供了邮件发送接口、透明创建Java Mail的MimeMessage、及邮件发送的配置(如:host/port/username/password...)。
    MimeMailMessage、MimeMessageHelper:对MimeMessage进行了封装。Spring还提供了一个回调接口MimeMessagePreparator, 用于准备JavaMail的MIME信件
    一下代码转载自:http://www.blogjava.net/tangzurui/archive/2008/12/08/244953.html

    1.发送简单的文本邮件

    [java] view plaincopy
     
    1. package net.xftzr.mail;  
    2.   
    3. import java.util.Properties;  
    4.   
    5. import org.springframework.mail.SimpleMailMessage;  
    6. import org.springframework.mail.javamail.JavaMailSenderImpl;  
    7.   
    8. /** 
    9.  * 本类测试简单邮件 直接用邮件发送 
    10.  *  
    11.  * @author Administrator 
    12.  *  
    13.  */  
    14. public class SingleMailSend  
    15. {  
    16.     public static void main(String args[])  
    17.     {  
    18.         JavaMailSenderImpl senderImpl = new JavaMailSenderImpl();  
    19.         // 设定mail server  
    20.         senderImpl.setHost(" smtp.163.com ");  
    21.   
    22.         // 建立邮件消息  
    23.         SimpleMailMessage mailMessage = new SimpleMailMessage();  
    24.         // 设置收件人,寄件人 用数组发送多个邮件  
    25.         // String[] array = new String[] {"sun111@163.com","sun222@sohu.com"};  
    26.         // mailMessage.setTo(array);  
    27.         mailMessage.setTo(" toEmail@sina.com ");  
    28.         mailMessage.setFrom(" userName@163.com ");  
    29.         mailMessage.setSubject(" 测试简单文本邮件发送! ");  
    30.         mailMessage.setText(" 测试我的简单邮件发送机制!! ");  
    31.   
    32.         senderImpl.setUsername(" userName "); // 根据自己的情况,设置username  
    33.         senderImpl.setPassword(" password "); // 根据自己的情况, 设置password  
    34.   
    35.         Properties prop = new Properties();  
    36.         prop.put(" mail.smtp.auth ", " true "); // 将这个参数设为true,让服务器进行认证,认证用户名和密码是否正确  
    37.         prop.put(" mail.smtp.timeout ", " 25000 ");  
    38.         senderImpl.setJavaMailProperties(prop);  
    39.         // 发送邮件  
    40.         senderImpl.send(mailMessage);  
    41.   
    42.         System.out.println(" 邮件发送成功.. ");  
    43.     }  
    44. }  


    2.发送简单的html邮件

    org.springframework.mail.javamail.MimeMessageHelper是处理JavaMail邮件常用的顺手组件之一。它可以让你摆脱繁复的javax.mail.internetAPI类

    [java] view plaincopy
     
    1. package net.xftzr.mail;  
    2.   
    3. import java.util.Properties;  
    4.   
    5. import javax.mail.internet.MimeMessage;  
    6. import org.springframework.mail.javamail.JavaMailSenderImpl;  
    7. import org.springframework.mail.javamail.MimeMessageHelper;  
    8.   
    9. /** 
    10.  * 本类测试html邮件 
    11.  *  
    12.  * @author sunny 
    13.  *  
    14.  */  
    15. public class HTMLMailDemo  
    16. {  
    17.     /** 
    18.      * @param args 
    19.      */  
    20.     public static void main(String[] args) throws Exception  
    21.     {  
    22.         JavaMailSenderImpl senderImpl = new JavaMailSenderImpl();  
    23.   
    24.         // 设定mail server  
    25.         senderImpl.setHost("smtp.163.com");  
    26.   
    27.         // 建立邮件消息,发送简单邮件和html邮件的区别  
    28.         MimeMessage mailMessage = senderImpl.createMimeMessage();  
    29.         MimeMessageHelper messageHelper = new MimeMessageHelper(mailMessage);  
    30.   
    31.         // 设置收件人,寄件人  
    32.         messageHelper.setTo("Mailto@sina.com");  
    33.         messageHelper.setFrom("username@163.com");  
    34.         messageHelper.setSubject("测试HTML邮件!");  
    35.         // true 表示启动HTML格式的邮件  
    36.         messageHelper  
    37.                 .setText(  
    38.                         "<html><head></head><body><h1>hello!!spring html Mail</h1></body></html>",  
    39.                         true);  
    40.   
    41.         senderImpl.setUsername("username"); // 根据自己的情况,设置username  
    42.         senderImpl.setPassword("password"); // 根据自己的情况, 设置password  
    43.         Properties prop = new Properties();  
    44.         prop.put("mail.smtp.auth", "true"); // 将这个参数设为true,让服务器进行认证,认证用户名和密码是否正确  
    45.         prop.put("mail.smtp.timeout", "25000");  
    46.         senderImpl.setJavaMailProperties(prop);  
    47.         // 发送邮件  
    48.         senderImpl.send(mailMessage);  
    49.   
    50.         System.out.println("邮件发送成功..");  
    51.     }  
    52. }  


    3.发送嵌套图片的邮件
    Email允许添加附件,也允许在multipart信件中内嵌资源。内嵌资源可能是你在信件中希望使用的图像,或者样式表,但是又不想把它们作为附件。

    [java] view plaincopy
     
    1. package net.xftzr.mail;  
    2.   
    3. import java.io.File;  
    4. import java.util.Properties;  
    5.   
    6. import javax.mail.internet.MimeMessage;  
    7. import org.springframework.core.io.FileSystemResource;  
    8. import org.springframework.mail.javamail.JavaMailSenderImpl;  
    9. import org.springframework.mail.javamail.MimeMessageHelper;  
    10.   
    11. /** 
    12.  * 本类测试邮件中嵌套图片 
    13.  *  
    14.  * @author sunny 
    15.  *  
    16.  */  
    17. public class AttachedImageMail  
    18. {  
    19.     public static void main(String[] args) throws Exception  
    20.     {  
    21.         JavaMailSenderImpl senderImpl = new JavaMailSenderImpl();  
    22.   
    23.         // 设定mail server  
    24.         senderImpl.setHost("smtp.163.com");  
    25.   
    26.         // 建立邮件消息,发送简单邮件和html邮件的区别  
    27.         MimeMessage mailMessage = senderImpl.createMimeMessage();  
    28.         // 注意这里的boolean,等于真的时候才能嵌套图片,在构建MimeMessageHelper时候,所给定的值是true表示启用,  
    29.         // multipart模式  
    30.         MimeMessageHelper messageHelper = new MimeMessageHelper(mailMessage,  
    31.                 true);  
    32.   
    33.         // 设置收件人,寄件人  
    34.         messageHelper.setTo("toMail@sina.com");  
    35.         messageHelper.setFrom("username@163.com");  
    36.         messageHelper.setSubject("测试邮件中嵌套图片!!");  
    37.         // true 表示启动HTML格式的邮件  
    38.         messageHelper.setText(  
    39.                 "<html><head></head><body><h1>hello!!spring image html mail</h1>"  
    40.                         + "<img src="cid:aaa"/></body></html>", true);  
    41.   
    42.         FileSystemResource img = new FileSystemResource(new File("g:/123.jpg"));  
    43.   
    44.         messageHelper.addInline("aaa", img);  
    45.   
    46.         senderImpl.setUsername("username"); // 根据自己的情况,设置username  
    47.         senderImpl.setPassword("password"); // 根据自己的情况, 设置password  
    48.         Properties prop = new Properties();  
    49.         prop.put("mail.smtp.auth", "true"); // 将这个参数设为true,让服务器进行认证,认证用户名和密码是否正确  
    50.         prop.put("mail.smtp.timeout", "25000");  
    51.         senderImpl.setJavaMailProperties(prop);  
    52.   
    53.         // 发送邮件  
    54.         senderImpl.send(mailMessage);  
    55.   
    56.         System.out.println("邮件发送成功..");  
    57.     }  
    58. }  

    说明:嵌入图片<img src="cid:aaa"/>,其中cid:是固定的写法,而aaa是一个contentId。

    4.发送包含附件的邮件

    [java] view plaincopy
     
      1. package net.xftzr.mail;  
      2.   
      3. import java.io.File;  
      4. import java.util.Properties;  
      5.   
      6. import javax.mail.internet.MimeMessage;  
      7. import org.springframework.core.io.FileSystemResource;  
      8. import org.springframework.mail.javamail.JavaMailSenderImpl;  
      9. import org.springframework.mail.javamail.MimeMessageHelper;  
      10.   
      11. public class AttachedFileMail  
      12. {  
      13.     /** 
      14.      * 本类测试的是关于邮件中带有附件的例子 
      15.      *  
      16.      * @param args 
      17.      */  
      18.     public static void main(String[] args) throws Exception  
      19.     {  
      20.         JavaMailSenderImpl senderImpl = new JavaMailSenderImpl();  
      21.   
      22.         // 设定mail server  
      23.         senderImpl.setHost("smtp.163.com");  
      24.         // 建立邮件消息,发送简单邮件和html邮件的区别  
      25.         MimeMessage mailMessage = senderImpl.createMimeMessage();  
      26.         // 注意这里的boolean,等于真的时候才能嵌套图片,在构建MimeMessageHelper时候,所给定的值是true表示启用,  
      27.         // multipart模式 为true时发送附件 可以设置html格式  
      28.         MimeMessageHelper messageHelper = new MimeMessageHelper(mailMessage,  
      29.                 true, "utf-8");  
      30.   
      31.         // 设置收件人,寄件人  
      32.         messageHelper.setTo("toMail@sina.com");  
      33.         messageHelper.setFrom("username@163.com");  
      34.         messageHelper.setSubject("测试邮件中上传附件!!");  
      35.         // true 表示启动HTML格式的邮件  
      36.         messageHelper.setText(  
      37.                 "<html><head></head><body><h1>你好:附件中有学习资料!</h1></body></html>",  
      38.                 true);  
      39.   
      40.         FileSystemResource file = new FileSystemResource(  
      41.                 new File("g:/test.rar"));  
      42.         // 这里的方法调用和插入图片是不同的。  
      43.         messageHelper.addAttachment("test.rar", file);  
      44.   
      45.         senderImpl.setUsername("username"); // 根据自己的情况,设置username  
      46.         senderImpl.setPassword("password"); // 根据自己的情况, 设置password  
      47.         Properties prop = new Properties();  
      48.         prop.put("mail.smtp.auth", "true"); // 将这个参数设为true,让服务器进行认证,认证用户名和密码是否正确  
      49.         prop.put("mail.smtp.timeout", "25000");  
      50.         senderImpl.setJavaMailProperties(prop);  
      51.         // 发送邮件  
      52.         senderImpl.send(mailMessage);  
      53.   
      54.         System.out.println("邮件发送成功..");  
      55.     }  
      56. }  
  • 相关阅读:
    Win7 usb无法识别,感叹号,没有盘符
    MVMM 中的ViewModel 实现IsLoading进度条
    菜鸟喜欢的C# 入门认识和添加,修改,删除 文件夹 文件 大全(转)
    (转)windows负载平衡
    关于刷新页面和用法.(转)
    bat文件调用dos命令 (dos淘金)
    flash新闻轮转:图片和链接从数据库读取之我见
    dling 624+and 2100ap && wireless card&wifi
    html与css小技巧
    小型系统数据库安全小结
  • 原文地址:https://www.cnblogs.com/yhtboke/p/5749221.html
Copyright © 2011-2022 走看看