前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >SpringBoot项目发送邮件

SpringBoot项目发送邮件

作者头像
全栈开发日记
发布2022-05-13 14:46:57
2020
发布2022-05-13 14:46:57
举报
文章被收录于专栏:全栈开发日记

如下是如何使用SpringBoot项目实现快捷发送邮件的详细步骤。

1-邮箱服务器

这里以163邮箱示例,需要开启POP3/SMTP/IMAP服务,因为你需要用到SMTP协议来实现实时发送邮件。

2-引入依赖

代码语言:javascript
复制
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-mail</artifactId>
</dependency>

3-编辑配置文件

代码语言:javascript
复制
spring:
  mail:
    host: smtp.163.com
    username: *********@163.com
    password: *********** #授权码
    default-encoding: UTF-8
    properties:
      mail:
        smtp:
          auth: true
          ssl:
            enable: true
          starttls:
            enable: true
            required: true
          socketFactory:
            port: 465
            class: javax.net.ssl.SSLSocketFactory
    port: 465
    protocol: smtp

授权码需要自行对应的邮箱设置中获取,如下:

4-发送普通文本邮件

代码语言:javascript
复制
@Autowired
private JavaMailSender mailSender;

/**
 * 发送普通邮件
 * @author 二饭
 * @email 1786705138@qq.com
 */
public void sendMail(SendMailDto sendMailDto) throws Exception {
    SimpleMailMessage message = new SimpleMailMessage();
    message.setFrom(new InternetAddress(MimeUtility.encodeText("二饭的博客")+"<tworice_0811@163.com>").toString());
    message.setTo(sendMailDto.getTo());
    message.setSubject(sendMailDto.getSubject());
    message.setText(sendMailDto.getContent());

    try {
        mailSender.send(message);
        log.info("邮件已发送。");
    } catch (Exception e) {
        log.error("发送邮件时发生异常了!", e);
    }
}

5-发送HTML邮件

代码语言:javascript
复制
/**
 * 发送HTML邮件
 * @author 二饭
 * @email 1786705138@qq.com
 */
public void sendHTMLMail(SendMailDto sendMailDto) throws Exception{
    MimeMessage message=mailSender.createMimeMessage();

    try {
    //true表示需要创建一个multipart message
        MimeMessageHelper helper=new MimeMessageHelper(message,true);
        helper.setFrom(new InternetAddress(MimeUtility.encodeText("二饭的博客")+"<tworice_0811@163.com>"));
        helper.setTo(sendMailDto.getTo());
        helper.setSubject(sendMailDto.getSubject());
        helper.setText(sendMailDto.getContent(),true);
        mailSender.send(message);
        log.info("发往-"+sendMailDto.getTo()+"-邮件已发送。");
    }catch (Exception e) {
        log.error("发往-"+sendMailDto.getTo()+"-邮件发送失败。");
    }
}

发送HTML邮件时,邮件内容直接写HTML的标签内容就可以,就像写网页一样,最后会自动识别为HTML页面呈现在邮件中。

6-SendMailDto 对象

这个对象是我自定义的一个实体类对象,主要声明了邮件的收件人、邮件主题(标题)、邮件内容。该实体类如下:

代码语言:javascript
复制
@Data
public class SendMailDto implements Serializable {
    /**
     * 收件人
     */
    private String to;

    /**
     * 主题
     */
    private String subject;

    /**
     * 内容
     */
    private String content;

}
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-07-07,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 全栈开发日记 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1-邮箱服务器
  • 2-引入依赖
  • 3-编辑配置文件
  • 4-发送普通文本邮件
  • 5-发送HTML邮件
  • 6-SendMailDto 对象
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档