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

SpringBoot集成EMail

武飞扬头像
Small ink
帮助1

SpringBoot集成EMail

在大部分项目中,我们都会经常有用到邮件工具;不管是邮件验证码、邮件注册校验、预警通知等服务,都会使用到我们的email来发送邮件。下面我们就来教大家如何使用SpringBoot中使用email来发送邮件:

  1. 登录需要做完发送邮件的账户,我这边用的是网易邮箱,所以就登录到网易的163邮箱就行,其他邮箱的账户登录到自己所在邮箱网站即可。
  2. 找到设置==>客户端设置(不同邮箱名字不同,163邮箱则是POP3/SMTP/IMAP),就会看到以下页面,开启需要使用的服务即可,我们这边使用的是IMPAP/SMTP学新通
  3. 新增授权码,点击新增授权码,按照提示扫码发送短信,或者手动发送短信即可。然后就可以看到您新的授权码了。学新通
  4. 新增授权码后,记住授权码后面要用。

项目中使用EMail

第一步: 导入依赖
<dependency>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-starter-mail</artifactId>
   <version>2.3.12.RELEASE</version>
</dependency>
第二步: 配置email发送服务
spring:
  mail:
    host: "smtp.163.com" # 发件服务器地址,不同邮件平台地址不同
    port: 25 #常用邮件端口25、109、110、143、465、995、993、994 如果开启了SSL安全则使用对应的端口号,25为非加密端口号
    username: admin@163.com #发送邮件的账号
    password: 123456 #发送邮件账号的授权码,这里的授权码不是验证码.需要到邮箱
    default-encoding: utf-8 #设置编码
    properties: # 设置邮件超时时间防止服务器阻塞
      timeout: 5000
      connection-timeout: 5000
      write-timeout: 5000
第三步: 发送一份简单的邮件
@Autowired
private JavaMailSender mailSender;

public void sendEMail(EMailCmd eMailCmd) {
      try {
            SimpleMailMessage simpleMailMessage = new SimpleMailMessage();
            simpleMailMessage.setFrom(sendUserName); //设置发送邮件账号
            simpleMailMessage.setTo("123@163.com"); //设置接收邮件的人,可以多个
            simpleMailMessage.setSubject(eMailCmd.getSubject()); //设置发送邮件的主题
            simpleMailMessage.setText(eMailCmd.getText()); //设置发送邮件的内容
            mailSender.send(simpleMailMessage);
        } catch (MailException e) {
            log.error("邮件发送失败!");
        }
}
//发送带HTML内容的邮件

	@Autowired
	private JavaMailSender mailSender;

    public void sendHtmlEMail(EMailCmd eMailCmd) {
        try {
            MimeMessage message = mailSender.createMimeMessage();
            MimeMessageHelper minehelper = new MimeMessageHelper(message, true);
            minehelper.setFrom(sendUserName); //设置发送邮件账号
            minehelper.setTo(eMailCmd.getTos()); //设置接收邮件的人,可以多个
            minehelper.setSubject(eMailCmd.getSubject()); //设置发送邮件的主题
            minehelper.setText(eMailCmd.getText(),true); //设置发送邮件的内容 第二个设置为true则可以发送带HTML的邮件
            mailSender.send(message);
        } catch (MessagingException e) {
            log.error("邮件发送失败!");
        }
    }
学新通
发送模板类型的邮件:
  1. 导入需要的模板依赖
<!-- thymeleaf模板 -->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-thymeleaf</artifactId>
    <version>2.3.12.RELEASE</version>
</dependency>
  1. 配置对应的模板路径
spring:
  thymeleaf:
    cache: false
    mode: LEGACYHTML5 #类型
    prefix: classpath:/templates/ #模板存放的位置
    suffix: .html #模板的后缀
  1. 创建一个方法获得动态模板内容

	@Autowired
    private TemplateEngine templateEngine;

/**
     * 获得验证码模板
     *
     * @param email 用户邮箱
     * @param code 验证码
     * @param timeout 超时时间
     * @return
     */
public String getCaptchaTempl(String email, String code, int timeout) {
        Context context = new Context();
        //设置模板所需的参数 	
        context.setVariable("title","验证码");
        context.setVariable("email",email);
        context.setVariable("code",code);
        context.setVariable("date",DateUtils.format(new Date(),"yyyy-MM-dd hh:mm:ss"));
        //通过模板类将动态参数传入HTML模板,并返回模板内容 参数一:模板名字,参数二:动态参数Web文本
        String content = templateEngine.process("/mailCode", context);
        return content;
    }
学新通
  1. HTML页面中使用我们设置的动态参数
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>[[${title}]]</title>
</head>
<body>
<div style="background-color:#ECECEC; padding: 15px;">
    <table cellpadding="0" align="center"
           style="width: 600px; margin: 0px auto; text-align: left; position: relative; border-top-left-radius: 5px; border-top-right-radius: 5px; border-bottom-right-radius: 5px; border-bottom-left-radius: 5px; font-size: 14px; font-family:微软雅黑, 黑体; line-height: 1.5; box-shadow: rgb(153, 153, 153) 0px 0px 5px; border-collapse: collapse; background-position: initial initial; background-repeat: initial initial;background:#fff;">
        <tbody>
        <tr>
            <th valign="middle"
                style="height: 25px; line-height: 25px; padding: 15px 35px; border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: #42a3d3; background-color: #49bcff; border-top-left-radius: 5px; border-top-right-radius: 5px; border-bottom-right-radius: 0px; border-bottom-left-radius: 0px;">
                <font face="微软雅黑" size="5" style="color: rgb(255, 255, 255); ">邮箱注册</font>
            </th>
        </tr>
        <tr>
            <td>
                <div style="padding:25px 35px 40px; background-color:#fff;">
                    <h2 style="margin: 5px 0px; ">
                        <font color="#333333" style="line-height: 20px; ">
                            <font style="line-height: 22px; " size="4">
                                亲爱的<b>[[${email}]]</b>用户,您好:</font>
                        </font>
                    </h2>
                    <p>首先感谢您加入本商城!请在验证页面输入以下验证码:<br>
                        <b style="font-size: 18px">[[${code}]]</b><br>
                        本验证码5分钟内有效,为了保障您的账户安全,请勿向任何人提供此验证码。感谢您的支持!<br>
                        如果您有什么疑问可以联系管理员,Email: admin@163.com</p>
                    <p align="right">商城</p>
                    <p align="right">[[${date}]]</p>
                    <div style="width:700px;margin:0 auto;">
                        <div style="padding:10px 10px 0;border-top:1px solid #ccc;color:#747474;margin-bottom:20px;line-height:1.3em;font-size:12px;">
                            <p>本邮件系统自动发送,请勿回复!<br>
                                请保管好您的邮箱,避免账号被他人盗用
                            </p>
                            <p>©***</p>
                        </div>
                    </div>
                </div>
            </td>
        </tr>
        </tbody>
    </table>
</div>
</body>
</html>
学新通

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

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