springboot配置多个发件人
时间: 2023-07-03 10:30:11 浏览: 76
你可以在 Spring Boot 中使用 Java Mail API 来配置多个发件人。以下是一个示例代码,它展示了如何使用 Spring Boot 来配置多个发件人:
首先,在 application.properties 文件中,你需要为每个发件人设置一个独立的配置:
```
# First email configuration
spring.mail.host=smtp.gmail.com
spring.mail.port=587
spring.mail.username=first-email@gmail.com
spring.mail.password=first-email-password
spring.mail.properties.mail.smtp.starttls.enable=true
# Second email configuration
spring.mail.second.host=smtp.gmail.com
spring.mail.second.port=587
spring.mail.second.username=second-email@gmail.com
spring.mail.second.password=second-email-password
spring.mail.second.properties.mail.smtp.starttls.enable=true
```
然后,你可以使用 Java Mail API 来创建一个 JavaMailSender 的 bean,以便发送电子邮件。在这个 bean 中,你需要检查当前用户想要使用哪个发件人,并使用相应的配置来创建一个 JavaMailSender 对象。以下是一个示例代码:
```
@Configuration
public class MailConfig {
@Autowired
private Environment env;
@Bean
public JavaMailSender getJavaMailSender() {
JavaMailSenderImpl mailSender = new JavaMailSenderImpl();
String activeSender = env.getProperty("spring.mail.active", "first");
if ("second".equals(activeSender)) {
mailSender.setHost(env.getProperty("spring.mail.second.host"));
mailSender.setPort(Integer.parseInt(env.getProperty("spring.mail.second.port")));
mailSender.setUsername(env.getProperty("spring.mail.second.username"));
mailSender.setPassword(env.getProperty("spring.mail.second.password"));
} else {
mailSender.setHost(env.getProperty("spring.mail.host"));
mailSender.setPort(Integer.parseInt(env.getProperty("spring.mail.port")));
mailSender.setUsername(env.getProperty("spring.mail.username"));
mailSender.setPassword(env.getProperty("spring.mail.password"));
}
mailSender.setJavaMailProperties(getMailProperties());
return mailSender;
}
private Properties getMailProperties() {
Properties properties = new Properties();
properties.put("mail.smtp.auth", true);
properties.put("mail.smtp.starttls.enable", env.getProperty("spring.mail.properties.mail.smtp.starttls.enable"));
return properties;
}
}
```
现在,你可以在你的应用程序中使用 JavaMailSender bean 来发送电子邮件,Spring Boot 将自动处理哪个发件人应该使用。例如,如下是一个示例控制器:
```
@RestController
public class MailController {
@Autowired
private JavaMailSender mailSender;
@PostMapping("/send-mail")
public ResponseEntity<Void> sendMail(@RequestBody MailRequest mailRequest) {
SimpleMailMessage message = new SimpleMailMessage();
message.setTo(mailRequest.getTo());
message.setSubject(mailRequest.getSubject());
message.setText(mailRequest.getContent());
mailSender.send(message);
return ResponseEntity.ok().build();
}
}
```
在上面的示例中,JavaMailSender bean 会从 application.properties 文件中获取哪个发件人应该使用,然后使用相应的配置来创建一个 JavaMailSender 对象。这样,你就可以使用一个控制器来发送电子邮件,而不必担心使用哪个发件人。