Spring 发送邮件

查看原文

Java代码  收藏代码

  1. 1. 邮件相关接口  
  2. /** 
  3.  * Description : 邮件相关服务接口. 
  4.  *  
  5.  * Create Time : 2013年12月4日 上午09:06:42 Copyright : 
  6.  *  
  7.  * Copyright (c) 2010 - 2013 All rights reserved. 
  8.  *  
  9.  * @author jianghua 
  10.  * @version 1.0 
  11.  */  
  12. public interface EmailService {  
  13.   
  14. /** 
  15. * 发送邮件 
  16.  
  17. * @param mailto 
  18. *            收件邮箱 
  19. * @param fromEmail 
  20. *            发送邮箱 
  21. * @param text 
  22. *            内容 
  23. * @param title 
  24. *            标题 
  25. * @throws Exception 
  26. */  
  27. public void sendMail(String mailto, String fromEmail, String text,  
  28.                      String title) throws Exception;  
  29.   
  30. /** 
  31. * 批量下发邮件 
  32.  
  33. * @param mailto 
  34. *            收件邮箱 
  35. * @param fromEmail 
  36. *            发送邮箱 
  37. * @param text 
  38. *            内容 
  39. * @param title 
  40. *            标题 
  41. * @throws Exception 
  42. */  
  43. public void sendBatchMail(String[] mailto, String fromEmail, String text,  
  44.             String title) throws Exception;  
  45.   
  46. /** 
  47. * 批量下发邮件待附件 
  48.  
  49. * @param mailto 
  50. *            收件邮箱 
  51. * @param fromEmail 
  52. *            发送邮箱 
  53. * @param text 
  54. *            内容 
  55. * @param title 
  56. *            标题 
  57. * @param filePath 
  58. *            附件 
  59. * @throws Exception 
  60. */  
  61. public void sendBatchMailWithFile(String[] mailto, String fromEmail,  
  62.             String text, String title, String[] filePath) throws Exception;  
  63. }  




Java代码   收藏代码
  1. 2. 接口实现  
  2. import java.util.ArrayList;  
  3. import java.util.List;  
  4.   
  5. import javax.activation.DataHandler;  
  6. import javax.activation.FileDataSource;  
  7. import javax.annotation.Resource;  
  8. import javax.mail.BodyPart;  
  9. import javax.mail.Message;  
  10. import javax.mail.Multipart;  
  11. import javax.mail.internet.InternetAddress;  
  12. import javax.mail.internet.MimeBodyPart;  
  13. import javax.mail.internet.MimeMessage;  
  14. import javax.mail.internet.MimeMultipart;  
  15. import javax.mail.internet.MimeUtility;  
  16.   
  17. import org.springframework.mail.javamail.JavaMailSenderImpl;  
  18. import org.springframework.mail.javamail.MimeMessageHelper;  
  19.   
  20. /** 
  21.  * Description : 邮件相关服务接口实现. 
  22.  *  
  23.  * Create Time : 2013年12月2日 上午10:10:25 
  24.  *  
  25.  * Copyright : Copyright (c) 2010 - 2013 All rights reserved. 
  26.  *  
  27.  * @author jianghua 
  28.  * @version 1.0 
  29.  */  
  30. public class EmailServiceImpl implements EmailService {  
  31.   
  32.    @Resource(name = "javaMailSender")  
  33.    private JavaMailSenderImpl javaMailSender;  
  34.   
  35.    class EmailThread extends Thread {  
  36.        private final MimeMessage mimeMessage;  
  37.   
  38.        public EmailThread(MimeMessage mimeMessage) {  
  39.           this.mimeMessage = mimeMessage;  
  40.        }  
  41.   
  42.        @Override  
  43.        public void run() {  
  44.           javaMailSender.send(mimeMessage);  
  45.        }  
  46.   
  47.     }  
  48.   
  49.     @Override  
  50.     public void sendMail(String mailto, String fromEmail, String text,  
  51.                          String title) throws Exception {  
  52.         fromEmail = javaMailSender.getUsername();  
  53.   
  54.         MimeMessage mimeMessage = javaMailSender.createMimeMessage();  
  55.         MimeMessageHelper messageHelper = new MimeMessageHelper(mimeMessage,  
  56.                                                                 true"UTF-8");  
  57.         messageHelper.setFrom(new InternetAddress(fromEmail));  
  58.         messageHelper.setSubject(title);  
  59.         messageHelper.setText(text, true);  
  60.         messageHelper.setTo(new InternetAddress(mailto));  
  61.         mimeMessage = messageHelper.getMimeMessage();  
  62.   
  63.         EmailThread et = new EmailThread(mimeMessage);  
  64.         et.start();  
  65.      }  
  66.   
  67.      @Override  
  68.      public void sendBatchMail(String[] mailto, String fromEmail, String text,  
  69.                                  String title) throws Exception {  
  70.         MimeMessage mimeMessage = javaMailSender.createMimeMessage();  
  71.         MimeMessageHelper messageHelper = new MimeMessageHelper(mimeMessage,  
  72.                                                                 true"UTF-8");  
  73.         messageHelper.setFrom(new InternetAddress(fromEmail));  
  74.         messageHelper.setSubject(title);  
  75.         messageHelper.setText(text, true);  
  76.   
  77.         List<InternetAddress> list = new ArrayList<InternetAddress>();  
  78.         for (int i = 0; i < mailto.length; i++) {  
  79.            list.add(new InternetAddress(mailto[i]));  
  80.         }  
  81.        InternetAddress[] address = list.toArray(new InternetAddress[list.size()]);  
  82.        mimeMessage.setRecipients(Message.RecipientType.TO, address);  
  83.        mimeMessage = messageHelper.getMimeMessage();  
  84.   
  85.        EmailThread et = new EmailThread(mimeMessage);  
  86.        et.start();  
  87.     }  
  88.   
  89.     @Override  
  90.     public void sendBatchMailWithFile(String[] mailto, String fromEmail,  
  91.                   String text, String title, String[] filePath) throws Exception {  
  92.        MimeMessage mimeMessage = javaMailSender.createMimeMessage();  
  93.        MimeMessageHelper messageHelper = new MimeMessageHelper(mimeMessage,  
  94.                                                                true"UTF-8");  
  95.        messageHelper.setFrom(newInternetAddress(MimeUtility.  
  96.                                                     encodeText(fromEmail)));  
  97.        messageHelper.setSubject(title);  
  98.        if (filePath != null) {  
  99.        // 新建一个存放信件内容的BodyPart对象  
  100.        BodyPart mdp = new MimeBodyPart();  
  101.        // 给BodyPart对象设置内容和格式/编码方式  
  102.        mdp.setContent(text, "text/html;charset=UTF-8");  
  103.        // 新建一个MimeMultipart对象用来存放BodyPart对象  
  104.        Multipart mm = new MimeMultipart();  
  105.        // 将BodyPart加入到MimeMultipart对象中(可以加入多个BodyPart)  
  106.        mm.addBodyPart(mdp);  
  107.        // 把mm作为消息对象的内容  
  108.        MimeBodyPart filePart;  
  109.        FileDataSource filedatasource;  
  110.        // 逐个加入附件  
  111.        for (int j = 0; j < filePath.length; j++) {  
  112.           filePart = new MimeBodyPart();  
  113.           filedatasource = new FileDataSource(filePath[j]);  
  114.           filePart.setDataHandler(new DataHandler(filedatasource));  
  115.           try {  
  116.                 filePart.setFileName(MimeUtility.encodeText(  
  117.                                             filedatasource.getName()));  
  118.            } catch (Exception e) {  
  119.                e.printStackTrace();  
  120.            }  
  121.            mm.addBodyPart(filePart);  
  122.         }  
  123.         mimeMessage.setContent(mm);  
  124.         } else {  
  125.            messageHelper.setText(text, true);  
  126.         }  
  127.   
  128.         List<InternetAddress> list = new ArrayList<InternetAddress>();  
  129.         for (int i = 0; i < mailto.length; i++) {  
  130.            list.add(new InternetAddress(mailto[i]));  
  131.         }  
  132.        InternetAddress[] address = list.toArray(new InternetAddress[list.size()]);  
  133.   
  134.        mimeMessage.setRecipients(Message.RecipientType.TO, address);  
  135.        mimeMessage = messageHelper.getMimeMessage();  
  136.   
  137.        EmailThread et = new EmailThread(mimeMessage);  
  138.        et.start();  
  139.    }  



Java代码   收藏代码
  1. 3.配置文件  
  2. <beans xmlns="http://www.springframework.org/schema/beans"  
  3.        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"        xmlns:context="http://www.springframework.org/schema/context"  
  4. xsi:schemaLocation="http://www.springframework.org/schema/beans  
  5. http://www.springframework.org/schema/beans/spring-beans-2.5.xsd  
  6. http://www.springframework.org/schema/context  
  7. http://www.springframework.org/schema/context/spring-context-2.5.xsd">  
  8.   
  9.      <!-- 邮件发送 -->  
  10.      <bean name="javaMailSender"    class="org.springframework.mail.javamail.JavaMailSenderImpl">  
  11.      <!-- 主机,域名 -->  
  12.      <property name="host" value="smtpb.qianpin.com" />  
  13.      <!-- 编码格式 -->  
  14.      <property name="defaultEncoding" value="UTF-8"></property>  
  15.      <!-- 邮箱名 -->  
  16.      <property name="username" value="noreply@qianpin.com"></property>  
  17.      <!-- 密码 -->  
  18.      <property name="password" value="b4i4s0c9R0n1m1w9g"></property>  
  19.      <property name="javaMailProperties">  
  20.         <map>  
  21.           <entry key="mail.smtp.auth" value="true" />  
  22.         </map>  
  23.      </property>  
  24.      </bean>  
  25. </beans>  
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值