java編程——SpringBoot開發案例之郵件多實例發送

前言

最近在做郵件發送的服務,正常來說 SpringBoot 整合mail還是很方便的,然而來了新的需求:A請求使用郵箱C發送,B請求使用郵箱D發送,也就是說我們需要配置兩套發送服務。

單實例

首先我們來看下單個服務的配置:

spring.mail.host=smtp.mxhichina.com

[email protected]

spring.mail.password=123456

spring.mail.properties.mail.smtp.auth=true

spring.mail.properties.mail.smtp.starttls.enable=true

spring.mail.properties.mail.smtp.starttls.required=true

其他的不用管,我們只需要在用到的時候注入以下即可:

@Autowired

private JavaMailSender mailSender;//執行者

如果大家對如何加載配置以及初始化感興趣,可以瞭解下 spring-boot-autoconfigure 的原理。

多實例

由於 mail 並沒有像數據庫那樣提供多數據源,這裡只能我們自己手動獲取了:

/**

* 創建發送器

*/

public class MailUtil {

public static JavaMailSenderImpl createMailSender(){

JavaMailSenderImpl sender = new JavaMailSenderImpl();

sender.setHost("smtp.mxhichina.com");

sender.setPort(25);

sender.setUsername("[email protected]");

sender.setPassword("123456");

sender.setDefaultEncoding("Utf-8");

Properties p = new Properties();

p.setProperty("mail.smtp.timeout",1000+"");

p.setProperty("mail.smtp.auth","true");

sender.setJavaMailProperties(p);

return sender;

}

}

這裡,順便說一個小功能,在發送郵件的時候,如何自定義顯示發件人名稱:

MimeMessageHelper helper = new MimeMessageHelper(message, true);

helper.setFrom("[email protected]","爪哇筆記");

最後我們在使用的時候,只需要根據不同的請求使用不同的 sender 就可以了。

關注我 私信回覆【架構】或【java】獲取整個java體系的學習視頻和資料以及免費的解答還會有職業生涯規劃以及面試指導

java編程——SpringBoot開發案例之郵件多實例發送


分享到:


相關文章: