• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

Spring Email实现邮件发送功能

武飞扬头像
是秃头远啊
帮助1

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

目录

一、邮箱设置

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文件中写入如下配置

  1.  
    # 你使用的邮箱对应的smtp服务器地址
  2.  
    spring.mail.host=smtp.163.com
  3.  
    # 邮箱信息
  4.  
    spring.mail.username=你的邮箱
  5.  
    spring.mail.password=刚刚我们获取的“授权码”
  6.  
    # smtp协议相关配置
  7.  
    spring.mail.properties.mail.smtl.auth=true
  8.  
    spring.mail.properties.mail.smtp.starttls.enable=true
  9.  
    spring.mail.properties.mail.smtp.starttls.required=true

三、 通过JavaMailSender发送邮件

JavaMailSender 是 Spring Email 发送邮件的核心组件,我们通过调用它来发送邮件

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

学新通

MailClient类代码如下:

  1.  
    @Component
  2.  
    public class MailClient {
  3.  
    //用于打印日志
  4.  
    private static final Logger logger = LoggerFactory.getLogger(MailClient.class);//用当前类做参数表明打印日志时,将使用当前类名作为开头
  5.  
     
  6.  
    @Autowired
  7.  
    private JavaMailSender mailSender;
  8.  
     
  9.  
    @Value("${spring.mail.username}")
  10.  
    private String from; // 发件方的邮箱
  11.  
     
  12.  
    //参数依次为:收件方的邮箱、邮件主题、邮件内容
  13.  
    public void sendMail(String to, String subject, String content) {
  14.  
    try {
  15.  
    MimeMessage message = mailSender.createMimeMessage();
  16.  
    //用来设置mimemessage中的内容
  17.  
    MimeMessageHelper helper = new MimeMessageHelper(message);
  18.  
    helper.setFrom(from);
  19.  
    helper.setTo(to);
  20.  
    helper.setSubject(subject);
  21.  
    helper.setText(content, true);
  22.  
    mailSender.send(helper.getMimeMessage());
  23.  
    } catch (MessagingException e) {
  24.  
    logger.error("发送邮件失败:" e.getMessage());
  25.  
    }
  26.  
    }
  27.  
    }
学新通

备注:

MimeMessage类表示邮件主体

MimeMessageHelper类的作用是:帮助我们构建MimeMessage类中的内容

完成后,就可以在其他地方注入该类并调用 sendMail() 方法来发邮件了!

这篇好文章是转载于:学新通技术网

  • 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
  • 本站站名: 学新通技术网
  • 本文地址: /boutique/detail/tanhfkkigi
系列文章
更多 icon
同类精品
更多 icon
继续加载