国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

SpringBoot 2.X Kotlin系列之JavaMailSender發(fā)送郵件

derek_334892 / 3371人閱讀

摘要:在很多服務(wù)中我經(jīng)常需要用到發(fā)送郵件功能,所幸的是可以快速使用的框架,只要引入改框架我們可以快速的完成發(fā)送郵件功能。引入獲取郵件發(fā)送服務(wù)器配置在國(guó)內(nèi)用的最多的就是郵件和網(wǎng)易郵件,這里會(huì)簡(jiǎn)單講解獲取兩家服務(wù)商的發(fā)送郵件配置。

</>復(fù)制代碼

  1. 在很多服務(wù)中我經(jīng)常需要用到發(fā)送郵件功能,所幸的是SpringBoot可以快速使用的框架spring-boot-starter-mail,只要引入改框架我們可以快速的完成發(fā)送郵件功能。
引入mailJar

</>復(fù)制代碼

  1. org.springframework.boot
  2. spring-boot-starter-mail
獲取郵件發(fā)送服務(wù)器配置

在國(guó)內(nèi)用的最多的就是QQ郵件和網(wǎng)易163郵件,這里會(huì)簡(jiǎn)單講解獲取兩家服務(wù)商的發(fā)送郵件配置。

QQ郵箱

等錄QQ郵箱,點(diǎn)擊設(shè)置然后選擇賬戶在下方可以看到POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服務(wù),然后我們需要把smtp服務(wù)開啟,開啟成功后會(huì)得到一個(gè)秘鑰。如圖所示:

開啟成功需要在application.properties配置文件中加入相應(yīng)的配置,以下信息部分需要替換為自己的信息,教程結(jié)束下面的賬號(hào)就會(huì)被停用

</>復(fù)制代碼

  1. spring.mail.host=smtp.qq.com
  2. spring.mail.username=6928700@qq.com # 替換為自己的QQ郵箱號(hào)
  3. spring.mail.password=owqpkjmqiasnbigc # 替換為自己的秘鑰或授權(quán)碼
  4. spring.mail.port=465
  5. spring.mail.properties.mail.smtp.auth=true
  6. spring.mail.properties.mail.smtp.starttls.enable=true
  7. spring.mail.properties.mail.smtp.starttls.required=true
  8. # sender
  9. email.sender=6928700@qq.com # 替換為自己的QQ郵箱號(hào)
163郵箱

登錄賬戶然后在設(shè)置找到POP3/SMTP/IMAP選項(xiàng),然后開啟smtp服務(wù),具體操作如下圖所示,然后修改對(duì)應(yīng)的配置文件



</>復(fù)制代碼

  1. spring.mail.host=smtp.163.com
  2. spring.mail.username=xmsjgzs@163.com # 替換為自己的163郵箱號(hào)
  3. spring.mail.password=owqpkj163MC # 替換為自己的授權(quán)碼
  4. spring.mail.port=465
  5. spring.mail.properties.mail.smtp.auth=true
  6. spring.mail.properties.mail.smtp.starttls.enable=true
  7. spring.mail.properties.mail.smtp.starttls.required=true
  8. # sender
  9. email.sender=xmsjgzs@163.com # 替換為自己的163郵箱號(hào)
實(shí)現(xiàn)簡(jiǎn)單發(fā)送郵件

這里發(fā)送郵件我們主要用到的是JavaMailSender對(duì)象,發(fā)送簡(jiǎn)單郵件主要是發(fā)送字符串內(nèi)容,復(fù)雜的郵件我們可能會(huì)添加附件或者是發(fā)送HTML格式的郵件,我們先測(cè)試簡(jiǎn)單的發(fā)送,代碼如下:

</>復(fù)制代碼

  1. override fun sendSimple(receiver: String, title: String, content: String) {
  2. logger.info("發(fā)送簡(jiǎn)單郵件服務(wù)")
  3. val message = mailSender.createMimeMessage()
  4. val helper = MimeMessageHelper(message, true)
  5. helper.setFrom(sender)
  6. helper.setTo(receiver)
  7. helper.setSubject(title)
  8. helper.setText(content)
  9. mailSender.send(message)
  10. }

測(cè)試代碼

</>復(fù)制代碼

  1. @RunWith(SpringJUnit4ClassRunner::class)
  2. @SpringBootTest
  3. class MailServiceImplTest {
  4. @Autowired lateinit var mailService: MailService
  5. @Test
  6. fun sendSimple() {
  7. mailService.sendSimple("xmsjgzs@163.com", "Hello Kotlin Mail", "SpringBoot Kotlin 專欄學(xué)習(xí)之JavaMailSender發(fā)送郵件")
  8. }
  9. }

檢查郵件是否收到發(fā)送的內(nèi)容

發(fā)送模板郵件

我們這里用的HTML模板引擎是thymeleaf,大家需要引入一下spring-boot-starter-thymeleaf

</>復(fù)制代碼

  1. org.springframework.boot
  2. spring-boot-starter-thymeleaf

有個(gè)地方需要注意,SpringBoot項(xiàng)目默認(rèn)靜態(tài)資源都是放在resources/templates目錄下,所以我們編寫的HTML模板就需要放在該目錄下,具體內(nèi)容如下:

</>復(fù)制代碼

  1. Title
  2. Demo

  3. xxx

發(fā)送模板郵件主要實(shí)現(xiàn)代碼

</>復(fù)制代碼

  1. override fun sendMail(receiver: String, title: String, o: Any, templateName: String) {
  2. logger.info("開始發(fā)送郵件服務(wù),To:{}", receiver)
  3. val message = mailSender.createMimeMessage()
  4. val helper = MimeMessageHelper(message, true)
  5. helper.setFrom(sender)
  6. helper.setTo(receiver)
  7. helper.setSubject(title)
  8. val context = Context()
  9. context.setVariable("title", title)
  10. /*
  11. * 設(shè)置動(dòng)態(tài)數(shù)據(jù),這里不建議強(qiáng)轉(zhuǎn),具體業(yè)務(wù)需求傳入具體的對(duì)象
  12. */
  13. context.setVariables(o as MutableMap?)
  14. /*
  15. * 讀取取模板html代碼并賦值
  16. */
  17. val content = templateEngine.process(templateName, context)
  18. helper.setText(content, true)
  19. mailSender.send(message)
  20. logger.info("郵件發(fā)送結(jié)束")
  21. }

測(cè)試代碼

</>復(fù)制代碼

  1. @Test
  2. fun sendMail() {
  3. val model = HashMap()
  4. model["name"] = "Tom"
  5. model["phone"] = "69288888"
  6. mailService.sendMail("xmsjgzs@163.com", "Kotlin Template Mail", model, "mail")
  7. }

查看郵件我們可以看到如下內(nèi)容:

郵件添加附件

附件的添加也是非常容易的,我需要先把發(fā)送的附件放在resources/templates目錄下,然后在MimeMessageHelper對(duì)象中設(shè)置相應(yīng)的屬性即可,如下所示:

</>復(fù)制代碼

  1. helper.addAttachment("test.txt", FileSystemResource(File("test.txt")))
完整的代碼

</>復(fù)制代碼

  1. package io.intodream.kotlin06.service.impl
  2. import io.intodream.kotlin06.service.MailService
  3. import org.slf4j.Logger
  4. import org.slf4j.LoggerFactory
  5. import org.springframework.beans.factory.annotation.Autowired
  6. import org.springframework.beans.factory.annotation.Value
  7. import org.springframework.core.io.FileSystemResource
  8. import org.springframework.mail.javamail.JavaMailSender
  9. import org.springframework.mail.javamail.MimeMessageHelper
  10. import org.springframework.stereotype.Service
  11. import org.thymeleaf.TemplateEngine
  12. import org.thymeleaf.context.Context
  13. import java.io.File
  14. /**
  15. * {描述}
  16. *
  17. * @author yangxianxi@gogpay.cn
  18. * @date 2019/4/8 19:19
  19. *
  20. */
  21. @Service
  22. class MailServiceImpl @Autowired constructor(private var mailSender: JavaMailSender, private var templateEngine: TemplateEngine) : MailService{
  23. val logger : Logger = LoggerFactory.getLogger(MailServiceImpl::class.java)
  24. @Value("${email.sender}")
  25. val sender: String = "6928700@qq.com"
  26. override fun sendSimple(receiver: String, title: String, content: String) {
  27. logger.info("發(fā)送簡(jiǎn)單郵件服務(wù)")
  28. val message = mailSender.createMimeMessage()
  29. val helper = MimeMessageHelper(message, true)
  30. helper.setFrom(sender)
  31. helper.setTo(receiver)
  32. helper.setSubject(title)
  33. helper.setText(content)
  34. mailSender.send(message)
  35. }
  36. override fun sendMail(receiver: String, title: String, o: Any, templateName: String) {
  37. logger.info("開始發(fā)送郵件服務(wù),To:{}", receiver)
  38. val message = mailSender.createMimeMessage()
  39. val helper = MimeMessageHelper(message, true)
  40. helper.setFrom(sender)
  41. helper.setTo(receiver)
  42. helper.setSubject(title)
  43. val context = Context()
  44. context.setVariable("title", title)
  45. /*
  46. * 設(shè)置動(dòng)態(tài)數(shù)據(jù),這里不建議強(qiáng)轉(zhuǎn),具體業(yè)務(wù)需求傳入具體的對(duì)象
  47. */
  48. context.setVariables(o as MutableMap?)
  49. /*
  50. * 添加附件
  51. */
  52. helper.addAttachment("test.txt", FileSystemResource(File("test.txt")))
  53. /*
  54. * 讀取取模板html代碼并賦值
  55. */
  56. val content = templateEngine.process(templateName, context)
  57. helper.setText(content, true)
  58. mailSender.send(message)
  59. logger.info("郵件發(fā)送結(jié)束")
  60. }
  61. }
測(cè)試代碼

</>復(fù)制代碼

  1. package io.intodream.kotlin06.service.impl
  2. import io.intodream.kotlin06.service.MailService
  3. import org.junit.Test
  4. import org.junit.runner.RunWith
  5. import org.springframework.beans.factory.annotation.Autowired
  6. import org.springframework.boot.test.context.SpringBootTest
  7. import org.springframework.test.context.junit4.SpringJUnit4ClassRunner
  8. /**
  9. * {描述}
  10. *
  11. * @author yangxianxi@gogpay.cn
  12. * @date 2019/4/9 18:38
  13. */
  14. @RunWith(SpringJUnit4ClassRunner::class)
  15. @SpringBootTest
  16. class MailServiceImplTest {
  17. @Autowired lateinit var mailService: MailService
  18. @Test
  19. fun sendSimple() {
  20. mailService.sendSimple("xmsjgzs@163.com", "Hello Kotlin Mail",
  21. "SpringBoot Kotlin 專欄學(xué)習(xí)之JavaMailSender發(fā)送郵件")
  22. }
  23. @Test
  24. fun sendMail() {
  25. val model = HashMap()
  26. model["name"] = "Tom"
  27. model["phone"] = "69288888"
  28. mailService.sendMail("xmsjgzs@163.com", "Kotlin Template Mail", model, "mail")
  29. }
  30. }

關(guān)于Kotlin使用JavaMailSender發(fā)送郵件的介紹就到此結(jié)束了,如果大家覺得教程有用麻煩點(diǎn)一下贊,如果有錯(cuò)誤的地方歡迎指出。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/74106.html

相關(guān)文章

  • Spring Boot 2.x (十八):郵件服務(wù)一文打盡

    摘要:前景介紹在日常的工作中,我們經(jīng)常會(huì)用到郵件服務(wù),比如發(fā)送驗(yàn)證碼,找回密碼確認(rèn),注冊(cè)時(shí)郵件驗(yàn)證等,所以今天在這里進(jìn)行郵件服務(wù)的一些操作。 前景介紹 在日常的工作中,我們經(jīng)常會(huì)用到郵件服務(wù),比如發(fā)送驗(yàn)證碼,找回密碼確認(rèn),注冊(cè)時(shí)郵件驗(yàn)證等,所以今天在這里進(jìn)行郵件服務(wù)的一些操作。 大致思路 我們要做的其實(shí)就是把Java程序作為一個(gè)客戶端,然后通過(guò)配置SMTP協(xié)議去連接我們所使用的發(fā)送郵箱(fr...

    idealcn 評(píng)論0 收藏0
  • SpringBoot 2.X Kotlin系列RestTemplate配置及使用

    摘要:調(diào)用的默認(rèn)構(gòu)造函數(shù),對(duì)象在底層通過(guò)使用包下的實(shí)現(xiàn)創(chuàng)建請(qǐng)求,可以通過(guò)使用指定不同的請(qǐng)求方式。接口主要提供了兩種實(shí)現(xiàn)方式一種是,使用提供的方式既包提供的方式創(chuàng)建底層的請(qǐng)求連接。 showImg(http://download.qfeoo.com/kotlin_springboot_logo.png); 自從RESTFul API興起后,Spring就給開發(fā)者提供了一個(gè)訪問(wèn)Rest的客服端,...

    wdzgege 評(píng)論0 收藏0
  • SpringBoot 2.X Kotlin 系列Hello World

    摘要:二教程環(huán)境三創(chuàng)建項(xiàng)目創(chuàng)建項(xiàng)目有兩種方式一種是在官網(wǎng)上創(chuàng)建二是在上創(chuàng)建如圖所示勾選然后點(diǎn),然后一直默認(rèn)最后點(diǎn)擊完成即可。我們這里看到和普通的接口沒(méi)有異同,除了返回類型是用包裝之外。與之對(duì)應(yīng)的還有,這個(gè)后面我們會(huì)講到。 showImg(https://segmentfault.com/img/remote/1460000018819338?w=1024&h=500); 從去年開始就開始學(xué)習(xí)...

    warkiz 評(píng)論0 收藏0
  • 結(jié)合Spring發(fā)送郵件的四種正確姿勢(shì),你知道幾種?

    摘要:我拿網(wǎng)易郵箱賬號(hào)舉例子,那么我們?nèi)绾尾拍茏屇愕泥]箱賬號(hào)可以利用第三方發(fā)送郵件這里的第三方就是我們即將編寫的程序。 一 前言 測(cè)試所使用的環(huán)境 測(cè)試使用的環(huán)境是企業(yè)主流的SSM 框架即 SpringMVC+Spring+Mybatis。為了節(jié)省時(shí)間,我直接使用的是我上次的SSM項(xiàng)目中整合Echarts開發(fā)該項(xiàng)目已經(jīng)搭建完成的SSM環(huán)境。 標(biāo)題說(shuō)的四種姿勢(shì)指的是哪四種姿勢(shì)? 發(fā)送text...

    doodlewind 評(píng)論0 收藏0
  • Spring Boot 郵件發(fā)送的 5 種姿勢(shì)!

    摘要:也就是說(shuō)用戶先將郵件投遞到騰訊的服務(wù)器這個(gè)過(guò)程就使用了協(xié)議,然后騰訊的服務(wù)器將郵件投遞到網(wǎng)易的服務(wù)器這個(gè)過(guò)程也依然使用了協(xié)議,服務(wù)器就是用來(lái)收郵件。 郵件發(fā)送其實(shí)是一個(gè)非常常見的需求,用戶注冊(cè),找回密碼等地方,都會(huì)用到,使用 JavaSE 代碼發(fā)送郵件,步驟還是挺繁瑣的,Spring Boot 中對(duì)于郵件發(fā)送,提供了相關(guān)的自動(dòng)化配置類,使得郵件發(fā)送變得非常容易,本文我們就來(lái)一探究竟!看...

    W4n9Hu1 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<