(本篇内容是博主在学习“牛客社区”这个项目时的笔记整理,为了方便自己以后查看,希望也能帮助到其他人。若有不恰当的地方还望指正~)
一、邮箱设置
我们将使用个人邮箱向他人发送邮件
默认情况下,不允许通过程序使用个人邮箱向他人发邮件
因此,我们需要进行相应设置
(这里拿我的网易邮箱举例)
1. 开启POP3/SMTP服务,获取授权码
点击开启后,会提示用手机发送短信来开启该服务
完成后,会得到这样的一个授权码,保存下来,我们后续配置时需要用到
二、 使用Spring Email
1. 导入jar包
在maven仓库中搜索 spring mail
选择一个版本,复制对应的Maven配置
粘贴到项目的 pom 文件中,等待Maven帮我们把jar包加载好
2. 在项目的propertites文件中写入如下配置
# 你使用的邮箱对应的smtp服务器地址
spring.mail.host=smtp.163.com
# 邮箱信息
spring.mail.username=你的邮箱
spring.mail.password=刚刚我们获取的“授权码”
# smtp协议相关配置
spring.mail.properties.mail.smtl.auth=true
spring.mail.properties.mail.smtp.starttls.enable=true
spring.mail.properties.mail.smtp.starttls.required=true
三、 通过JavaMailSender发送邮件
JavaMailSender 是 Spring Email 发送邮件的核心组件,我们通过调用它来发送邮件
1. 新建邮件客户端类 MailClient,用于调用JavaMailSender发送邮件
MailClient类代码如下:
@Component
public class MailClient {
//用于打印日志
private static final Logger logger = LoggerFactory.getLogger(MailClient.class);//用当前类做参数表明打印日志时,将使用当前类名作为开头
@Autowired
private JavaMailSender mailSender;
@Value("${spring.mail.username}")
private String from; // 发件方的邮箱
//参数依次为:收件方的邮箱、邮件主题、邮件内容
public void sendMail(String to, String subject, String content) {
try {
MimeMessage message = mailSender.createMimeMessage();
//用来设置mimemessage中的内容
MimeMessageHelper helper = new MimeMessageHelper(message);
helper.setFrom(from);
helper.setTo(to);
helper.setSubject(subject);
helper.setText(content, true);
mailSender.send(helper.getMimeMessage());
} catch (MessagingException e) {
logger.error("发送邮件失败:"+e.getMessage());
}
}
}
备注:
MimeMessage类表示邮件主体
MimeMessageHelper类的作用是:帮助我们构建MimeMessage类中的内容
完成后,就可以在其他地方注入该类并调用 sendMail() 方法来发邮件了!
版权归原作者 是秃头远啊 所有, 如有侵权,请联系我们删除。