java simpleMailMessage 郵件發送功能


spring-mvc 配置


spring  配置


mailsender.properties 


Email.java


   
   
  
  
          
  1. package com.zerdoor.util;
  2. import org.springframework.beans.factory.annotation.Autowired;
  3. import org.springframework.core.io.ClassPathResource;
  4. import org.springframework.mail.SimpleMailMessage;
  5. import org.springframework.mail.javamail.JavaMailSender;
  6. import org.springframework.mail.javamail.MimeMessageHelper;
  7. import javax.mail.internet.MimeMessage;
  8. /**
  9. *
  10. */
  11. public class Email {
  12. private JavaMailSender javaMailSender;
  13. private SimpleMailMessage simpleMailMessage;
  14. /**
  15. * @方法名: sendMail
  16. * @參數名:@param subject 郵件主題
  17. * @參數名:@param content 郵件主題內容
  18. * @參數名:@param from 發件人Email地址
  19. * @參數名:@param to 收件人Email地址
  20. * @描述語: 發送郵件
  21. */
  22. public void sendMail(String subject, String content, String from,String to) {
  23. try {
  24. MimeMessage mimeMessage = javaMailSender.createMimeMessage();
  25. /**
  26. * new MimeMessageHelper(mimeMessage,true)之true個人見解:
  27. * 關於true參數,官方文檔是這樣解釋的:
  28. * use the true flag to indicate you need a multipart message
  29. * 翻譯過來就是:使用true,以表明你需要多個消息
  30. * 再去翻一下MimeMessageHelper的API,找到這樣一句話:
  31. * supporting alternative texts, inline elements and attachments
  32. * 也就是說,如果要支持內聯元素(HTML)和附件就必須給定第二個參數為true
  33. * 否則拋出 java.lang.IllegalStateException 異常
  34. */
  35. /**
  36. * 剛開始收到郵件顯示中文亂碼,於是趕緊查看官方文檔,沒有提到,再查閱API,也沒有查到Set編碼的方法,
  37. * 於是就在HTML里面自己指定編碼,也不起作用,郵件還是顯示中文亂碼;
  38. * 最后的結論是:如果HTML內容含有中文必須指定HTML的編碼,默認是ISO-8859-1,所以會顯示中文亂碼
  39. * 在MimeMessageHelper的構造方法中找到:
  40. * MimeMessageHelper(MimeMessage mimeMessage, boolean multipart, String encoding)
  41. * 實驗一下,OK,原來編碼是在這兒設置,沒事了,中文正常顯示
  42. */
  43. MimeMessageHelper messageHelper = new MimeMessageHelper(mimeMessage, true, "UTF-8");
  44. messageHelper.setFrom(from); //設置發件人Email
  45. messageHelper.setSubject(subject); //設置郵件主題
  46. messageHelper.setText(content); //設置郵件主題內容
  47. messageHelper.setTo(to); //設定收件人Email
  48. // messageHelper.setText(
  49. // "<html>" +
  50. // "<body>" + content +
  51. // "</body>" +
  52. // "</html>", true);
  53. //步驟 1
  54. //資源的引用方法:cid:你自己設置的資源ID
  55. // messageHelper.setText(
  56. // "<html>" +
  57. // "<body>" +
  58. // "<BR>" +
  59. // "<div align='center'>" +
  60. // "<img src='cid:imageid'/>" +
  61. // "<BR>" +
  62. // "<h4>" +
  63. // "返回 fancydeepin 的Blogjava:" +
  64. // "<a href='http://www.blogjava.net/fancydeepin/'>http://www.blogjava.net/fancydeepin/</a>" +
  65. // "</h4>" +
  66. // "</div>" +
  67. // "</body>" +
  68. // "</html>", true);
  69. /**
  70. * ClassPathResource:很明顯就是類路徑資源,我這里的附件是在項目里的,所以需要用ClassPathResource
  71. * 如果是系統文件資源就不能用ClassPathResource,而要用FileSystemResource,例:
  72. * FileSystemResource file = new FileSystemResource(new File("D:/woniu.png"));
  73. */
  74. /**
  75. * 如果想在HTML中使用資源,必須在HTML中通過資源 ID 先引用資源,然后才來加載資源
  76. */
  77. //步驟 2
  78. // ClassPathResource image = new ClassPathResource("images/body.png");
  79. // messageHelper.addInline("imageid", image);
  80. javaMailSender.send(mimeMessage); //發送HTML郵件
  81. } catch (Exception e) {
  82. System.out.println( "異常信息:" + e);
  83. }
  84. }
  85. //Spring 依賴注入
  86. public void setSimpleMailMessage(SimpleMailMessage simpleMailMessage) {
  87. this.simpleMailMessage = simpleMailMessage;
  88. }
  89. //Spring 依賴注入
  90. public void setJavaMailSender(JavaMailSender javaMailSender) {
  91. this.javaMailSender = javaMailSender;
  92. }
  93. }


  
  
 
 
         
使用的時候直接調用
  
  
 
 
         


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM