spring-boot 邮件发送

1. 引入邮件启动器:
spring-boot-starter-mail
<dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-mail</artifactId>
 </dependency>

#配置邮箱信息
spring.mail.username=411856938@qq.com
spring.mail.password=coenvvpxpbvscbbc
# 发送邮件服务器
spring.mail.host=smtp.qq.com
#ssl连接
spring.mail.properties.smtp.ssl.enable=true

发送普通邮件

test类

    @Autowired(required = false)
    JavaMailSenderImpl javaMailSender;

    @Test
    public void testSimpleMail(){
        // 封装简单的邮件内容
        SimpleMailMessage message = new SimpleMailMessage();
        // 标题
        message.setSubject("放假通知");
        // 正文
        message.setText("春节放假7天");
        // 发件人
        message.setFrom("411856938@qq.com");
        // 收件人
        message.setTo("1157495953@qq.com");
        javaMailSender.send(message);

    }

发送复杂邮件附件与html渲染效果

@Test
    public void testMail() throws MessagingException {
        // 封装简单的邮件内容
        MimeMessage mimeMailMessage =  javaMailSender.createMimeMessage();
        // 通过消息帮助对象来设置发送的发送的内容,第二个参数为true表示可以发送附件
        MimeMessageHelper mimeMessageHelper =  new MimeMessageHelper(mimeMailMessage,true);
        // 标题
        mimeMessageHelper.setSubject("放假通知");
        // 正文
        mimeMessageHelper.setText("<h2 style='color:red'>春节放假7天</h2>",true);

        // 发送附件
        mimeMessageHelper.addAttachment("clock.jpg",new File("D:\\springbootProject\\src\\main\\resources\\static\\img\\clock.jpg"));
        mimeMessageHelper.addAttachment("formBg.png",new File("D:\\springbootProject\\src\\main\\resources\\static\\img\\formBg.png"));
        // 发件人
        mimeMessageHelper.setFrom("411856938@qq.com");
        // 收件人
        mimeMessageHelper.setTo("1157495953@qq.com");
        javaMailSender.send(mimeMailMessage);

    }

Springboot使用HTML模板发送电子邮件

在写一个Servicel类我把整个类都贴出来,

第一个方法是以文本方式发送服务,

第二个是使用的Html的方式发送,设置发送人邮箱的时候如果不想使用配置文件的数据

可直接在上面写字符串格式的发送人邮箱

package com.example.springbootproject.service;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.mail.SimpleMailMessage;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.mail.javamail.MimeMailMessage;
import org.springframework.mail.javamail.MimeMessageHelper;
import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Service;

import javax.mail.MessagingException;
import javax.mail.internet.MimeMessage;

@Service
public class MailService {

    @Autowired(required = false)
    //框架自带的
    private JavaMailSender mailSender;



    @Value("${spring.mail.username}")
    //发送人的邮箱  比如155156641XX@163.com,使用EL表达式获取在配置文件的发送人邮箱
    private String from;

    @Async  //意思是异步调用这个方法
    public void sendMail(String title, String url, String email) {
        SimpleMailMessage message = new SimpleMailMessage();
        // 发送人的邮箱
        message.setFrom(from);
        //标题
        message.setSubject(title);
        //发给谁  对方邮箱
        message.setTo(email);
        //内容
        message.setText(url);
        //发送
        mailSender.send(message);
    }

    public void sendHtmlMail(String to, String subject, String centent) throws MessagingException {
        MimeMessage mimeMessage = mailSender.createMimeMessage();
        MimeMessageHelper helper = new MimeMessageHelper(mimeMessage, true);
        helper.setFrom(from);
        helper.setTo(to);
        helper.setSubject(subject);
        helper.setText(centent, true);
        mailSender.send(mimeMessage);

    }

}

下面在把控制器里面的信息贴出来

package com.example.springbootproject.controller;

import com.example.springbootproject.service.MailService;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.thymeleaf.TemplateEngine;
import org.thymeleaf.context.Context;

import javax.annotation.Resource;
import javax.mail.MessagingException;

@Controller
public class MailController {
    @Resource
    MailService mailService;

    @Resource
    TemplateEngine templateEngine;

    @RequestMapping("/tomail")
    @ResponseBody
    public String toMail() throws MessagingException {
        String title = "E-mail!";
        String email = "1157495953@qq.com";
        Context context = new Context();

        // 设置传入模板页面的参数 参数名为id 参数随便写一个就好
        context.setVariable("id","123");
        String proces = templateEngine.process("emailTemplate",context);
        mailService.sendHtmlMail(email,title,proces);
        return "success";
    }
}

模板部分和普通的没什么区别

<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org" lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<div style="border: black;width: 400px;height: 400px;background: #2a6496">
    尊敬的用户271066981@qq.com,您好!
    您的会员账号是:271066981@qq.com,该账号下的域名仅剩15天到期,请尽快续费!
 
    <div th:text="${id}"></div>
</div>
</body>
</html>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值