springboot集成邮件服务
一、前言
Spring Email 抽象的核心是 MailSender 接口,MailSender 的实现能够把 Email 发送给邮件服务器,由邮件服务器实现邮件发送的功能。
Spring 自带了一个 MailSender 的实现 JavaMailSenderImpl,它会使用 JavaMail API 来发送 Email。Spring 或 SpringBoot 应用在发送 Email 之前,我们必须要 JavaMailSenderImpl 装配为 Spring应用上下文的一个 bean。 回到顶部
二、配置
1、pom.xml
2、application.yml
spring: mail:
host: smtp.163.com port: 25
username: 159****2662@163.com password: ***********
host 属性默认是 JavaMail 会话的主机;port 端口默认监听标准的 SMTP 端口25;如果邮件服务器需要认证的,还需要设置 userrname 和 password。
这里我用的是 163 的邮件服务器,需要在 163 邮箱中开启客户端授权密码,否则会报 550 认证错误。
3、EmailConfig.java
在这里,我们把 JavaMailSenderImpl 装配为 Spring 应用上下文的一个 Bean。同时需要注意的是,这里使用了@ConfigurationProperties 注解,该注解需要属性有 setter 方法并在启动类中使用 @EnableConfigurationProperties 注解使之生效。
@Configuration
@ConfigurationProperties(prefix = \public class EmailConfig {
private String host;
private Integer port; private String username; private String password;
@Bean
public MailSender javaMailSender() {
JavaMailSenderImpl javaMailSender = new JavaMailSenderImpl(); javaMailSender.setHost(host); javaMailSender.setPort(port);
javaMailSender.setUsername(username); javaMailSender.setPassword(password); return javaMailSender; }
public void setHost(String host) { this.host = host; }
public void setPort(Integer port) { this.port = port; }
public void setUsername(String username) { this.username = username; }
public void setPassword(String password) { this.password = password; } }
回到顶部
三、发送
有了 javaMailSender,那么邮件发送就是一件再简单不过的事情了。我们只需要将 javaMailSender 的 Bean 注入到我们自己的实现类中,然后使用 JavaMail API 来发送 Email。
1、文本邮件发送
public void sendSimpleEmail() {