优秀的编程知识分享平台

网站首页 > 技术文章 正文

java编程——SpringBoot开发案例之邮件多实例发送

nanyue 2024-07-20 23:34:02 技术文章 14 ℃

前言

最近在做邮件发送的服务,正常来说 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 就可以了。

关注我 私信回复【架构】或【java】获取整个java体系的学习视频和资料以及免费的解答还会有职业生涯规划以及面试指导

Tags:

最近发表
标签列表