最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

spring mail借助qq郵箱服務(wù)器發(fā)送郵件

 更新時間:2016年12月12日 17:07:17   作者:凌承一  
這篇文章主要介紹了spring mail借助qq郵箱服務(wù)器發(fā)送郵件的相關(guān)資料,具有一定的參考價值,感興趣的小伙伴們可以參考一下

spring mail封裝了javaMail的郵件服務(wù),讓郵件服務(wù)使用起來更簡單,下面以qq郵箱服務(wù)器為例,用spring mail服務(wù)來發(fā)送郵件

配置qq郵箱,“設(shè)置”——“賬戶”,打開smtp服務(wù),生成授權(quán)碼

生成授權(quán)碼需要驗證手機,接下來用qq郵箱賬號和授權(quán)碼就可以發(fā)送郵件了,不需要qq密碼

spring mail服務(wù)在spring-context-support中,配置依賴,然后就可以借助qq郵箱提供的發(fā)件服務(wù)器發(fā)送郵件了

<dependency>
 <groupId>javax.mail</groupId>
 <artifactId>mail</artifactId>
 <version>1.4.7</version>
</dependency>
<dependency>
 <groupId>org.springframework</groupId>
 <artifactId>spring-context-support</artifactId>
 <version>3.2.17.RELEASE</version>
</dependency>

普通文本郵件

首先測試的是普通文本郵件

package com.xmyself.mail;
 
import org.springframework.mail.SimpleMailMessage;
import org.springframework.mail.javamail.JavaMailSenderImpl;
 
public class Main {
 public static void main(String[] args) {
  JavaMailSenderImpl mailSender = new JavaMailSenderImpl();
  mailSender.setHost("smtp.qq.com");
  mailSender.setPort(587);
  mailSender.setUsername("573215750@qq.com");
  mailSender.setPassword("dsruklozelxcbdba");//授權(quán)碼
   
  SimpleMailMessage mail = new SimpleMailMessage();
  mail.setTo("573215750@qq.com");
  mail.setFrom("573215750@qq.com");
  mail.setSubject("test mail");
  mail.setText("test mail content");
   
  mailSender.send(mail);
  System.out.println("success");
 }
}

運行,即可發(fā)送一封email,注意:授權(quán)碼而不是密碼,端口并不是25而是587

接下來,保持mailSender不變,修改mail類型,發(fā)送內(nèi)容豐富的郵件

簡單html郵件

讓郵件內(nèi)容以html格式展現(xiàn),只需要修改如下

MimeMessage mail = mailSender.createMimeMessage();
MimeMessageHelper helper = new MimeMessageHelper(mail, true);//true用來打開multipart模式,添加圖片或附件
 
helper.setTo("573215750@qq.com");
helper.setFrom("573215750@qq.com");
helper.setSubject("test mail");
helper.setText("<html><head></head><body>"
  + "<h1>hello!!spring html Mail</h1>"
  + "</body></html>"
  , true);

依然使用mailSender發(fā)送這個mail

mailSender.send(mail);

帶圖片的html郵件

在郵件的html內(nèi)容中插入圖片顯示,修改text內(nèi)容即可

helper.setText("<html><head></head><body>"
  + "<h1>hello!!spring html Mail</h1>"
  + "<img src=\"cid:image\" />"
  + "</body></html>"
  , true);
FileSystemResource image = new FileSystemResource(new File("d:/test.jpg"));
helper.addInline("image", image);

帶附件的html郵件

為郵件添加附件,text內(nèi)容不變,只需要修改如下

helper.setText("<html><head></head><body>"
  + "<h1>hello!!spring html Mail</h1>"
  + "</body></html>"
  , true);
FileSystemResource image = new FileSystemResource(new File("d:/test.jpg"));
helper.addAttachment("test.jpg", image);

freemarker模板郵件

html內(nèi)容通常非常豐富,直接寫在setText()方法中實在太亂了,所以,應(yīng)該將html作為一個文件單獨管理,然后用工具將其內(nèi)容轉(zhuǎn)換為字符串,作為setText()的參數(shù),下面以freemarker模板引擎為例

在工程src/main/resources目錄下新建templates目錄,里面放一個test.ftl文件,內(nèi)容如下

<html>
 <head></head>
 <body>
  <p>test freemarker template, welcome ${username}</p>
  <img src="cid:image" />
 </body>
</html>

然后,用freemarker和spring提供的工具將內(nèi)容轉(zhuǎn)換為字符串,這當(dāng)然需要依賴新的jar

<dependency>
 <groupId>org.freemarker</groupId>
 <artifactId>freemarker</artifactId>
 <version>2.3.23</version>
</dependency>

新建FreemarkerParser.java

package com.xmyself.mail;
 
import java.util.Map;
import org.springframework.ui.freemarker.FreeMarkerTemplateUtils;
import freemarker.template.Configuration;
import freemarker.template.Template;
 
public class FreemarkerParser {
 public String toHtmlString(String name, Map<String, String> data) {
  @SuppressWarnings("deprecation")
  Configuration config = new Configuration();
  config.setClassForTemplateLoading(this.getClass(), "/templates/");
  try {
   Template template = config.getTemplate(name);
   return FreeMarkerTemplateUtils.processTemplateIntoString(template, data);
  } catch (Exception e) {
   e.printStackTrace();
  }
  return "fail";
 }
}

用map中的值替換掉模板中的${}內(nèi)容,將模板文件轉(zhuǎn)換為String字符串

注意:過程中模板路徑的配置與讀取是個麻煩事,暫時以這種方式處理

發(fā)送郵件的代碼只需要非常小的變化

Map<String, String> data = new HashMap<String, String>();
data.put("username", "chengyi");
String text = new FreemarkerParser().toHtmlString("test.ftl", data);
 
helper.setText(text, true);
FileSystemResource image = new FileSystemResource(new File("d:/test.jpg"));
helper.addInline("image", image);

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Java隨手筆記8之包、環(huán)境變量和訪問控制及maven profile實現(xiàn)多環(huán)境打包

    Java隨手筆記8之包、環(huán)境變量和訪問控制及maven profile實現(xiàn)多環(huán)境打包

    這篇文章主要介紹了Java隨手筆記8之包、環(huán)境變量和訪問控制及maven profile實現(xiàn)多環(huán)境打包的相關(guān)資料,需要的朋友可以參考下
    2015-11-11
  • 淺談Java 繼承接口同名函數(shù)問題

    淺談Java 繼承接口同名函數(shù)問題

    這篇文章主要介紹了淺談Java 繼承接口同名函數(shù)問題。具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-09-09
  • MapReduce核心思想圖文詳解

    MapReduce核心思想圖文詳解

    今天小編就為大家分享一篇關(guān)于MapReduce核心思想圖文詳解,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-01-01
  • MyBatis?Mapper映射器的具體用法

    MyBatis?Mapper映射器的具體用法

    映射器是MyBatis中最重要的文件,映射器由Java接口和XML文件共同組成,具有一定的參考價值,感興趣的可以了解一下
    2023-10-10
  • Java虛擬機執(zhí)行引擎知識總結(jié)

    Java虛擬機執(zhí)行引擎知識總結(jié)

    這篇文章主要介紹了有關(guān)Java虛擬機執(zhí)行引擎的知識,文中實例簡單易懂,方便大家更好的學(xué)習(xí),有興趣的朋友可以了解下
    2020-06-06
  • 從一道面試題看你對java的理解程度

    從一道面試題看你對java的理解程度

    這篇文章主要給大家介紹了關(guān)于如何從一道面試題看你對java的理解程度的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起看看吧
    2018-09-09
  • Springboot?整合?RocketMQ?收發(fā)消息的配置過程

    Springboot?整合?RocketMQ?收發(fā)消息的配置過程

    這篇文章主要介紹了Springboot?整合?RocketMQ?收發(fā)消息,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-12-12
  • Mybatis開發(fā)要點-resultType和resultMap有什么區(qū)別詳解

    Mybatis開發(fā)要點-resultType和resultMap有什么區(qū)別詳解

    本文主要介紹了Mybatis開發(fā)要點-resultType和resultMap有什么區(qū)別詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-04-04
  • Spring Security6配置方法(廢棄WebSecurityConfigurerAdapter)

    Spring Security6配置方法(廢棄WebSecurityConfigurerAdapter)

    本文主要介紹了Spring Security6配置方法(廢棄WebSecurityConfigurerAdapter),就像文章標(biāo)題所說的,SpringSecurity已經(jīng)廢棄了繼承WebSecurityConfigurerAdapter的配置方式,下面就來詳細(xì)的介紹一下,感興趣的可以了解一下
    2023-12-12
  • Java判斷字節(jié)流是否是 UTF8編碼方法示例

    Java判斷字節(jié)流是否是 UTF8編碼方法示例

    這篇文章主要我大家介紹了Java判斷字節(jié)流是否是 UTF8編碼方法示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-07-07

最新評論

晋城| 民权县| 宁南县| 额尔古纳市| 炎陵县| 罗源县| 宝应县| 石嘴山市| 道真| 隆安县| 文水县| 青冈县| 瓮安县| 赣榆县| 饶平县| 施秉县| 彩票| 北宁市| 东海县| 富川| 铅山县| 佛冈县| 越西县| 宁阳县| 墨脱县| 故城县| 杂多县| 兴山县| 二连浩特市| 永福县| 马鞍山市| 临江市| 邢台市| 罗定市| 永宁县| 南和县| 武陟县| 从化市| 灵宝市| 平凉市| 余姚市|