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

SpringBoot集成E-mail發(fā)送各種類型郵件

 更新時間:2020年06月22日 16:18:26   作者:帥騷貫徹一生  
這篇文章主要為大家詳細(xì)介紹了SpringBoot集成E-mail發(fā)送各種類型郵件,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下

SpringBoot 集成 E-mail發(fā)送郵件,供大家參考,具體內(nèi)容如下

JDK本身有自帶發(fā)送郵件api,加上SpringBoot在進(jìn)行封裝,使得現(xiàn)在使用起來十分快速簡潔。
話不多說,參考純潔的微笑博客,更改jar版本為2.0.4 開干,基本沒什么坑。
就是配置郵箱賬號密碼是,如果是qq郵箱,需要開啟PO30和STMP服務(wù),并且獲取臨時授權(quán)碼。

開啟服務(wù)鏈接:

https://mail.qq.com/cgi-bin/frame_html?sid=a5ZSbreeNm9pHyl1&r=a83225170e94773c650a460c10f7a05c 

與Springboot集成

導(dǎo)入jar包

compile group: 'org.springframework.boot', name: 'spring-boot-starter-mail', version: '2.0.4.RELEASE'
compile 'org.springframework.boot:spring-boot-starter-thymeleaf:2.0.4.RELEASE'

配置郵箱

#郵箱服務(wù)器地址,各大運(yùn)營商不同
spring.mail.host=smtp.qq.com
#用戶名
spring.mail.username=9118542413@qq.com
#密碼,如果是qq的,要申請臨時授權(quán)碼
spring.mail.password=faw124awfawfawg
spring.mail.default-encoding=UTF-8
#以誰來發(fā)送郵件
mail.fromMail.addr=9118542413@qq.com

發(fā)送各種類型的郵件

@Service
@Slf4j
public class MailServiceImpl implements MailService {
 @Autowired
 private JavaMailSender mailSender;
 /**
 * The Template engine.
 */
 @Autowired
 TemplateEngine templateEngine;
 @Value("${mail.fromMail.addr}")
 private String from;

 @Override
 public void sendSimpleMail(String to, String subject, String content) {
 SimpleMailMessage message = new SimpleMailMessage();
 message.setFrom(from);
 message.setTo(to);
 message.setSubject(subject);
 message.setText(content);

 try {
  mailSender.send(message);
  log.info("簡單郵件已經(jīng)發(fā)送。");
 } catch (Exception e) {
  log.error("發(fā)送簡單郵件時發(fā)生異常!", e);
 }
 }

 @Override
 public void sendHtmlMail(String to, String subject, String content) {
 MimeMessage message = mailSender.createMimeMessage();

 try {
  //true表示需要創(chuàng)建一個multipart message
  MimeMessageHelper helper = new MimeMessageHelper(message, true);
  helper.setFrom(from);
  helper.setTo(to);
  helper.setSubject(subject);
  helper.setText(content, true);
  mailSender.send(message);
  log.info("html郵件發(fā)送成功");
 } catch (MessagingException e) {
  log.error("發(fā)送html郵件時發(fā)生異常!", e);
 }
 }

 @Override
 public void sendAttachmentsMail(String to, String subject, String content, String filePath) {
 MimeMessage message = mailSender.createMimeMessage();
 try {
  MimeMessageHelper helper = new MimeMessageHelper(message, true);
  helper.setFrom(from);
  helper.setTo(to);
  helper.setSubject(subject);
  helper.setText(content, true);
  FileSystemResource file = new FileSystemResource(new File(filePath));
  String fileName = filePath.substring(filePath.lastIndexOf(File.separator) + 1);
  helper.addAttachment(fileName, file);

  mailSender.send(message);
  log.info("帶附件的郵件已經(jīng)發(fā)送。");
 } catch (MessagingException e) {
  log.error("發(fā)送帶附件的郵件時發(fā)生異常!", e);
 }
 }

 @Override
 public void sendInlineResourceMail(String to, String subject, String content, String rscPath, String rscId) {
 MimeMessage message = mailSender.createMimeMessage();
 try {
  MimeMessageHelper helper = new MimeMessageHelper(message, true);
  helper.setFrom(from);
  helper.setTo(to);
  helper.setSubject(subject);
  helper.setText(content, true);

  FileSystemResource res = new FileSystemResource(new File(rscPath));
  helper.addInline(rscId, res);

  mailSender.send(message);
  log.info("嵌入靜態(tài)資源的郵件已經(jīng)發(fā)送。");
 } catch (MessagingException e) {
  log.error("發(fā)送嵌入靜態(tài)資源的郵件時發(fā)生異常!", e);
 }
 }

 @Override
 public void sendTemplateMail(String to, String subject, String template, Context context) {
 String emailContent = templateEngine.process(template, context);
 sendHtmlMail("15017263512@163.com", "主題:這是模板郵件", emailContent);
 }
}

測試類:

@RunWith(SpringRunner.class)
@SpringBootTest
public class EmailServiceTest {
 @Autowired
 MailService mailService;

 @Test
 public void sendSimpleMailTest() {
 mailService.sendSimpleMail("15017263512@163.com","test simple mail"," hello this is simple mail");
 }

 @Test
 public void sendHtmlMailTest(){
 String content="<html>\n" +
  "<body>\n" +
  " <h3>hello world ! 這是一封Html郵件!</h3>\n" +
  "</body>\n" +
  "</html>";
 mailService.sendHtmlMail("15017263512@163.com","test html mail",content);
 }

 @Test
 public void sendAttachmentsMail(){
 String filePath="E:\\var\\log\\elkTest\\error\\2018-11-30.log";
 mailService.sendAttachmentsMail("15017263512@163.com", "主題:帶附件的郵件", "有附件,請查收!", filePath);
 }

 @Test
 public void sendInlineResourceMail() {
 String rscId = "neo006";
 String content="<html><body>這是有圖片的郵件:<img src=\'cid:" + rscId + "\' ></body></html>";
 String imgPath = "C:\\Users\\Admin\\Pictures\\Camera Roll\\9499189867_1476052069.jpg";

 mailService.sendInlineResourceMail("15017263512@163.com", "主題:這是有圖片的郵件", content, imgPath, rscId);
 }

 @Test
 public void sendTemplateMail() {
 //創(chuàng)建郵件正文
 Context context = new Context();
 context.setVariable("id", "006");
 mailService.sendTemplateMail("15017263512@163.com","主題:這是模板郵件",
  "emailTemplate",context);
 }
}

上面的郵箱和密碼是我亂填的,注意自己更改。

項(xiàng)目源碼以上傳至GitHub

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

相關(guān)文章

  • java 創(chuàng)建線程的幾種方式

    java 創(chuàng)建線程的幾種方式

    本文主要介紹了java中創(chuàng)建線程的幾種方式。具有很好的參考價值,下面跟著小編一起來看下吧
    2017-02-02
  • Maven項(xiàng)目部署到Jboss出現(xiàn)Failed to create a new SAX parser

    Maven項(xiàng)目部署到Jboss出現(xiàn)Failed to create a new SAX parser

    這篇文章主要為大家詳細(xì)介紹了Maven項(xiàng)目部署到Jboss出現(xiàn)Failed to create a new SAX parser的解決方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-11-11
  • MyBatis流式查詢的使用詳解

    MyBatis流式查詢的使用詳解

    流式查詢指的是查詢成功后不是返回一個集合而是返回一個迭代器,應(yīng)用每次從迭代器取一條查詢結(jié)果。流式查詢的好處是能夠降低內(nèi)存使用
    2022-08-08
  • java設(shè)計(jì)模式:建造者模式之生產(chǎn)線

    java設(shè)計(jì)模式:建造者模式之生產(chǎn)線

    這篇文章主要介紹了Java設(shè)計(jì)模式之建造者模式,結(jié)合具體實(shí)例形式分析了建造者模式的概念、原理、實(shí)現(xiàn)方法與相關(guān)使用注意事項(xiàng),需要的朋友可以參考下
    2021-08-08
  • Java獲取啟動參數(shù)方式

    Java獲取啟動參數(shù)方式

    本文介紹了Java應(yīng)用程序如何獲取JVM啟動參數(shù),包括標(biāo)準(zhǔn)參數(shù)、非標(biāo)準(zhǔn)參數(shù)和高級參數(shù),介紹了通過`main`方法參數(shù)、`System.getProperty`和`RuntimeMXBean`獲取啟動參數(shù)的方式,并提供了一個實(shí)際項(xiàng)目案例,展示了如何結(jié)合多種方式靈活配置應(yīng)用程序
    2025-01-01
  • 詳解Java中Period類的使用方法

    詳解Java中Period類的使用方法

    Period類通過年、月、日相結(jié)合來描述一個時間量,最高精度是天。本文將通過示例詳細(xì)為大家講講Period類的使用,需要的可以參考一下
    2022-05-05
  • springboot整合mongodb使用詳解

    springboot整合mongodb使用詳解

    MongoDB是一個文檔數(shù)據(jù)庫(以?JSON?為數(shù)據(jù)模型),由C++語言編寫,旨在為WEB應(yīng)用提供可擴(kuò)展的高性能數(shù)據(jù)存儲解決方案,本文就給大家介紹一下詳細(xì)介紹一下springboot整合mongodb使用,需要的朋友可以參考下
    2023-07-07
  • 解讀線程池-Executors的newSingleThreadExecutor和newFixedThreadPool(1)區(qū)別

    解讀線程池-Executors的newSingleThreadExecutor和newFixedThreadPool(1

    這篇文章主要介紹了解讀線程池-Executors的newSingleThreadExecutor和newFixedThreadPool(1)區(qū)別,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-08-08
  • Java基礎(chǔ)鞏固系列包裝類代碼實(shí)例

    Java基礎(chǔ)鞏固系列包裝類代碼實(shí)例

    這篇文章主要介紹了Java包裝類,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-04-04
  • Java如何獲取word文檔的條目化內(nèi)容

    Java如何獲取word文檔的條目化內(nèi)容

    這篇文章主要介紹了Java獲取word文檔的條目化內(nèi)容的相關(guān)知識,非常不錯,具有一定的參考借鑒價值,需要的朋友參考下吧
    2018-05-05

最新評論

宜兴市| 临海市| 正蓝旗| 博湖县| 错那县| 南通市| 定日县| 石楼县| 招远市| 丰顺县| 清原| 明水县| 八宿县| 栾城县| 利辛县| 泸定县| 清镇市| 依兰县| 广昌县| 百色市| 贵阳市| 蓬安县| 雅安市| 星座| 乳源| 高阳县| 东乌珠穆沁旗| 娄烦县| 双辽市| 饶阳县| 威远县| 徐汇区| 乡宁县| 新营市| 易门县| 丁青县| 武鸣县| 扶绥县| 获嘉县| 龙海市| 出国|