我们利用spring-boot的子模块spring-boot-starter-mail-starter就可以方便的进行邮件的整合与发送
使用
通过maven引入以下依赖坐标:
<!--spring boot 邮件快速启动器-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId>
</dependency>
配置
正常情况下,发送 邮件以下四项为必须配置的内容:
配置项 | 默认值 | 说明 |
---|---|---|
spring.mail.host | SMTP 服务器主机。例如,“smtp.example.com” | |
spring.mail.port | SMTP 服务器端口 | |
spring.mail.username | SMTP 服务器登录用户名 | |
spring.mail.password | SMTP 服务器登录密码 |
以下是一些不常用的配置:
配置项 | 默认值 | 说明 |
---|---|---|
spring.mail.protocol | smtp | SMTP 服务器使用的协议 |
spring.mail.default-encoding | UTF-8 | 默认 MimeMessage 编码 |
spring.mail.jndi-name | 会话 JNDI 名称。设置后,优先于其他会话设置 |
发送邮件
注入org.springframework.mail.MailSender
对象即可轻松地发送邮件,示例代码如下:
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.mail.MailSender;
import org.springframework.mail.SimpleMailMessage;
import org.springframework.stereotype.Service;
@Slf4j
@Service
@RequiredArgsConstructor
public class EmailTriggerService {
private final MailSender mailSender;
public void triggerEmail() {
SimpleMailMessage message = new SimpleMailMessage();
message.setText("Hello World From Spring Boot Application");
message.setTo("to_user@gmail.com");
message.setFrom("from_user@gmail.com");
try {
mailSender.send(message);
} catch (Exception e) {
log.error("发送邮件出错,错误信息为:[{}]",e.getMessage(),e);
}
}
}