前言

邮件服务在开发中非常常见,比如用邮件注册账号、邮件作为找回密码的途径、用于订阅内容定期邮件推送等等,下面就简单的介绍下邮件实现方式。

准备

一个用于发送的邮箱,本文是用腾讯的域名邮箱,可以自己搞一个域名绑定下,登录地址:http://domain.mail.qq.com

邮件服务实现

1.添加依赖

<!-- 启用邮箱 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId>
</dependency>

2.配置文件

spring.mail.host=smtp.qq.com
spring.mail.username=zwqh@clover1314.com
spring.mail.password=*****
spring.mail.properties.mail.smtp.auth=true
spring.mail.properties.mail.smtp.starttls.enable=true
spring.mail.properties.mail.smtp.starttls.required=true

3.实现示例

@Service
public class MailTool { @Value("${spring.mail.username}")
private String from; @Autowired
private JavaMailSender mailSender; /**
* 发送邮件
*
* @return
*/
public boolean send() {
try {
SimpleMailMessage message = new SimpleMailMessage();
message.setFrom(from);//发送者
message.setTo("zwqh@clover1314.com");//接受者
message.setCc("sohuniuer@sina.com");// 抄送
message.setSubject("邮件主题"); //邮件主题
message.setText("这里是邮件内容");//邮件内容
mailSender.send(message);
System.out.println("邮件发送成功");
return true;
} catch (Exception e) {
e.printStackTrace();
return false;
}
} /**
* 发送富文本邮件
*
* @return
*/
public boolean sendHtml() {
// 使用 JavaMail 的 MimeMessage,支持更多复杂的邮件格式和内容
MimeMessage mimeMessage = mailSender.createMimeMessage();
try {
// 创建 MimeMessageHelper 对象,处理 MimeMessage 辅助类
MimeMessageHelper helper = new MimeMessageHelper(mimeMessage, true);
// 使用辅助类 MimeMessage 设定参数
helper.setFrom(from);
helper.setTo("zwqh@clover1314.com");
helper.setBcc("sohuniuer@sina.com");//密送
helper.setSubject("富文本邮件主题");
helper.setText("<h1>这是富文本邮件内容标题</h1><p style='color:red;'>这里是段落一</p><p style='color:orange;'>这里是段落二</p>",
true);
mailSender.send(mimeMessage);
System.out.println("邮件发送成功");
return true;
} catch (MessagingException e) {
e.printStackTrace();
return false;
}
}
/**
* 发送富文本带附件的邮件
* @return
*/
public boolean sendHtmlWithAttach() {
// 使用 JavaMail 的 MimeMessage,支持更多复杂的邮件格式和内容
MimeMessage mimeMessage = mailSender.createMimeMessage(); try {
// 创建 MimeMessageHelper 对象,处理 MimeMessage 辅助类
MimeMessageHelper helper = new MimeMessageHelper(mimeMessage, true);
helper.setFrom(from);
helper.setTo("zwqh@clover1314.com");
helper.setSubject("富文本带附件的邮件主题");
helper.setText("<h1>这是富文本邮件内容标题</h1><p style='color:red;'>这里是段落一</p><p style='color:orange;'>这里是段落二</p>",
true);
//加载文件资源作为附件
ClassPathResource file=new ClassPathResource("static/avatar2.jpg");
//添加附件,并重命名
helper.addAttachment("附件.jpg", file);
mailSender.send(mimeMessage);
System.out.println("邮件发送成功");
return true;
} catch (MessagingException e) {
e.printStackTrace();
return false;
} } }

4.Controller 用于测试

@RestController
public class MailController { @Autowired
private MailTool mailTool; @RequestMapping("/send")
public String send() {
mailTool.send();
return "send success";
} @RequestMapping("/sendHtml")
public String sendHtml() {
mailTool.sendHtml();
return "sendHtml success";
} @RequestMapping("/sendHtmlWithAttach")
public String sendHtmlWithAttach() {
mailTool.sendHtmlWithAttach();
return "sendHtmlWithAttach success";
} }

5.测试效果

示例代码

github

码云

非特殊说明,本文版权归 朝雾轻寒 所有,转载请注明出处.

原文标题:Spring Boot 2.X(十三):邮件服务

原文地址:https://www.zwqh.top/article/info/22

如果文章对您有帮助,请扫码关注下我的公众号,文章持续更新中...

Spring Boot 2.X(十三):邮件服务的更多相关文章

  1. Spring boot学习1 构建微服务:Spring boot 入门篇

    Spring boot学习1 构建微服务:Spring boot 入门篇 Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程.该框 ...

  2. spring boot / cloud (十四) 微服务间远程服务调用的认证和鉴权的思考和设计,以及restFul风格的url匹配拦截方法

    spring boot / cloud (十四) 微服务间远程服务调用的认证和鉴权的思考和设计,以及restFul风格的url匹配拦截方法 前言 本篇接着<spring boot / cloud ...

  3. spring boot / cloud (二十) 相同服务,发布不同版本,支撑并行的业务需求

    spring boot / cloud (二十) 相同服务,发布不同版本,支撑并行的业务需求 有半年多没有更新了,按照常规剧本,应该会说项目很忙,工作很忙,没空更新,吧啦吧啦,相关的话吧, 但是细想想 ...

  4. Spring Boot 和 Docker 实现微服务部署

    Spring boot 开发轻巧的微服务提供了便利,Docker 的发展又极大的方便了微服务的部署.这篇文章介绍一下如果借助 maven 来快速的生成微服务的镜像以及快速启动服务. 其实将 Sprin ...

  5. SpringBoot实战(十)之使用Spring Boot Actuator构建RESTful Web服务

    一.导入依赖 <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http ...

  6. Spring boot 零配置开发微服务

    2018年12月29日星期六 体验Spring boot 零配置开发微服务 1.为什么要用Spring  boot? 1.1 简单方便.配置少.整合了大多数框架 1.2 适用于微服务搭建,搭建的微服务 ...

  7. Spring Boot 是 Spring 的一套快速配置脚手架,可以基于Spring Boot 快速开发单个微服务

    Spring Boot 是 Spring 的一套快速配置脚手架,可以基于Spring Boot 快速开发单个微服务,Spring Cloud是一个基于Spring Boot实现的云应用开发工具:Spr ...

  8. Spring Boot使用RestTemplate消费REST服务的几个问题记录

    我们可以通过Spring Boot快速开发REST接口,同时也可能需要在实现接口的过程中,通过Spring Boot调用内外部REST接口完成业务逻辑. 在Spring Boot中,调用REST Ap ...

  9. 使用Ratpack与Spring Boot构建高性能JVM微服务

    在微服务天堂中Ratpack和Spring Boot是天造地设的一对.它们都是以开发者为中心的运行于JVM之上的web框架,侧重于生产率.效率以及轻量级部署.他们在服务程序的开发中带来了各自的好处.R ...

随机推荐

  1. mysql那些事(2)时间类型数据如何存储

    几乎每次数据库建模的时候,都会遇到时间类型数据存储的问题. mysql存储时间通常选择这四种类型:datetime.timestamp.int和bigint四种方式,到底使用什么类型,需要看具体的业务 ...

  2. Flink应用程序结构开发介绍

    Flink程序遵循一定的编程模式.DataStream API 和 DataSet API 基本具有相同的程序结构.以下为一个流式程序的示例代码来对文本文件进行词频统计. package com.re ...

  3. 小白的springboot之路(八)、继承Redis以及@Cacheable注解实现Redis缓存

    0.前言 在项目中,缓存作为一种高效的提升性能的手段,几乎必不可少,Redis作为其中的佼佼者被广泛应用: 一.spring boot集成Redis 1.添加依赖 <dependency> ...

  4. 十一次作业——LL(1)文法的判断,递归下降分析程序

    1. 文法 G(S): (1)S -> AB (2)A ->Da|ε (3)B -> cC (4)C -> aADC |ε (5)D -> b|ε 验证文法 G(S)是不 ...

  5. 华为云ModelArts2.0来袭

    [摘要] modelarts自发布以来,不断地更新增加新的功能来为AI工程师们带来新的服务,在这次的全联接大会上EI服务产品部总经理贾永利宣布--华为云AI重装升级,并重磅发布一站式AI开发管理平台M ...

  6. KETTLE实现复杂的流程

    KETTLE是一款将数据从来源端经过抽取(extract).转换(transform).加载(load)至目的端的非常好用的一款ETL工具.学会它,对于跨数据库的表处理或者定时生成文本,excel等常 ...

  7. 3Sum Time Limit Exceeded HashMap 优化过程

    昨晚,在做leetcode上的3Sum题目时,感觉这道题目和2Sum很像,当时解决2Sum时,思路如下: 用HashMap的key存储 num[i],value存储下标 i,之后在遍历数组num时,判 ...

  8. luogu P1768 天路 |01分数规划+负环

    题目描述 言归正传,小X的梦中,他在西藏开了一家大型旅游公司,现在,他要为西藏的各个景点设计一组铁路线.但是,小X发现,来旅游的游客都很挑剔,他们乘火车在各个景点间游览,景点的趣味当然是不用说啦,关键 ...

  9. React-native ESLint & Prettier & Pre-commit Hook配置

    目录 前言 一 eslint 1.1. 局部安装eslint 1.2 初始化配置文件 1.3 安装步骤 1.3.1 ESLint 风格 选Use a popular style guide 1.3.2 ...

  10. 用jquery实现楼层滚动对应导航高亮

    html 结构排版: // 定位到页面左侧或者右侧 <div class="nav">         <ul id="menu-list"& ...