SpringBoot开发案例之邮件多实例发送-阿里云开发者社区

开发者社区> 数据库> 正文
登录阅读全文

SpringBoot开发案例之邮件多实例发送

简介:

前言

最近在做邮件发送的服务,正常来说 SpringBoot 整合mail还是很方便的,然而来了新的需求:A请求使用邮箱C发送,B请求使用邮箱D发送,也就是说我们需要配置两套发送服务。

单实例

首先我们来看下单个服务的配置:

spring.mail.host=smtp.mxhichina.com
spring.mail.username=admin@52itstyle.com
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("admin@52itstyle.com");
        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("345849402@qq.com","爪哇笔记");

最后我们在使用的时候,只需要根据不同的请求使用不同的 sender 就可以了。

项目源码

码云:https://gitee.com/52itstyle/spring-boot-mail

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:
数据库
使用钉钉扫一扫加入圈子
+ 订阅

分享数据库前沿,解构实战干货,推动数据库技术变革

其他文章