欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

1. 準備工作

登錄進自己的 qq 郵箱獲取授權碼

設置 – 賬戶 – POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服務

image-20220218112624617

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

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 服務器地址
    host: smtp.qq.com
    username: # 你的qq 郵箱地址
    password: # 授權碼,上面從 qq 郵箱官網(wǎng)得到的授權碼
    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;
    // 郵件內容
    private String emailContent;

}

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

/**
 * @author lishisen
 * @description 郵件發(fā)送服務類
 * @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'
                    + "內容:" + 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 分鐘內進行驗證</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ā)送郵箱主體信息內容");
    // 調用發(fā)送服務方法執(zhí)行發(fā)送任務
    sendEmailService.sendEmailAsText(emailModel);
    System.out.println("郵件發(fā)送成功");
}

image-20220218113229755

總結

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

相關文章

  • Java狀態(tài)設計模式實現(xiàn)對象狀態(tài)轉換的優(yōu)雅方式

    Java狀態(tài)設計模式實現(xiàn)對象狀態(tài)轉換的優(yōu)雅方式

    Java狀態(tài)設計模式通過將對象的行為和狀態(tài)分離,使對象能夠根據(jù)不同的狀態(tài)進行不同的行為操作。它通過將狀態(tài)抽象成一個獨立的類來實現(xiàn)對狀態(tài)的封裝,從而簡化了復雜的條件判斷和狀態(tài)轉換
    2023-04-04
  • Java編程中的條件判斷之if語句的用法詳解

    Java編程中的條件判斷之if語句的用法詳解

    這篇文章主要介紹了Java編程中的條件判斷之if語句的用法詳解,是Java入門學習中的基礎知識,需要的朋友可以參考下
    2015-11-11
  • 詳解jvm中的標量替換

    詳解jvm中的標量替換

    這篇文章主要介紹了詳解jvm中的標量替換,幫助大家更好的理解和使用Java虛擬機,感興趣的朋友可以了解下
    2020-09-09
  • SpringBoot 項目添加 MDC 日志鏈路追蹤的執(zhí)行流程

    SpringBoot 項目添加 MDC 日志鏈路追蹤的執(zhí)行流程

    日志鏈路追蹤就是將一個標志跨線程進行傳遞,在一般的小項目中也就是在你新起一個線程的時候,或者使用線程池執(zhí)行任務的時候會用到,比如追蹤一個用戶請求的完整執(zhí)行流程,本文給大家介紹SpringBoot MDC 日志鏈路追蹤的代碼,感興趣的朋友一起看看吧
    2021-06-06
  • 解決java maven項目找不到jconsole-1.8.0.jar和tools-1.8.0.jar包問題

    解決java maven項目找不到jconsole-1.8.0.jar和tools-1.8.0.jar包問題

    這篇文章主要介紹了解決java maven項目找不到jconsole-1.8.0.jar和tools-1.8.0.jar包問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-08-08
  • 源碼解讀Mybatis占位符#和$的區(qū)別

    源碼解讀Mybatis占位符#和$的區(qū)別

    這篇文章主要介紹了Mybatis占位符#和$的區(qū)別通過源碼解讀,針對筆者日常開發(fā)中對?Mybatis?占位符?#{}?和?${}?使用時機結合源碼,思考總結而來,需要的朋友可以參考下
    2023-02-02
  • MyBatisPlus的簡介及案例詳解

    MyBatisPlus的簡介及案例詳解

    MyBatisPlus(簡稱MP)是基于MyBatis框架基礎上開發(fā)的增強型工具,旨在簡化開發(fā)、提高效率。本文將為大家詳細介紹一下MyBatisPlus是使用,需要的可以參考一下
    2022-07-07
  • SpringBoot集成Zipkin實現(xiàn)分布式全鏈路監(jiān)控

    SpringBoot集成Zipkin實現(xiàn)分布式全鏈路監(jiān)控

    這篇文章主要介紹了SpringBoot集成Zipkin實現(xiàn)分布式全鏈路監(jiān)控的方法啊,本文通過實例代碼給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-09-09
  • Spring Boot 與 Kotlin 上傳文件的示例代碼

    Spring Boot 與 Kotlin 上傳文件的示例代碼

    這篇文章主要介紹了Spring Boot 與 Kotlin 上傳文件的示例代碼,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-01-01
  • Java中多種循環(huán)Map的常見方式詳解

    Java中多種循環(huán)Map的常見方式詳解

    Java中的Map是一種鍵值對存儲的數(shù)據(jù)結構,其中每個鍵都唯一,與一個值相關聯(lián),下面這篇文章主要給大家介紹了關于Java中多種循環(huán)Map的常見方式,文中給出了詳細的代碼示例,需要的朋友可以參考下
    2024-01-01

最新評論