springboot 发送邮件

参考:https://www.cnblogs.com/ityouknow/p/6823356.html

准备工作:

添加依赖:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-mail</artifactId>
</dependency>

增加配置

在application.properties中进行如下配置:

#发送邮件
spring.mail.host=smtp.qq.com
spring.mail.username=437845310@qq.com
spring.mail.password=保密哦
spring.mail.default-encoding=UTF-8

spring.mail.host是表示邮箱的smtp地址。该地址需要你在你的邮箱设置中打开,设置后会有一个密码,该密码就是spring.mail.password。spring.user.name就是你邮箱的登录名。

一、发送一封最基本的邮件:

建一个service类,直接使用@Compoent直接将该类交给spring容器,直接注入JavaMailSender对象。

@Component
public class MailService {
//发送方的邮箱地址
private static final String from = "437845310@qq.com";
//发送给谁
private static final String to = "abreaking@163.com";
//抄送给谁
private static final String[] copyto = {"437845310@qq.com"};
@Resource
private JavaMailSender javaMailSender;

//发送一封简单的邮件,纯主题+内容
public void sendSimpleMessage(){
    SimpleMailMessage message = new SimpleMailMessage();
    message.setFrom(from);
    message.setTo(to);
    /*message.setCc(copyto);*/
    message.setSubject("放假通知");
    message.setText("年轻人,你的思想很危险");
    javaMailSender.send(message);
}
}

编写测试代码:

@RunWith(SpringJUnit4ClassRunner.class)
@SpringBootTest(classes = SpringbootApplication.class)
public class SpringbootApplicationTests {
    @Resource
    MailService mailService;
    @Test
    public void test01(){
        mailService.sendSimpleMessage();
    }


这时,我们再查看邮件

二、发送一封HTML邮件

其他都不变,直接再MailService中创建方法:

//发送html格式的邮件
public void sendHtmlMessage() {
    MimeMessage mimeMessage = javaMailSender.createMimeMessage();
    String htmlText = "<html><header></header><body><h1 style='color:red'>红色字体内容</h1></body></html>";
    try {
        //true表示需要创建一个multipart message
        MimeMessageHelper helper = new MimeMessageHelper(mimeMessage,true);
        helper.setFrom(from);
        helper.setTo(to);
        helper.setSubject("html邮件");
        helper.setText(htmlText,true);
        javaMailSender.send(mimeMessage);
    } catch (MessagingException e) {
        e.printStackTrace();
    }
}

测试结果为:

三、发送带附件的邮件

其他,不变,编写方法:使用FileSystemResource类实例化需要上传的附件,指定发送过去的附件名

public void sendMessageWithAttachment(){
    MimeMessage mimeMessage = javaMailSender.createMimeMessage();
    try {
        MimeMessageHelper helper = new MimeMessageHelper(mimeMessage,true);
        helper.setFrom(from);
        helper.setTo(to);
        helper.setSubject("带附件的发送");
        helper.setText("内容见附件",true);
        FileSystemResource file = new FileSystemResource(new File("e:\\附件.txt"));
        //添加多个附件可以多次addAttachment
        helper.addAttachment("发送的附件.txt",file);
        javaMailSender.send(mimeMessage);
    } catch (MessagingException e) {
        e.printStackTrace();
    }
}

收到附件:


四、使用邮件模板

举个栗子:我们使用邮箱注册某个网站时,会有一个验证码发到我们的邮箱,如:
    你好!你已经注册到xx网站,验证码为:123456。
(可能内容、格式还会更丰富一些),其实内容都一样,无非就验证码不一样。
所以,我们先创建一个模板页面:(使用thymeleaf,),当然,要先添加依赖

    org.springframework.boot
    spring-boot-starter-thymeleaf

创建一个模板页面:mail.html

<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.w3.org/1999/xhtml">
<head>
    <meta charset="UTF-8"/>
    <title>Title</title>
</head>
<body>
    此次的验证码为:<strong th:text="${code}">code</strong>。该验证码5分钟有效。
</body>
</html>

创建方法:

@Resource
TemplateEngine templateEngine;
public void sendTemplateMail(){
    Context context = new Context();
    context.setVariable("code","123456");
    String htmlText = templateEngine.process("mail", context);

    //使用发送html的方式发送。如上面

收到邮件如下

1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 、4下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合;、下载 4使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合;、 4下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.m或d论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 、1资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。、资源 5来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。、资 5源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值