【发布时间】:2018-06-19 16:45:47
【问题描述】:
我有一个 Spring Boot 应用程序,我必须将警报邮件发送到 Gmail 和 Zoho 邮件。是否可以使用 spring email 模块向多个 SMTP 服务器发送邮件,因为我们在 application.yml 中配置 SMTP 地址
【问题讨论】:
标签: spring-boot
我有一个 Spring Boot 应用程序,我必须将警报邮件发送到 Gmail 和 Zoho 邮件。是否可以使用 spring email 模块向多个 SMTP 服务器发送邮件,因为我们在 application.yml 中配置 SMTP 地址
【问题讨论】:
标签: spring-boot
基本上,您必须创建 JavaMailSender bean 的两个实例。 假设您将 gmail 和 zoho 配置都放在 application.yml 中,您可以像下面的代码一样创建两个 JavaMailSender 实例:
@Bean
public JavaMailSender getJavaMailSenderGmail() {
JavaMailSenderImpl mailSender = new JavaMailSenderImpl();
mailSender.setHost("smtp.gmail.com");
mailSender.setPort(587);
...other stuff of your config...
return mailSender;
}
@Bean
public JavaMailSender getJavaMailZoho() {
JavaMailSenderImpl mailSender = new JavaMailSenderImpl();
mailSender.setHost("smtp.zoho.com");
...other stuff of your config...
return mailSender;
}
现在在您的服务/控制器/whatyouwant 中,您可以自动装配您的 bean。
@Autowired
@Qualifier("javaMailSenderGmail")
JavaMailSender gmail;
@Autowired
@Qualifier("javaMailSenderZoho")
JavaMailSender zoho;
【讨论】: