本篇博客主要记录博主学习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";
}
}