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

Spring?Boot整合郵箱發(fā)送郵件實例

 更新時間:2022年02月18日 14:38:06   作者:it永遠(yuǎn)的學(xué)習(xí)者  
大家好,本篇文章主要講的是Spring?Boot整合郵箱發(fā)送郵件實例,感興趣的同學(xué)趕快來看一看吧,對你有幫助的話記得收藏一下

1. 準(zhǔn)備工作

登錄進(jìn)自己的 qq 郵箱獲取授權(quán)碼

設(shè)置 – 賬戶 – POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服務(wù)

image-20220218112624617

點擊開始獲取授權(quán)碼,將授權(quán)碼保存下來,下面代碼整合的時候需要使用

image-20220218112729768

2. 代碼整合

創(chuàng)建一個 Spring Boot 項目,引入以下依賴

<!-- email -->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-mail</artifactId>
</dependency>

配置文件

server:
  port: 8080
spring:
  # email 配置
  mail:
    # SMTP 服務(wù)器地址
    host: smtp.qq.com
    username: # 你的qq 郵箱地址
    password: # 授權(quán)碼,上面從 qq 郵箱官網(wǎng)得到的授權(quán)碼
    port: 587
    protocol: smtp
    default-encoding: UTF-8

創(chuàng)建一個郵件收件人信息的實體類

/**
 * @author lishisen
 * @description 郵件收件人信息
 * @date 2022/1/9 9:37
 **/
@AllArgsConstructor
@NoArgsConstructor
@Data
public class EmailModel implements Serializable {

    // 收件人郵箱地址
    private String receiveEmailAddress;
    // 郵箱主題
    private String emailTheme;
    // 郵件內(nèi)容
    private String emailContent;

}

創(chuàng)建一個服務(wù)提供類,SendEmailService.java

/**
 * @author lishisen
 * @description 郵件發(fā)送服務(wù)類
 * @date 2022/1/9 9:40
 **/
@Slf4j
@Component
public class SendEmailService {

    @Autowired
    private JavaMailSender javaMailSender;
    @Autowired
    private JavaMailSenderImpl javaMailSenderImpl;

    // 發(fā)送者地址
    private String posterAddress = "1876419736@qq.com";
    // 發(fā)送者名稱
    private String posterName = "測試郵件發(fā)送";

    /**
     * 文本發(fā)送
     **/
    public void sendEmailAsText(final EmailModel emailModel) {
        System.out.println(emailModel.toString());
        MimeMessagePreparator mimeMessagePreparator = mimeMessage -> {
            mimeMessage.setFrom(posterAddress);
            mimeMessage.setRecipients(Message.RecipientType.TO, emailModel.getReceiveEmailAddress());
            mimeMessage.setText("發(fā)送者地址:" + posterAddress + '\n'
                    + "發(fā)送者名稱:" + posterName + '\n'
                    + "內(nèi)容:" + emailModel.getEmailContent());
        };
        try {
            this.javaMailSender.send(mimeMessagePreparator);
            log.info("郵箱已返送至[{}]郵箱!", emailModel.getReceiveEmailAddress());
        } catch (MailException e) {
            log.error("郵箱異常:{}", e);
        }
    }

    /**
     * html 網(wǎng)頁發(fā)送
     * 該方法為同步方法
     **/
    public void sendEmailAsSysExceptionHtml(final EmailModel emailModel, String info) {
        MimeMessage mimeMessage = javaMailSenderImpl.createMimeMessage();
        MimeMessageHelper mimeMessageHelper;
        try {
            mimeMessageHelper = new MimeMessageHelper(mimeMessage, true);
            mimeMessageHelper.setFrom(posterAddress);
            mimeMessageHelper.setTo(emailModel.getReceiveEmailAddress());
            mimeMessageHelper.setSubject(emailModel.getEmailTheme());
            mimeMessageHelper.setText(
                    "<!DOCTYPE html>\n" +
                            "<html lang=\"en\">\n" +
                            "<head>\n" +
                            "    <meta charset=\"UTF-8\">\n" +
                            "    <title>Title</title>\n" +
                            "</head>\n" +
                            "<body>\n" +
                            "<h2>" + info + "</h2>\n" +
                            "<h3>您的驗證碼為:<span style='color: red'" + ">" +
                            emailModel.getEmailContent() +
                            "</span> " + ",請在 5 分鐘內(nèi)進(jìn)行驗證</h3>\n" +
                            "</body>\n" +
                            "</html>"
                    , true);
            this.javaMailSender.send(mimeMessage);
            log.info("郵箱已返送至[{}]郵箱!", emailModel.getReceiveEmailAddress());
        } catch (MessagingException e) {
            e.printStackTrace();
        }
    }
}

測試使用

@Autowired
private SendEmailService sendEmailService;
@Test
public void sendMailTest() {
    // 創(chuàng)建收件人實體類,封裝收件人的信息
    EmailModel emailModel = new EmailModel();
    emailModel.setReceiveEmailAddress("18xxxxxqq.com");
    emailModel.setEmailTheme("測試發(fā)送");
    emailModel.setEmailContent("測試發(fā)送郵箱主體信息內(nèi)容");
    // 調(diào)用發(fā)送服務(wù)方法執(zhí)行發(fā)送任務(wù)
    sendEmailService.sendEmailAsText(emailModel);
    System.out.println("郵件發(fā)送成功");
}

image-20220218113229755

總結(jié)

到此這篇關(guān)于Spring Boot整合郵箱發(fā)送郵件實例的文章就介紹到這了,更多相關(guān)Spring Boot郵箱發(fā)送內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Java開發(fā)者推薦的10種常用工具

    Java開發(fā)者推薦的10種常用工具

    這篇文章主要為大家詳細(xì)介紹了Java開發(fā)者推薦的10種常用工具,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-09-09
  • 使用SpringBoot+OkHttp+fastjson實現(xiàn)Github的OAuth第三方登錄

    使用SpringBoot+OkHttp+fastjson實現(xiàn)Github的OAuth第三方登錄

    這篇文章主要介紹了使用SpringBoot+OkHttp+fastjson實現(xiàn)Github的OAuth第三方登錄,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-02-02
  • 淺談Java后臺對JSON格式的處理操作

    淺談Java后臺對JSON格式的處理操作

    下面小編就為大家?guī)硪黄獪\談Java后臺對JSON格式的處理操作。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-06-06
  • SpringBoot接入支付寶支付的方法步驟

    SpringBoot接入支付寶支付的方法步驟

    這篇文章主要介紹了SpringBoot接入支付寶支付的方法步驟,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-12-12
  • Pulsar源碼徹底解決重復(fù)消費(fèi)問題

    Pulsar源碼徹底解決重復(fù)消費(fèi)問題

    這篇文章主要為大家介紹了Pulsar源碼徹底解決重復(fù)消費(fèi)問題,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-05-05
  • Java 圖片壓縮實現(xiàn)思路及代碼

    Java 圖片壓縮實現(xiàn)思路及代碼

    本文為大家詳細(xì)介紹下圖片壓縮的具體實現(xiàn)思路及java代碼,想學(xué)習(xí)的各位可以參考下哈,希望對大家有所幫助
    2013-07-07
  • SpringAop切入點execution表達(dá)式的深入講解

    SpringAop切入點execution表達(dá)式的深入講解

    Spring AOP 可能會經(jīng)常使用 execution切入點指示符,下面這篇文章主要給大家介紹了關(guān)于SpringAop切入點execution表達(dá)式的相關(guān)資料,需要的朋友可以參考下
    2021-08-08
  • RestTemplate如何通過HTTP?Basic?Auth認(rèn)證示例說明

    RestTemplate如何通過HTTP?Basic?Auth認(rèn)證示例說明

    這篇文章主要為大家介紹了RestTemplate如何通過HTTP?Basic?Auth認(rèn)證的示例說明,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-03-03
  • Fluent Mybatis如何做到代碼邏輯和sql邏輯的合一

    Fluent Mybatis如何做到代碼邏輯和sql邏輯的合一

    對比原生Mybatis, Mybatis Plus或者其他框架,F(xiàn)luentMybatis提供了哪些便利呢?很多朋友對這一問題不是很清楚,今天小編給大家?guī)硪黄坛剃P(guān)于Fluent Mybatis如何做到代碼邏輯和sql邏輯的合一,一起看看吧
    2021-08-08
  • 使用Spring-Retry解決Spring Boot應(yīng)用程序中的重試問題

    使用Spring-Retry解決Spring Boot應(yīng)用程序中的重試問題

    重試的使用場景比較多,比如調(diào)用遠(yuǎn)程服務(wù)時,由于網(wǎng)絡(luò)或者服務(wù)端響應(yīng)慢導(dǎo)致調(diào)用超時,此時可以多重試幾次。用定時任務(wù)也可以實現(xiàn)重試的效果,但比較麻煩,用Spring Retry的話一個注解搞定所有,感興趣的可以了解一下
    2023-04-04

最新評論

永福县| 城固县| 彰化市| 汕尾市| 石河子市| 呼伦贝尔市| 宜昌市| 都昌县| 库尔勒市| 盐山县| 东兰县| 永嘉县| 沛县| 和林格尔县| 云南省| 盐津县| 随州市| 大田县| 桦甸市| 华亭县| 天气| 伊宁市| 梓潼县| 吉林省| 邛崃市| 穆棱市| 腾冲县| 章丘市| 广灵县| 福贡县| 临海市| 深水埗区| 颍上县| 新乐市| 靖江市| 惠来县| 乌鲁木齐县| 象州县| 麟游县| 宁国市| 通山县|