您的位置:首页 > 编程语言 > Java开发

【系统学习SpringBoot】SpringBoot初遇邮件服务

2017-09-14 17:53 549 查看
本篇博客主要记录博主学习SpringBoot邮件服务,主要内容有

【如何发送简单邮件】【发送html格式邮件】【发送带附件的邮件】【发送代图片的邮件】

一、SpringBoot配置邮件服务

【1】添加依赖

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


【2】添加配置

spring:
mail:
host: smtp.exmail.qq.com//腾讯的邮箱发送地址,【网易】的““mtp.qiye.163.com”
username: *****@zslstudy.cn//博主使用的是腾讯企业邮箱,邮箱
password: *********//这个是授权码不是登陆密码
default-encoding: UTF-8


配置就这这两步,,下面详细说一下,,这个授权码的问题

【网易邮箱】,可以通过如下图获取授权码(博主试了,居然每次都设置失败,好伤心)



【腾讯企业邮箱】可通过如下方式获取授权码(亲测可用,很完美)





【qq邮箱】和腾讯企业邮箱差得有点远,,题主测了几次都不给力

生成方式和企业的类似,,下面是官方的教程(博主测了,没卵用,有兴趣的可以自己测一下,可能是博主哪里没设置好)

http://service.mail.qq.com/cgi-bin/help?subtype=1&&no=1001256&&id=28


二、SpringBoot发送邮件

博主为了测试方便直接卸载Controller里了如下:

【发送简单邮件】

@RequestMapping("sendmail")
public String sendMail() {
try {
MimeMessage mimeMessage = this.mailSender.createMimeMessage();
MimeMessageHelper message = new MimeMessageHelper(mimeMessage);
message.setFrom("小鼠标@zslstudy.cn");
message.setTo("********@163.com");
message.setSubject("简单文本");
message.setText("测试邮件内容,,<h1>简单文本</h1>");

this.mailSender.send(mimeMessage);

} catch (MessagingException e) {
e.printStackTrace();
}
return "send success";
}


【发送html格式邮件】

@RequestMapping("sendmail_html")
public String sendMailHtml() {
try {
MimeMessage mimeMessage = this.mailSender.createMimeMessage();
MimeMessageHelper message = new MimeMessageHelper(mimeMessage);
message.setFrom("小鼠标@zslstudy.cn");
message.setTo("********@163.com");
message.setSubject("带Html的邮件");
message.setText("测试邮件内容<br/><hr/><br/><h2>带html</h2>", true);

this.mailSender.send(mimeMessage);

} catch (MessagingException e) {
e.printStackTrace();
}
return "send success";
}


【发送带附件的邮件】

@RequestMapping("sendmail_attachment")
public String sendMailAttachment() {
try {
MimeMessage mimeMessage = this.mailSender.createMimeMessage();
MimeMessageHelper message = new MimeMessageHelper(mimeMessage, true);
message.setFrom("小鼠标@zslstudy.cn");
message.setTo("********@163.com");
message.setSubject("带附件的邮件");
message.setText("测试邮件内容", true);

//添加附件
FileSystemResource file = new FileSystemResource(new File("src/main/resources/static/测试"));
message.addAttachment("测试", file);
this.mailSender.send(mimeMessage);
} catch (MessagingException e) {
e.printStackTrace();
}
return "send success";
}


【发送代图片的邮件】

@RequestMapping("sendmail_img")
public String sendMailImg() {
try {
MimeMessage mimeMessage = this.mailSender.createMimeMessage();
MimeMessageHelper message = new MimeMessageHelper(mimeMessage, true);
message.setFrom("小鼠标@zslstudy.cn");
message.setTo("********@163.com");
message.setSubject("带图片的邮件");
message.setText("测试带图片的邮件发送");

FileSystemResource res = new FileSystemResource(new File("src/main/resources/static/6.jpg"));
message.addInline("2", res);//感觉不去作用,非要使用内镶图片的话,,感觉html格式的可以实现
this.mailSender.send(mimeMessage);

} catch (MessagingException e) {
e.printStackTrace();
}
return "send success";
}


完整代码如下

package xatu.zsl.controller;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.core.io.FileSystemResource;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.mail.javamail.MimeMessageHelper;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import javax.mail.MessagingException;
import javax.mail.internet.MimeMessage;
import java.io.File;

/**
* Created by zsl on 2017/9/14.
*/
@RestController
public class MailController {
@Autowired
JavaMailSender mailSender;//可能会报错,,屏蔽掉就行了

@RequestMapping("sendmail")
public String sendMail() {
try {
MimeMessage mimeMessage = this.mailSender.createMimeMessage();
MimeMessageHelper message = new MimeMessageHelper(mimeMessage);
message.setFrom("小鼠标@zslstudy.cn");
message.setTo("********@163.com");
message.setSubject("简单文本");
message.setText("测试邮件内容,,<h1>简单文本</h1>");

this.mailSender.send(mimeMessage);

} catch (MessagingException e) {
e.printStackTrace();
}
return "send success";
}

@RequestMapping("sendmail_html")
public String sendMailHtml() {
try {
MimeMessage mimeMessage = this.mailSender.createMimeMessage();
MimeMessageHelper message = new MimeMessageHelper(mimeMessage);
message.setFrom("小鼠标@zslstudy.cn");
message.setTo("********@163.com");
message.setSubject("带Html的邮件");
message.setText("测试邮件内容<br/><hr/><br/><h2>带html</h2>", true);

this.mailSender.send(mimeMessage);

} catch (MessagingException e) {
e.printStackTrace();
}
return "send success";
}

@RequestMapping("sendmail_attachment")
public String sendMailAttachment() {
try {
MimeMessage mimeMessage = this.mailSender.createMimeMessage();
MimeMessageHelper message = new MimeMessageHelper(mimeMessage, true);
message.setFrom("小鼠标@zslstudy.cn");
message.setTo("********@163.com");
message.setSubject("带附件的邮件");
message.setText("测试邮件内容", true);

//添加附件
FileSystemResource file = new FileSystemResource(new File("src/main/resources/static/测试"));
message.addAttachment("测试", file);
this.mailSender.send(mimeMessage);
} catch (MessagingException e) {
e.printStackTrace();
}
return "send success";
}

@RequestMapping("sendmail_img")
public String sendMailImg() {
try {
MimeMessage mimeMessage = this.mailSender.createMimeMessage();
MimeMessageHelper message = new MimeMessageHelper(mimeMessage, true);
message.setFrom("小鼠标@zslstudy.cn");
message.setTo("********@163.com");
message.setSubject("带图片的邮件");
message.setText("带图片的邮件发送");

FileSystemResource res = new FileSystemResource(new File("src/main/resources/static/6.jpg"));
message.addInline("2", res);//感觉不去作用,非要使用内镶图片的话,,感觉html格式的可以实现
this.mailSender.send(mimeMessage);

} catch (MessagingException e) {
e.printStackTrace();
}
return "send success";
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息