博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Spring之Email<封装了常用的四种发送Email的方法(TEXT,HTML,IMG,FILE)>
阅读量:4037 次
发布时间:2019-05-24

本文共 15673 字,大约阅读时间需要 52 分钟。

1 Spring邮件发送(可带附件,模板,群发,异步发送等功能) 

 

2 Spring mail 使用多个账号发送带有附件的HTML邮件 

 

3 spring各种邮件发送 

 

4 spring来发EMAIL 

 

5 使用spring发送邮件例 

 

6 Spring Mail中文乱码问题 

 

7 国内常用邮箱客户端POP3和SMTP服务器大全 

 


写在前面的话
 

网上很多文章都是针对配置文件来说的,本文是对<spring各种邮件发送>这篇文章作了封装,使用spring发送Email更加方便
 

网易和其它很多公司现在都没有对外开放POP3/SMTP服务,可能你会碰到这样的错误: 
org.springframework.mail.MailAuthenticationException: Authentication failed; nested exception is javax.mail.AuthenticationFailedException 
我测试时是用的是:新浪的邮箱:smtp.sina.com也是可以的
 

如下设置: 

 

Exception: javax.net.ssl.SSLException: Unrecognized SSL message, plaintext connection 
参考文章: 
解答: 配置JavaMail的Properties时,不要指定mail.smtp.socketFactory.class,因为TLS使用的是普通的Socket。 然后指定属性mail.smtp.starttls.enable为true.
 


介绍 

Spring邮件抽象层的主要包为org.springframework.mail。它包括了发送电子邮件的主要接口MailSender,和值对象SimpleMailMessage, 
它封装了简单邮件的属性如from, to,cc, subject,text。 包里还包含一棵以MailException为根的checked Exception继承树, 
它们提供了对底层邮件系统异常的高级别抽象.为了使用JavaMail中的一些特色, 比如MIME类型的信件, Spring提供了MailSender的一个子接口, 
即org.springframework.mail.javamail.JavaMailSender。Spring还提供了一个回调接口org.springframework.mail.javamail.MimeMessagePreparator, 
用于准备JavaMail的MIME信件.
 


工程环境:XP+Myeclipse6.5+JDK1.6
 


一 实现功能
 

1 封装了常用的四种发送Email的方法(文本,html,img,file),用户只要调用一个工厂类传递相应的邮件的属性如from, to,cc, subject,text,或者是消息对象 
2 解决了发送邮件附件中的中文筹码问题,参见了<Spring Mail中文乱码问题> 
3 支持链式风格 
4 可以混合发送多种消息(text,html,img,file)
 


二 工程图片 

 

或者你也可以这样,使用打包好的jar:email.spring.util.jar 

,见附件 

三 调用说明 

1 发送文本消息 

Java代码  
  1. //默认空构造为发送文本类型  
  2. /默认空构造为发送文本类型  
  3.     MailMessageFactory mms = new MailMessageFactory();  
  4.     mms.setSubject("使用spring email 测试发送文本消息")  
  5.     .setText("正文消息了。。。。")  
  6.     .send();          


2 发送Html格式消息 

Java代码  
  1. MailMessageFactory mms = new MailMessageFactory(SendMailType.HTML);  
  2.         mms.setSubject("使用spring email 测试发送Html中文邮件")  
  3.         .setText("<html><head><meta http-equiv='content-type' content='text/html; charset=GBK'>" +  
  4.                 "</head><body><h1>这里是咫尺天涯发送的邮件</h1></body></html>").send();  


3 发送含有图片的消息 

Java代码  
  1. MailMessageFactory mms = new MailMessageFactory(SendMailType.HTML);               
  2.          String text = "<html><body>欢迎访问咫尺天涯博客<br>"  
  3.                 + "<a href='http://liuzidong.iteye.com/' target='_blank'>"  
  4.                 + "<img src='cid:belle'></a><br><img src='cid:belle2'></body></html>";    
  5.          //附件要嵌入到HTML中显示,则在IMG标签中用"cid:XXX"标记。                 
  6.         mms.setSubject("使用spring email 测试邮件中嵌套图片");   
  7.         mms.setText(text);  
  8.         File file = new File("c:\\5.jpg");            
  9.         mms.setImgFile("belle", file);        
  10.         File file2 = new File("c:\\4.jpg");  
  11.         mms.setImgFile("belle2", file2);      
  12.         mms.send();  


4 发送含有附件的消息 

Java代码  
  1. MailMessageFactory mms = new MailMessageFactory(SendMailType.HTML);  
  2.         mms.setSubject("使用spring email 测试发送附件");  
  3.         File file = new File("c:\\1.zip");  
  4.         mms.setAttachmentFile("jquery学习记录", file).send();  


5 综合发送(文本,html,img,file)消息 

Java代码  
  1. MailMessageFactory mms = new MailMessageFactory(SendMailType.HTML);  
  2.         mms.setSubject("使用spring email 测试发送邮件<包含html,img,file>等格式");        
  3.         mms.setText("这是我的文本格式");  
  4.         mms.setText("<html><head><h1>这里是咫尺天涯发送的邮件</h1></head><body>" +  
  5.                 "<h1><a href='http://liuzidong.iteye.com/' target='_blank'></h1><br>" +  
  6.                 "<img src='cid:belle'></a><br><img src='cid:belle2'>"+  
  7.                 "</body></html>");  
  8.          //附件要嵌入到HTML中显示,则在IMG标签中用"cid:XXX"标记。   
  9.         File file = new File("c:\\5.jpg");  
  10.         mms.setImgFile("belle", file);        
  11.         File file2 = new File("c:\\4.jpg");  
  12.         mms.setImgFile("belle2", file2);          
  13.         File file3 = new File("c:\\1.zip");  
  14.         mms.setAttachmentFile("附件1", file3);          
  15.         File file4 = new File("c:\\jquery学习记录.txt");  
  16.         mms.setAttachmentFile("jquery学习记录", file4);       
  17.         mms.send();  


四 代码如下 

1 消息发送类:MailMessageFactory 

Java代码  
  1. package net.liuzd.email.spring;  
  2.   
  3. import java.io.File;  
  4. import java.io.UnsupportedEncodingException;  
  5. import java.util.List;  
  6.   
  7. import javax.mail.MessagingException;  
  8. import javax.mail.internet.MimeMessage;  
  9. import javax.mail.internet.MimeUtility;  
  10.   
  11. import net.liuzd.email.EmailEntity;  
  12. import net.liuzd.email.MailType;  
  13. import net.liuzd.email.SendMailType;  
  14. import net.liuzd.email.SendMessage;  
  15.   
  16. import org.springframework.core.io.FileSystemResource;  
  17. import org.springframework.mail.SimpleMailMessage;  
  18. import org.springframework.mail.javamail.JavaMailSenderImpl;  
  19. import org.springframework.mail.javamail.MimeMessageHelper;  
  20.   
  21. /** 
  22.  * Title: 消息发送类  
  23.  * Description: Copyright: Copyright (c) 2011 
  24.  * Company:http://liuzidong.iteye.com/ Makedate:2011-7-4 上午10:11:08 
  25.  * @author liuzidong 
  26.  * @version 1.0 
  27.  * @since 1.0 
  28.  *  
  29.  */  
  30. public class MailMessageFactory {  
  31.   
  32.     private SimpleMailMessage simpleMailMessage;  
  33.     private MimeMessageHelper mimeMessageHelper;  
  34.     private JavaMailSenderImpl senderImpl;  
  35.     private MimeMessage mimeMessage;  
  36.     private SendMailType sendMailType;    
  37.     private SendMessage sendMessage;      
  38.     private static final String ENCODING = EmailEntity.EMAIL_ENCODING;  
  39.       
  40.   
  41.     /** 
  42.      * 默认为发送文本类型 
  43.      * */  
  44.     public MailMessageFactory() {  
  45.         this(SendMailType.TEXT);  
  46.     }  
  47.   
  48.     /** 
  49.      * 请显示指明文件类型为:TEXT,HTML,默认为文本类型 
  50.      *  
  51.      * */  
  52.     public MailMessageFactory(SendMailType sendMailType){  
  53.           
  54.         this.sendMailType = sendMailType;  
  55.         this.senderImpl = JavaMailFactory.getJavaMail();  
  56.         this.mimeMessage = senderImpl.createMimeMessage();                
  57.         sendMessage = new SendMessage();      
  58.           
  59.         try {  
  60.             switch (this.sendMailType) {  
  61.             case TEXT:  
  62.                 simpleMailMessage = new SimpleMailMessage();  
  63.                 break;  
  64.             case HTML:    
  65.                 mimeMessageHelper = new MimeMessageHelper(mimeMessage, true, ENCODING);  
  66.             }  
  67.         } catch (Exception e) {  
  68.             e.fillInStackTrace();  
  69.         }  
  70.   
  71.     }  
  72.       
  73.     /** 
  74.      * @param to 接收者人地址 
  75.      * @return 
  76.      */  
  77.     public MailMessageFactory setTo(String ... to){       
  78.         sendMessage.setTos(to);       
  79.         return this;  
  80.     }  
  81.       
  82.       
  83.     /**发送标题*/  
  84.     public MailMessageFactory setSubject(String subject){  
  85.         sendMessage.setSubject(subject);  
  86.         return this;  
  87.     }  
  88.       
  89.     /**发送内容*/  
  90.     public MailMessageFactory setText(String text){  
  91.         sendMessage.addText(text);  
  92.         return this;  
  93.     }  
  94.       
  95.       
  96.       
  97.     /** 
  98.      * 加入图片文件 
  99.      * @param imageName  图片名称 
  100.      * @param file   图片源 
  101.      * @return 
  102.      */  
  103.     public MailMessageFactory setImgFile(String imageName,File file){     
  104.         try {  
  105.             sendMessage.addFile(MailType.IMG,MimeUtility.encodeWord(imageName), file);                    
  106.         } catch (UnsupportedEncodingException e) {            
  107.             e.printStackTrace();  
  108.         }         
  109.         return this;  
  110.     }  
  111.       
  112.       
  113.     /** 
  114.      * 加入图片文件 
  115.      * @param imageName  图片名称 
  116.      * @param filePath   图片路径 
  117.      * @return 
  118.      */  
  119.     public MailMessageFactory setImgFile(String imageName,String filePath){           
  120.         setImgFile(imageName, new File(filePath));        
  121.         return this;  
  122.     }  
  123.       
  124.     /** 
  125.      * 加入附件 
  126.      * @param fileName  附件名称 
  127.      * @param file      附件路径 
  128.      * @return 
  129.      */  
  130.     public MailMessageFactory setAttachmentFile(String fileName,String filePath){     
  131.         setAttachmentFile(fileName, new File(filePath));          
  132.         return this;  
  133.     }  
  134.       
  135.   
  136.     /** 
  137.      * 加入附件 
  138.      * @param fileName  附件名称 
  139.      * @param file      附件源  
  140.      * @return 
  141.      */  
  142.     public MailMessageFactory setAttachmentFile(String fileName,File file){           
  143.         try {  
  144.             sendMessage.addFile(MailType.FILE,MimeUtility.encodeWord(fileName),file);                     
  145.         } catch (UnsupportedEncodingException e) {            
  146.             e.printStackTrace();  
  147.         }     
  148.         return this;  
  149.     }  
  150.       
  151.       
  152.       
  153.     /**发送消息,你调用此方法进行Email消息的发送*/  
  154.     public void send(){   
  155.           
  156.         //消息发送前,检查发送人地址,接收人地址是否为空,为空就设置为配置文件中的地址          
  157.         sendMessage.setForm(EmailEntity.EMAIL_FROM);  
  158.           
  159.         //检查接收人地址是否为空  
  160.         String [] tos = sendMessage.getTos();  
  161.         if(null == tos || tos.length == 0){  
  162.             tos = new String[]{EmailEntity.EMAIL_TO};  
  163.             sendMessage.setTos(tos);  
  164.         }                 
  165.           
  166.         long startTime = System.currentTimeMillis();  
  167.         //发送普通文本  
  168.         if(sendMailType == SendMailType.TEXT){  
  169.             sendTextMessage();  
  170.         }else{            
  171.             sendHtmlImgFileMessage();  
  172.         }         
  173.         long endTime = System.currentTimeMillis();  
  174.         System.out.println(sendMailType + "成功!,耗费时间: " + (endTime - startTime)+"毫秒!");  
  175.     }         
  176.       
  177.     /** 
  178.      * 发送html,图片,附件的消息 
  179.      */  
  180.     private void sendHtmlImgFileMessage() {  
  181.           
  182.         try {             
  183.             mimeMessageHelper.setTo(sendMessage.getTos());  
  184.             mimeMessageHelper.setFrom(sendMessage.getForm());  
  185.             String subject = sendMessage.getSubject();  
  186.             if(null != subject && !"".equals(subject)){  
  187.                 mimeMessageHelper.setSubject(subject);  
  188.             }  
  189.             String text = sendMessage.getSendTexts();  
  190.             if(null != text && !"".equals(text)){  
  191.                 mimeMessageHelper.setText(text,true);  
  192.             }             
  193.           
  194.             //检查图片或者文件集合是否为空  
  195.             int imgSize = sendMessage.getImages().size();     
  196.               
  197.             if(imgSize > 0){  
  198.               
  199.                     List<SendMessage> lists = sendMessage.getImages();  
  200.                     FileSystemResource fsr = null;  
  201.                     String imgName = null;  
  202.                     for(SendMessage entity : lists){  
  203.                         fsr = new FileSystemResource(entity.getFile());  
  204.                         imgName = entity.getImgName();  
  205.                         //如果为图片类型就调用addInline,否则就调用:addAttachment方法^_^  
  206.                         if(entity.getMailType() == MailType.IMG)  
  207.                             mimeMessageHelper.addInline(imgName, fsr);  
  208.                         else   
  209.                             mimeMessageHelper.addAttachment(imgName, fsr);                                
  210.                           
  211.                     }  
  212.                     fsr = null;               
  213.                   
  214.             }     
  215.               
  216.         } catch (MessagingException e) {                  
  217.             e.printStackTrace();  
  218.         }  
  219.         senderImpl.send(mimeMessage);  
  220.     }  
  221.   
  222.     /** 
  223.      * 发送文本消息 
  224.      */  
  225.     private void sendTextMessage() {  
  226.         simpleMailMessage.setTo(sendMessage.getTos());    
  227.         simpleMailMessage.setFrom(sendMessage.getForm());  
  228.         String subject = sendMessage.getSubject();  
  229.         if(null != subject && !"".equals(subject)){  
  230.             simpleMailMessage.setSubject(subject);  
  231.         }         
  232.         String text = sendMessage.getSendTexts();  
  233.         if(null != text && !"".equals(text)){  
  234.             simpleMailMessage.setText(text);  
  235.         }     
  236.         senderImpl.send(simpleMailMessage);  
  237.     }  
  238.       
  239.       
  240.     /**  
  241.      * @param subject       发送标题  
  242.      * @param text          发送内容         
  243.      * @param to            接收人地址 
  244.      */  
  245.     public void send(String subject,String text,String ... to){       
  246.         sendMessage(subject, text, to);               
  247.     }  
  248.       
  249.       
  250.   
  251.     private void sendMessage(String subject, String text, String... to) {  
  252.         setTo(to);  
  253.         setSubject(subject);  
  254.         setText(text);  
  255.     }  
  256.       
  257.       
  258.   
  259.     public SendMessage getSendMessage() {  
  260.         return sendMessage;  
  261.     }  
  262.   
  263.     /*** 
  264.      * 接收一个消息对象 
  265.      * */  
  266.     public MailMessageFactory setSendMessage(SendMessage sendMessage) {  
  267.         this.sendMessage = sendMessage;       
  268.         return this;  
  269.     }  
  270. }  


2 邮件发送类型:SendMailType 

Java代码  
  1. package net.liuzd.email;  
  2. /**    
  3.  *Title:     邮件发送类型 
  4.  *Description:      
  5.  *Copyright: Copyright (c) 2011    
  6.  *Company:http://liuzidong.iteye.com/     
  7.  *Makedate:2011-7-4 上午09:59:08    
  8.  * @author liuzidong    
  9.  * @version 1.0    
  10.  * @since 1.0     
  11.  *    
  12.  */  
  13. public enum SendMailType {  
  14.     /** 
  15.      * 文本类型 
  16.      * */  
  17.     TEXT,  
  18.     /** 
  19.      * HTML类型,包含图片与附件内容 
  20.      * **/  
  21.     HTML;  
  22.       
  23.   
  24.     @Override  
  25.     public String toString() {  
  26.         String message = null;  
  27.         switch (this) {  
  28.         case TEXT:  
  29.             message = "发送文本消息";  
  30.             break;  
  31.         case HTML :  
  32.             message = "发送html消息";     
  33.             break;  
  34.         }  
  35.         return message;  
  36.     }  
  37. }  

3 读取配置文件类:ReadConfigEmail 

Java代码  
  1. public class ReadConfigEmail {  
  2.   
  3.     private static Properties mailProps = new Properties();  
  4.     private static final String EMAILPROPERTIES = "mail.properties";  
  5.   
  6.     static {  
  7.         try {  
  8.             InputStream inStream = ReadConfigEmail.class.getClassLoader()  
  9.                     .getResourceAsStream(EMAILPROPERTIES);  
  10.             mailProps.load(inStream);  
  11.         } catch (Exception ex) {  
  12.             throw new RuntimeException("读取配置文件出错了..." + ex.getMessage(), ex);  
  13.         }  
  14.     }  
  15.   
  16.     public static Properties getProperty() {  
  17.         return mailProps;  
  18.     }  
  19.   
  20.     public static String getPropertyByKey(String key) {  
  21.         return mailProps.getProperty(key);  
  22.     }  
  23.   
  24. }  


4 消息对象:SendMessage 

Java代码  
  1. public class SendMessage {  
  2.       
  3.     private String [] tos;  
  4.     private String subject;  
  5.       
  6.     private String imgName;  
  7.     private File file;  
  8.     private MailType mailType;   
  9.       
  10.     private String form;  
  11.       
  12.     private List<String> texts = new ArrayList<String>();  
  13.       
  14.     //图片集合  
  15.     private List<SendMessage> images = new ArrayList<SendMessage>();  
  16.       
  17.     public MailType getMailType() {  
  18.         return mailType;  
  19.     }  
  20.   
  21.   
  22.     public void setMailType(MailType mailType) {  
  23.         this.mailType = mailType;  
  24.     }  
  25.   
  26.   
  27.     public void addFile(MailType mailType,String imgName,File file){  
  28.         images.add(new SendMessage(mailType,imgName,file));  
  29.     }  
  30.       
  31.     public void addText(String text){  
  32.         texts.add(text);  
  33.     }  
  34.       
  35.       
  36.     public SendMessage(MailType mailType,String imgName, File file) {  
  37.         super();  
  38.         this.mailType =  mailType;  
  39.         this.imgName = imgName;  
  40.         this.file = file;  
  41.     }  
  42.   
  43.   
  44.   
  45.     public List<SendMessage> getImages() {  
  46.         return images;  
  47.     }  
  48.     public void setImages(List<SendMessage> images) {  
  49.         this.images = images;  
  50.     }  
  51.     public String getForm() {  
  52.         return form;  
  53.     }  
  54.     public void setForm(String form) {  
  55.         this.form = form;  
  56.     }  
  57.     public String getImgName() {  
  58.         return imgName;  
  59.     }  
  60.     public void setImgName(String imgName) {  
  61.         this.imgName = imgName;  
  62.     }  
  63.       
  64.     public String[] getTos() {  
  65.         return tos;  
  66.     }  
  67.     public void setTos(String[] tos) {  
  68.         this.tos = tos;  
  69.     }  
  70.     public String getSubject() {  
  71.         return subject;  
  72.     }  
  73.     public void setSubject(String subject) {          
  74.         this.subject = subject;  
  75.     }  
  76.       
  77.     public SendMessage() {  
  78.           
  79.     }  
  80.     public SendMessage(String[] tos, String subject, String text) {  
  81.         super();  
  82.         this.tos = tos;  
  83.         this.subject = subject;  
  84.         addText(text);  
  85.     }  
  86.       
  87.     public String getSendTexts(){  
  88.         StringBuilder sbr = new StringBuilder();  
  89.         List<String> texts = getTexts();  
  90.         for(String text : texts){  
  91.             sbr.append(text);  
  92.         }  
  93.         return sbr.toString();  
  94.     }  
  95.       
  96.     @Override  
  97.     public String toString() {  
  98.         StringBuilder sbrTos = new StringBuilder();  
  99.         for(String to : tos){  
  100.             sbrTos.append(to).append(",");  
  101.         }  
  102.         String sbrText = sbrTos.substring(0,sbrTos.length()-1);  
  103.         return new StringBuilder()  
  104.         .append("接收人地址: ").append(sbrText)  
  105.         .append(",发送人地址: ").append(form)  
  106.         .append(",发送标题: ").append(subject)  
  107.         .append(",发送内容: ").append(getSendTexts())  
  108.         .toString();  
  109.     }  
  110.     public File getFile() {  
  111.         return file;  
  112.     }  
  113.     public void setFile(File file) {  
  114.         this.file = file;  
  115.     }  
  116.   
  117.   
  118.     public List<String> getTexts() {  
  119.         return texts;  
  120.     }  
  121.   
  122.   
  123.     public void setTexts(List<String> texts) {  
  124.         this.texts = texts;  
  125.     }  
  126.       
  127. }  


5 邮件发送服务器:JavaMailFactory 

Java代码  
  1. public class JavaMailFactory {  
  2.       
  3.     /*** 
  4.      * 此处也可修改为 
  5.      * private JavaMailSenderImpl javaMailSenderImpl; 
  6.      * ... 省略set,get,方便使用spring注入 
  7.      * */  
  8.       
  9.     private static JavaMailSenderImpl senderImpl = new JavaMailSenderImpl();  
  10.       
  11.     static{  
  12.         senderImpl.setHost(EmailEntity.EMAIL_HOST);  
  13.         senderImpl.setUsername(EmailEntity.EMAIL_USERNAME);   
  14.         senderImpl.setPassword(EmailEntity.EMAIL_PASSWORD);           
  15.         senderImpl.setJavaMailProperties(EmailEntity.safetyProperties);  
  16.     }  
  17.       
  18.     public static JavaMailSenderImpl getJavaMail(){   
  19.         return senderImpl;  
  20.     }  
  21. }  


6 Email实体:EmailEntity 

Java代码  
  1. public class EmailEntity {  
  2.       
  3.     /**邮件服务器*/  
  4.     private static final String EMAIL_HOST_KEY = "mail.host";  
  5.     public static final String EMAIL_HOST = ReadConfigEmail.getPropertyByKey(EMAIL_HOST_KEY);  
  6.       
  7.     /**用户名*/  
  8.     private static final String EMAIL_USERNAME_KEY = "mail.username";  
  9.     public static final String EMAIL_USERNAME = ReadConfigEmail.getPropertyByKey(EMAIL_USERNAME_KEY);  
  10.       
  11.     /**用户密码*/  
  12.     private static final String EMAIL_PASSWORD_KEY = "mail.password";  
  13.     public static final String EMAIL_PASSWORD = ReadConfigEmail.getPropertyByKey(EMAIL_PASSWORD_KEY);     
  14.       
  15.     /**接收人*/  
  16.     private static final String EMAIL_TO_KEY = "mail.to";  
  17.     public static final String EMAIL_TO = ReadConfigEmail.getPropertyByKey(EMAIL_TO_KEY);  
  18.       
  19.     /**发送人*/  
  20.     private static final String EMAIL_FROM_KEY = "mail.from";  
  21.     public static final String EMAIL_FROM = ReadConfigEmail.getPropertyByKey(EMAIL_FROM_KEY);     
  22.       
  23.     /**服务器进行认证,认证用户名和密码是否正确*/  
  24.     private static final String EMAIL_SMTP_AUTH_KEY = "mail.smtp.auth";  
  25.     public static final String EMAIL_SMTP_AUTH = ReadConfigEmail.getPropertyByKey(EMAIL_SMTP_AUTH_KEY);  
  26.       
  27.     /**超时时间设定*/  
  28.     private static final String EMAIL_SMTP_TIMEOUT_KEY = "mail.smtp.timeout";  
  29.     public static final String EMAIL_SMTP_TIMEOUT = ReadConfigEmail.getPropertyByKey(EMAIL_SMTP_TIMEOUT_KEY);  
  30.       
  31.       
  32.     /**编码设置*/  
  33.     private static final String EMAIL_ENCODING_KEY = "mail.encoding";  
  34.     public static final String EMAIL_ENCODING = ReadConfigEmail.getPropertyByKey(EMAIL_ENCODING_KEY);  
  35.       
  36.     private static final String EMAIL_SMTP_STARTTLS_KEY = "mail.smtp.starttls.enable";  
  37.     public static final String EMAIL_SMTP_STARTTLS = ReadConfigEmail.getPropertyByKey(EMAIL_SMTP_STARTTLS_KEY);  
  38.       
  39.     //private static final String EMAIL_SMTP_SOCKETFACTORY_CLASS_KEY = "mail.smtp.socketFactory.class";  
  40.     //public static final String EMAIL_SMTP_SOCKETFACTORY_CLASS = ReadConfigEmail.getPropertyByKey(EMAIL_SMTP_SOCKETFACTORY_CLASS_KEY);  
  41.       
  42.       
  43.     /**安全认证设置*/  
  44.     public static Properties safetyProperties = new Properties();  
  45.       
  46.     static{  
  47.         //调试信息,可以取消  
  48.         //System.setProperty( "javax.net.debug", "ssl");          
  49.         /** 
  50.          * #配置JavaMail的Properties时,不要指定“mail.smtp.socketFactory.class”, 
  51.            #因为TLS使用的是普通的Socket。然后指定属性“mail.smtp.starttls.enable”为“true”。 
  52.          * */         
  53.         safetyProperties.put(EMAIL_SMTP_AUTH_KEY, EMAIL_SMTP_AUTH);   
  54.         safetyProperties.put(EMAIL_SMTP_TIMEOUT_KEY, EMAIL_SMTP_TIMEOUT);   
  55.         safetyProperties.put(EMAIL_SMTP_STARTTLS_KEY, EMAIL_SMTP_STARTTLS);   
  56.         //safetyProperties.put(EMAIL_SMTP_SOCKETFACTORY_CLASS_KEY, EMAIL_SMTP_SOCKETFACTORY_CLASS);  
  57.     }     
  58.   
  59. }  

7 MailType.java 

Java代码  
  1. public enum MailType {    
  2.     /** 
  3.      * 图片类型 
  4.      * */  
  5.     IMG,  
  6.     /** 
  7.      * 文件类型 
  8.      * */  
  9.     FILE;  
  10.   
  11.     @Override  
  12.     public String toString() {  
  13.         String message = null;  
  14.         switch (this) {       
  15.         case IMG :  
  16.             message = ",包含图片";  
  17.         default:  
  18.             message = ",包含附件";  
  19.             break;  
  20.         }  
  21.         return message;  
  22.     }  
  23. }  

8 mail.properties 

Java代码  
  1. #新浪邮件服务器  
  2. mail.host=smtp.sina.com  
  3. mail.smtp.auth=true  
  4. mail.smtp.timeout=25000  
  5. mail.encoding=utf-8  
  6. mail.smtp.starttls.enable=true;   
  7. #mail.smtp.socketFactory.class=javax.net.ssl.SSLSocketFactory  
  8. #Email地址  
  9. mail.username=XXX  
  10. #Email密码   
  11. mail.password=XXX  
  12. #发送人地址  
  13. mail.from=XXX@sina.com  
  14. #收件人地址  
  15. mail.to=XXX@163.com  
原文章来源:
http://liuzidong.iteye.com/blog/1114783

转载地址:http://dyjdi.baihongyu.com/

你可能感兴趣的文章
JVM并发机制探讨—内存模型、内存可见性和指令重排序
查看>>
可扩展、高可用服务网络设计方案
查看>>
如何构建高扩展性网站
查看>>
微服务架构的设计模式
查看>>
持续可用与CAP理论 – 一个系统开发者的观点
查看>>
nginx+tomcat+memcached (msm)实现 session同步复制
查看>>
c++字符数组和字符指针区别以及str***函数
查看>>
c++类的操作符重载注意事项
查看>>
c++模板与泛型编程
查看>>
STL::deque以及由其实现的queue和stack
查看>>
WAV文件解析
查看>>
DAC输出音乐2-解决pu pu 声
查看>>
WPF中PATH使用AI导出SVG的方法
查看>>
WPF UI&控件免费开源库
查看>>
QT打开项目提示no valid settings file could be found
查看>>
Win10+VS+ESP32环境搭建
查看>>
Ubuntu+win10远程桌面
查看>>
flutter-实现圆角带边框的view(android无效)
查看>>
android 代码实现圆角
查看>>
flutter-解析json
查看>>