0


Spring Email实现邮件发送功能

(本篇内容是博主在学习“牛客社区”这个项目时的笔记整理,为了方便自己以后查看,希望也能帮助到其他人。若有不恰当的地方还望指正~)


一、邮箱设置

我们将使用个人邮箱向他人发送邮件

默认情况下,不允许通过程序使用个人邮箱向他人发邮件

因此,我们需要进行相应设置

(这里拿我的网易邮箱举例)

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() 方法来发邮件了!

标签: spring boot java

本文转载自: https://blog.csdn.net/m0_59301018/article/details/128236199
版权归原作者 是秃头远啊 所有, 如有侵权,请联系我们删除。

“Spring Email实现邮件发送功能”的评论:

还没有评论