怎么用126邮箱发送电子邮件(Boot)

首页教程更新时间:2023-05-23 15:44:32

最近有童鞋问到笔者如何用Spring Boot发送邮件,故而整理下Spring Boot发送邮件的各种姿势。

说到邮件放松,相信大家对Spring Framework提供的接口 JavaMailSender都不陌生。那么Spring Boot是否有开箱即用的邮件发送呢?答案是肯定的。Spring Boot为发送邮件提供了starter:spring-boot-starter-mail

本文详细探讨如何用Spring Boot发送邮件。

一、邮箱配置

以126邮箱为例:

1 开启SMTP服务

怎么用126邮箱发送电子邮件,Boot(1)

2 设置/重置客户端授权密码

怎么用126邮箱发送电子邮件,Boot(2)

二、编码

2.1 准备工作

1 加依赖

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

2 写配置

spring: mail: host: smtp.126.com username: eacdy0000@126.com password: 上面设置的授权码

2.2 发送简单邮件

public String simple { SimpleMailmessage message = new SimpleMailMessage; // 发件人邮箱 message.setFrom(this.mailProperties.getusername); // 收信人邮箱 message.setTo("511932633@qq.com"); // 邮件主题 message.setSubject("简单邮件测试"); // 邮件内容 message.setText("简单邮件测试"); this.javaMailSender.send(message); return "success";}

结果类似下图:

怎么用126邮箱发送电子邮件,Boot(3)

2.3 发送html邮件

简单邮件是没有样式的,很多时候,我们希望发送的邮件内容带有样式,此时可发送HTML邮件。

public String html throws MessagingException { MimeMessage message = javaMailSender.createMimeMessage; MimeMessageHelper messageHelper = new MimeMessageHelper(message);
messageHelper.setFrom(this.mailProperties.getUsername); messageHelper.setTo("511932633@qq.com"); messageHelper.setSubject("HTML内容邮件测试"); // 第二个参数表示是否html,设为true messageHelper.setText("<h1>HTML内容..</h1>", true);
this.javaMailSender.send(message); return "success";}

结果类似下图:

怎么用126邮箱发送电子邮件,Boot(4)

2.4 发送带附件的邮件

很多场景下,需要为邮件插入附件,此时该怎么办呢?继续上代码——

@GetMapping("/attach")public String attach throws MessagingException { MimeMessage message = this.javaMailSender.createMimeMessage; // 第二个参数表示是否开启multipart模式 MimeMessageHelper messageHelper = new MimeMessageHelper(message, true);
messageHelper.setFrom(this.mailProperties.getUsername); messageHelper.setTo("511932633@qq.com"); messageHelper.setSubject("带附件的邮件测试"); // 第二个参数表示是否html,设为true messageHelper.setText("<h1>HTML内容..</h1>", true); messageHelper.addAttachment("附件名称", new ClassPathResource("wx.jpg"));
this.javaMailSender.send(message); return "success";}

结果类似下图:

怎么用126邮箱发送电子邮件,Boot(5)

2.5 发送带内联附件的邮件

附件 HTML基本能满足日常工作中多数需求。但如果能将附件内联在邮件内容中,那么体验就更好啦!如何实现附件的内联呢?

@GetMapping("/inline-attach")public String inlineAttach throws MessagingException { MimeMessage message = this.javaMailSender.createMimeMessage; // 第二个参数表示是否开启multipart模式 MimeMessageHelper messageHelper = new MimeMessageHelper(message, true); messageHelper.setFrom(this.mailProperties.getUsername); messageHelper.setTo("511932633@qq.com"); messageHelper.setSubject("内联附件的邮件测试"); // 第二个参数表示是否html,设为true messageHelper.setText("<h1>HTML内容..<img src=\"cid:attach\"/></h1>", true); messageHelper.addInline("attach", new ClassPathResource("wx.jpg"));
this.javaMailSender.send(message); return "success";}

由代码可知,只需在想要内联的地方使用 cid:xx引用内联附件,然后用addInline(xx, file)指定附件即可。两处的xx必须一致。

结果类似下图:

怎么用126邮箱发送电子邮件,Boot(6)

2.6 发送基于freemarker模板的邮件

上面的例子中,邮件内容是直接以字符串体现的,这通常不适合生产,因为实际项目中邮件往往带有变量。此时,可考虑使用Freemarker模板(或者其他模板,Spring Boot 2.x默认支持Freemarker、Groovy、Thymeleaf、Mustache四种模板引擎,也可根据需求使用其他模板引擎)。

创建Freemarker模板文件mail.ftl,并将其存放在resources/templates/目录中

<h1>亲爱的${username}, 欢迎关注${event}</h1>

编码:

@GetMapping("/freemarker")public String freemarker throws MessagingException, IOException, TemplateException { MimeMessage message = this.javaMailSender.createMimeMessage; // 第二个参数表示是否开启multipart模式 MimeMessageHelper messageHelper = new MimeMessageHelper(message, true); messageHelper.setFrom(this.mailProperties.getUsername); messageHelper.setTo("511932633@qq.com"); messageHelper.setSubject("基于freemarker模板的邮件测试");
Map<String, Object> model = new HashMap<>; model.put("username", "itmuch"); model.put("event", "IT牧场大事件");
String content = FreeMarkerTemplateUtils.processTemplateIntoString( this.freemarkerConfiguration.getTemplate("mail.ftl"), model);
// 第二个参数表示是否html,设为true messageHelper.setText(content, true);
this.javaMailSender.send(message); return "success";}

此时,结果类似下图:

怎么用126邮箱发送电子邮件,Boot(7)

References

[1]GitHub:https://github.com/eacdy/spring-boot-study/tree/master/spring-boot-mail

[2]Gitee:https://gitee.com/itmuch/spring-boot-study/tree/master/spring-boot-mail

,
图文教程
相关文章
热门专题
推荐软件
奇热小说
奇热小说
下载
QQ2019手机版
QQ2019手机版
下载
王者荣耀
王者荣耀
下载
百度浏览器迷你版
百度浏览器迷你版
下载
2345浏览器手机版
2345浏览器手机版
下载
网易邮箱
网易邮箱
下载
爱奇艺
爱奇艺
下载
网易云音乐
网易云音乐
下载
WPSOffice
WPSOffice
下载
优酷
优酷
下载
谷歌浏览器(Chrome)
谷歌浏览器(Chrome)
下载
迅雷看看播放器
迅雷看看播放器
下载
UC浏览器
UC浏览器
下载
QQ音乐
QQ音乐
下载
阿里旺旺买家版v9.12.10C官方版
阿里旺旺买家版v9.12.10C官方版
下载
360安全卫士v12.1官方版
360安全卫士v12.1官方版
下载
猜你喜欢
善余
善余
下载
火箭赛跑者
火箭赛跑者
下载
369工具箱
369工具箱
下载
卡车停车大师
卡车停车大师
下载
信息安全英语词典
信息安全英语词典
下载
赚800app
赚800app
下载
实况足球2014补丁切换器v1.2
实况足球2014补丁切换器v1.2
下载
永乐象棋棋谱
永乐象棋棋谱
下载
3D推箱子2
3D推箱子2
下载
聪明的孩子
聪明的孩子
下载
美缝助手
美缝助手
下载
辐射4TheStarlightBus街区MOD
辐射4TheStarlightBus街区MOD
下载
生活的真相我们的大学
生活的真相我们的大学
下载
盛唐传奇
盛唐传奇
下载
多参数监护仪
多参数监护仪
下载
135编辑器
135编辑器
下载