Spring Email实现邮件发送功能

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

目录

一、邮箱设置

1. 开启POP3/SMTP服务,获取授权码

二、 使用Spring Email

1. 导入jar包

 2. 在项目的propertites文件中写入如下配置

三、 通过JavaMailSender发送邮件

1. 新建邮件客户端类 MailClient,用于调用JavaMailSender发送邮件


一、邮箱设置

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

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

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

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

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

  • 1
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
适用人群通用各大网易系,腾讯QQ系,新浪系,阿里系等主流邮箱;同时也适用于企业开发的企业邮箱,进行收件和发件。课程概述通用各大网易系,腾讯QQ系,新浪系,阿里系等主流邮箱;同时也适用于企业开发的企业邮箱,进行收件和发件。POP3是Post Office Protocol 3的简称,即邮局协议的第3个版本,它规定怎样将个人计算机连接到Internet的邮件服务器和下载电子邮件的电子协议。它是因特网电子邮件的第一个离线协议标准,POP3允许用户从服务器上把邮件存储到本地主机(即自己的计算机)上,同时删除保存在邮件服务器上的邮件,而POP3服务器则是遵循POP3协议的接收邮件服务器,用来接收电子邮件的SMTP 的全称是“Simple Mail Transfer Protocol”,即简单邮件传输协议。它是一组用于从源地址到目的地址传输邮件的规范,通过它来控制邮件的中转方式。SMTP 协议属于 TCP/IP 协议簇,它帮助每台计算机在发送或中转信件时找到下一个目的地。SMTP 服务器就是遵循 SMTP 协议的发送邮件服务器。   SMTP 认证,简单地说就是要求必须在提供了账户名和密码之后才可以登录 SMTP 服务器,这就使得那些垃圾邮件的散播者无可乘之机。。【开发者如何进行快速开发邮件发送系统???本课程系统进行快速研发,项目实战】 部分截图如下:完整版请查看课件或者视频
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值