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

SpringBoot+Email發(fā)送郵件的實現(xiàn)示例

 更新時間:2024年03月01日 11:28:41   作者:奇遇少年  
Spring?Boot提供了簡單而強大的郵件發(fā)送功能,本文主要介紹了SpringBoot+Email發(fā)送郵件的實現(xiàn)示例,具有一定的參考價值,感興趣的可以了解一下

引言

郵件通知是現(xiàn)代應用中常見的一種通信方式,特別是在需要及時反饋、告警或重要事件通知的場景下。Spring Boot提供了簡單而強大的郵件發(fā)送功能,使得實現(xiàn)郵件通知變得輕而易舉。本文將研究如何在Spring Boot中使用JavaMailSender實現(xiàn)郵件發(fā)送,以構建一個可靠的通知體系。

使用場景舉例:

  • 注冊驗證:在用戶注冊各種賬戶時,通過郵件發(fā)送驗證碼進行身份確認和賬戶激活。
  • 網(wǎng)站營銷:向潛在客戶或已有用戶發(fā)送營銷信息或者廣告郵件。
  • 身份安全驗證:在用戶修改密碼、解鎖賬戶等關鍵操作時,通過郵件發(fā)送安全驗證碼來增強賬戶的安全性。

普通文本郵件、HTML內(nèi)容板式郵件、包含靜態(tài)資源郵件以及帶附件郵件的發(fā)送:可以滿足不同類型郵件的發(fā)送需求。

步驟一:引入郵件發(fā)送依賴

在Spring Boot項目的pom.xml文件中引入郵件發(fā)送所需的依賴:

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

步驟二:配置郵件發(fā)送參數(shù)

application.propertiesapplication.yml中配置郵件發(fā)送的相關參數(shù),包括郵件服務器主機、端口、賬戶信息等:

spring:
  mail:
    host: smtp.163.com
    username: *****@163.com
    password: *****
    port: 25

步驟三:創(chuàng)建郵件發(fā)送服務

創(chuàng)建一個郵件發(fā)送的服務類,使用JavaMailSender進行郵件發(fā)送:

public interface SendMailService {
    public String sendSimpleMail(String address, String subject, String body);
    public String sendAttachmentMail(String address, String subject, String body, MultipartFile attach) throws MessagingException, IOException;
}
@Service
public class SendMailServiceImpl implements SendMailService {
    @Autowired
    private JavaMailSender javaMailSender;
    @Value("${spring.mail.username}")
    private String account;

    /**
     * @param address 收件地址
     * @param subject 標題
     * @param body    正文
     * @return
     */
    @Override
    public String sendSimpleMail(String address, String subject, String body) {
        SimpleMailMessage smm = new SimpleMailMessage();
        smm.setFrom(account);
        smm.setTo(address);
        smm.setSubject(subject);
        smm.setText(body);
        javaMailSender.send(smm);
        return "發(fā)送成功";
    }

    /**
     * @param address 收件地址
     * @param subject 標題
     * @param body    正文
     * @param attach  附件
     */
    @Override
    public String sendAttachmentMail(String address, String subject, String body, MultipartFile attach) throws MessagingException, IOException {
        MimeMessage mimeMailMessage = javaMailSender.createMimeMessage();
        MimeMessageHelper mimeMessageHelper = new MimeMessageHelper(mimeMailMessage, true);
        mimeMessageHelper.setFrom(account);
        mimeMessageHelper.setTo(new String[]{address});
        mimeMessageHelper.setSubject(subject);
        mimeMessageHelper.setText(body);
        // 獲取附件的文件名和后綴名
        String fileName = attach.getOriginalFilename();
        String fileExtension = fileName.substring(fileName.lastIndexOf(".") + 1);
        // 讀取附件內(nèi)容
        byte[] bytes = attach.getBytes();
        // 創(chuàng)建一個新的資源對象來存儲附件內(nèi)容
        ByteArrayResource attachmentResource = new ByteArrayResource(bytes);
        // 添加附件,使用完整的文件名(包括后綴名)
        mimeMessageHelper.addAttachment(fileName, attachmentResource);
        javaMailSender.send(mimeMailMessage);
        return "發(fā)送成功";
    }
}

步驟四:使用郵件發(fā)送服務

在需要發(fā)送郵件的地方,注入EmailService并調(diào)用相應的方法:

@RestController
public class EmailController {
    @Autowired
    private SendMailService sendMailService;
    @RequestMapping("/sendMail")
    public String sendMail(String address, String subject, String body) {
       return sendMailService.sendSimpleMail(address, subject, body);

    }
    @RequestMapping("/sendMailWithAttachment")
    public String sendMailWithAttachment(String address, String subject, String body, MultipartFile attach) throws IOException, MessagingException {
       return sendMailService.sendAttachmentMail(address, subject, body, attach);
    }
}

測試結果

結語

通過本文的介紹,你已經(jīng)學到了如何在Spring Boot應用中使用JavaMailSender實現(xiàn)郵件發(fā)送功能。這個簡單而強大的功能可以應用于各種場景,如用戶注冊、密碼重置、異常通知等。通過配置郵件發(fā)送參數(shù)、創(chuàng)建郵件發(fā)送服務和使用郵件發(fā)送服務,你可以輕松構建一個可靠的郵件通知體系,為你的應用增加及時的通知和反饋機制。希望這篇博文能夠幫助你成功實現(xiàn)Spring Boot中的郵件發(fā)送功能。

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

相關文章

  • 簡單談談Java遍歷樹深度優(yōu)先和廣度優(yōu)先的操作方式

    簡單談談Java遍歷樹深度優(yōu)先和廣度優(yōu)先的操作方式

    這篇文章主要介紹了簡單談談Java遍歷樹深度優(yōu)先和廣度優(yōu)先的操作方式的相關資料,需要的朋友可以參考下
    2023-03-03
  • maven多個倉庫查詢的優(yōu)先級順序案例講解

    maven多個倉庫查詢的優(yōu)先級順序案例講解

    這篇文章主要介紹了maven多個倉庫查詢的優(yōu)先級順序,考慮到我們常用的配置文件是conf/settings.xml和工程里面的pom.xml文件,我們針對這兩個文件的結合來分析倉庫的使用順序,需要的朋友可以參考下
    2023-04-04
  • Spring中存對象和取對象的方式詳解

    Spring中存對象和取對象的方式詳解

    這篇文章主要介紹了Spring中存對象和取對象的方式,Spring中更簡單的存對象與取對象的方式是注解,注解實現(xiàn)有兩種方式:一在編譯的時候,把注解替換成相關代碼,并添加到我們原來的代碼中,二攔截方法,文中有詳細的代碼示例供大家參考,需要的朋友可以參考下
    2024-08-08
  • springboot?ConfigurationProperties的綁定源碼示例解析

    springboot?ConfigurationProperties的綁定源碼示例解析

    這篇文章主要為大家介紹了springboot?ConfigurationProperties的綁定源碼示例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-09-09
  • MyBatis trim標簽核心用法代碼實戰(zhàn)

    MyBatis trim標簽核心用法代碼實戰(zhàn)

    MyBatis的<trim>標簽用于動態(tài)SQL拼接,處理SQL前后綴和多余關鍵字,避免語法錯誤,提升代碼可維護性,本文給大家介紹MyBatis trim標簽核心用法代碼實戰(zhàn),感興趣的朋友跟隨小編一起看看吧
    2026-03-03
  • SWT(JFace)體驗之Sash(活動控件)

    SWT(JFace)體驗之Sash(活動控件)

    SWT(JFace)體驗之Sash(活動控件)
    2009-06-06
  • 你真的會使用Java的方法引用嗎

    你真的會使用Java的方法引用嗎

    這篇文章主要給大家介紹了關于Java方法引用的相關資料,方法引用是Java8的新特性,方法引用其實也離不開Lambda表達式,本文通過示例代碼介紹的很詳細,需要的朋友可以參考下
    2021-08-08
  • Java設計模式之代理模式原理及實現(xiàn)代碼分享

    Java設計模式之代理模式原理及實現(xiàn)代碼分享

    這篇文章主要介紹了Java設計模式之代理模式原理及實現(xiàn)代碼分享,設計代理模式的定義,靜態(tài)代理,動態(tài)代理,jdk動態(tài)代理實現(xiàn)步驟,原理及源碼等相關內(nèi)容,具有一定參考價值,需要的朋友可以了解下。
    2017-11-11
  • Java報錯狀態(tài)碼快速定位與解決方法

    Java報錯狀態(tài)碼快速定位與解決方法

    在日常開發(fā)中Java程序員最頭疼的問題之一就是遇到各種報錯狀態(tài)碼,這些狀態(tài)碼就像謎語一樣讓人摸不著頭腦,比如突然蹦出一個500或者404,新手可能會直接懵掉,別擔心!這篇文章會帶你徹底搞懂Java報錯狀態(tài)碼的來龍去脈,需要的朋友可以參考下
    2025-05-05
  • 多模塊的springboot項目發(fā)布指定模塊的腳本方式

    多模塊的springboot項目發(fā)布指定模塊的腳本方式

    該文章主要介紹了如何在多模塊的SpringBoot項目中發(fā)布指定模塊的腳本,作者原先的腳本會清理并編譯所有模塊,導致發(fā)布時間過長,通過簡化腳本,只使用`mvn clean install`命令,可以快速發(fā)布指定模塊及其依賴的模塊
    2025-01-01

最新評論

高清| 平原县| 宁武县| 双牌县| 甘南县| 泰来县| 东乡| 固始县| 古交市| 中西区| 信宜市| 信丰县| 襄垣县| 卫辉市| 新绛县| 永新县| 保山市| 玉龙| 汶上县| 西宁市| 湾仔区| 乌拉特后旗| 龙陵县| 同仁县| 元阳县| 静宁县| 河北区| 五莲县| 华坪县| 苗栗县| 锦屏县| 揭东县| 陆丰市| 五大连池市| 大余县| 五大连池市| 监利县| 新蔡县| 温泉县| 格尔木市| 延川县|