前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Spring Boot 2.X(十三):邮件服务

Spring Boot 2.X(十三):邮件服务

原创
作者头像
朝雾轻寒
修改2019-10-31 16:38:17
3580
修改2019-10-31 16:38:17
举报

前言

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

准备

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

邮件服务实现

1.添加依赖

代码语言:txt
复制
<!-- 启用邮箱 -->
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-mail</artifactId>
		</dependency>

2.配置文件

代码语言:txt
复制
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.实现示例

代码语言:txt
复制
@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 用于测试

代码语言:txt
复制
@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

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 准备
  • 邮件服务实现
    • 1.添加依赖
      • 2.配置文件
        • 3.实现示例
          • 4.Controller 用于测试
            • 5.测试效果
            • 示例代码
            相关产品与服务
            邮件推送
            邮件推送(Simple Email Service,SES)是一款基于腾讯云端的平台化服务, 为企业提供安全稳定、简单快速、精准高效的营销、通知和事务邮件的推送服务。产品提供灵活的 IP 部署、电子邮件身份验证以及企业专属定制的启动计划,以保护发件人声誉,同时提供精准智能的数据分析。产品的服务范围覆盖200+国家/地区,可即时触达全球各地的邮箱地址。
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档