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

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

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

引言

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

使用場景舉例:

  • 注冊驗證:在用戶注冊各種賬戶時,通過郵件發(fā)送驗證碼進行身份確認和賬戶激活。
  • 網(wǎng)站營銷:向潛在客戶或已有用戶發(fā)送營銷信息或者廣告郵件。
  • 身份安全驗證:在用戶修改密碼、解鎖賬戶等關(guān)鍵操作時,通過郵件發(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ā)送的相關(guān)參數(shù),包括郵件服務(wù)器主機、端口、賬戶信息等:

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

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

創(chuàng)建一個郵件發(fā)送的服務(wù)類,使用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ā)送服務(wù)

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

@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);
    }
}

測試結(jié)果

結(jié)語

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

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

相關(guān)文章

  • Java中線程狀態(tài)+線程安全問題+synchronized的用法詳解

    Java中線程狀態(tài)+線程安全問題+synchronized的用法詳解

    這篇文章主要介紹了Java中線程狀態(tài)+線程安全問題+synchronized的用法詳解,本文結(jié)合示例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-04-04
  • java 自定義可繼承枚舉Enum的案例

    java 自定義可繼承枚舉Enum的案例

    這篇文章主要介紹了java 自定義可繼承枚舉Enum的案例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-02-02
  • Java1.8中LocalDate方法使用總結(jié)

    Java1.8中LocalDate方法使用總結(jié)

    LocalDate是Java8中的一個日期類,用于表示年月日,它是不可變的,線程安全的,下面這篇文章主要給大家介紹了關(guān)于Java1.8中LocalDate方法使用的相關(guān)資料,需要的朋友可以參考下
    2024-03-03
  • 深入理解spring事務(wù)

    深入理解spring事務(wù)

    這篇文章主要介紹了spring事務(wù)深入理解,介紹了事物特性,事物隔離級別,事物的具體使用實例,有感興趣的同學可以研究下
    2021-03-03
  • Java中線程安全有哪些實現(xiàn)思路

    Java中線程安全有哪些實現(xiàn)思路

    在 Java 多線程編程中,線程安全是一個非常重要的概念,本文主要介紹了Java中線程安全有哪些實現(xiàn)思路,非常具有實用價值,需要的朋友可以參考下
    2023-05-05
  • java多線程實現(xiàn)文件下載

    java多線程實現(xiàn)文件下載

    這篇文章主要為大家詳細介紹了java多線程實現(xiàn)文件下載,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-07-07
  • springboot整合quartz項目使用案例

    springboot整合quartz項目使用案例

    quartz是一個定時調(diào)度的框架,就目前市場上來說,其實有比quartz更優(yōu)秀的一些定時調(diào)度框架,不但性能比quartz好,學習成本更低,而且還提供可視化操作定時任務(wù),這篇文章主要介紹了springboot整合quartz項目使用(含完整代碼),需要的朋友可以參考下
    2023-05-05
  • spring實現(xiàn)靜態(tài)注入(類或者屬性)操作示例

    spring實現(xiàn)靜態(tài)注入(類或者屬性)操作示例

    這篇文章主要為大家介紹了spring實現(xiàn)靜態(tài)注入(類或者屬性)操作示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-07-07
  • java文件處理工具類詳解

    java文件處理工具類詳解

    這篇文章主要為大家詳細介紹了java文件處理工具類的相關(guān)資料,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-04-04
  • Java單例模式與破壞單例模式概念原理深入講解

    Java單例模式與破壞單例模式概念原理深入講解

    單例模式(Singleton?Pattern)是?Java?中最簡單的設(shè)計模式之一。這種類型的設(shè)計模式屬于創(chuàng)建型模式,它提供了一種創(chuàng)建對象的最佳方式。這種模式涉及到一個單一的類,該類負責創(chuàng)建自己的對象,同時確保只有單個對象被創(chuàng)建
    2023-02-02

最新評論