spring简单邮件发送(文本/html/图片/附件)

Spring邮件抽象层的主要包为 org.springframework.mail 。它包括了发送电子邮件的主要接口 MailSender ,和 值对象 SimpleMailMessage ,它封装了简单邮件的属性如 from to , cc subject , text 。 包里还包含一棵以 MailException 为根的checked Exception继承树,它们提供了对底层邮件系统异常的高级别抽象。 要获得关于邮件异常层次的更丰富的信息,请参考Javadocs。

为了使用 JavaMail 中的一些特色, 比如MIME类型的信件, Spring提供了 MailSender 的一个子接口, 即 org.springframework.mail.javamail.JavaMailSender 。Spring还提供了一个回调接口 org.springframework.mail.javamail.MimeMessagePreparator , 用于准备JavaMail的MIME信件。

1.发送简单的文本邮件

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

2.发送简单的html邮件
org.springframework.mail.javamail.MimeMessageHelper 是处理JavaMail邮件常用的顺手组件之一。它可以让你摆脱繁复的 javax.mail.internet API类


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

3.发送嵌套图片的邮件

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


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

4.发送包含附件的邮件

[java]  view plain  copy
  1. package net.xftzr.mail;  
  2.   
  3.   
  4.   
  5. import java.io.File;   
  6. import java.util.Properties;  
  7.   
  8. import javax.mail.internet.MimeMessage;   
  9. import org.springframework.core.io.FileSystemResource;   
  10. import org.springframework.mail.javamail.JavaMailSenderImpl;   
  11. import org.springframework.mail .javamail.MimeMessageHelper;   
  12. public class AttachedFileMail {   
  13. /**  
  14. * 本类测试的是关于邮件中带有附件的例子  
  15. * @param args  
  16. */   
  17. public static void main(String[] args) throws Exception{   
  18.     JavaMailSenderImpl senderImpl = new JavaMailSenderImpl();   
  19.       
  20.     //设定mail server   
  21.     senderImpl.setHost("smtp.163.com");   
  22.     //建立邮件消息,发送简单邮件和html邮件的区别   
  23.     MimeMessage mailMessage = senderImpl.createMimeMessage();   
  24.     //注意这里的boolean,等于真的时候才能嵌套图片,在构建MimeMessageHelper时候,所给定的值是true表示启用,           
  25.     //multipart模式 为true时发送附件 可以设置html格式  
  26.     MimeMessageHelper messageHelper = new MimeMessageHelper(mailMessage,true,"utf-8");   
  27.       
  28.     //设置收件人,寄件人   
  29.     messageHelper.setTo("toMail@sina.com");      
  30.     messageHelper.setFrom("username@163.com");   
  31.     messageHelper.setSubject("测试邮件中上传附件!!");   
  32.     //true 表示启动HTML格式的邮件   
  33.     messageHelper.setText("<html><head></head><body><h1>你好:附件中有学习资料!</h1></body></html>",true);   
  34.           
  35.     FileSystemResource file = new FileSystemResource(new File("g:/test.rar"));   
  36.     //这里的方法调用和插入图片是不同的。   
  37.     messageHelper.addAttachment("test.rar",file);   
  38.       
  39.     senderImpl.setUsername("username") ; // 根据自己的情况,设置username  
  40.     senderImpl.setPassword("password") ; // 根据自己的情况, 设置password  
  41.     Properties prop = new Properties() ;  
  42.     prop.put("mail.smtp.auth""true") ; // 将这个参数设为true,让服务器进行认证,认证用户名和密码是否正确  
  43.     prop.put("mail.smtp.timeout""25000") ;   
  44.     senderImpl.setJavaMailProperties(prop);   
  45.     //发送邮件   
  46.     senderImpl.send(mailMessage);   
  47.       
  48.     System.out.println("邮件发送成功..");   
  49. }   
  50. }  

原文地址:http://www.blogjava.net/tangzurui/archive/2008/12/08/244953.html
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值