版权声明:如需转载,请备注出处 https://blog.csdn.net/u013783065/article/details/81565044
在我们开发过程中,我们总是会遇到需要发送邮件的时候,所以我在这里总结了一些常用的发送邮件的方法。
创建工程:
完整pom如下:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.wujie</groupId>
<artifactId>springboot-jms</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<name>springboot-jms</name>
<description>Demo project for Spring Boot</description>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.4.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
添加配置:
这里我使用qq邮箱进行测试,下方的密码是需要使用qq独有的授权码,关于怎么获取授权码请移步:qq邮箱授权码获取
server:
port: 80
spring:
mail:
host: smtp.qq.com
username: [email protected]
password: 使用自己的邮箱密码
default-encoding: UTF-8
protocol: smtp
新建邮件发送工具类:
@Component
public class JavaMailUtil {
@Autowired
private JavaMailSenderImpl javaMailSender;
/**
* 发送简单文本邮件
* @param title
* @param content
* @param from
* @param to
* @return
*/
public String sendTxtMail(String title,String content,String from,String[] to){
SimpleMailMessage simpleMailMessage = new SimpleMailMessage();
simpleMailMessage.setTo(to);
simpleMailMessage.setFrom(from);
simpleMailMessage.setSubject(title);
simpleMailMessage.setText(content);
javaMailSender.send(simpleMailMessage);
System.out.println("邮件已经发送");
return "邮件已经发送";
}
/**
* 发送html
* @param title
* @param content
* @param from
* @param to
* @return
*/
public String sendHtmlMail(String title,String content,String from,String[] to){
MimeMessage mimeMailMessage = javaMailSender.createMimeMessage();
MimeMessageHelper mimeMessageHelper = new MimeMessageHelper(mimeMailMessage);
try {
mimeMessageHelper.setTo(to);
mimeMessageHelper.setFrom(from);
mimeMessageHelper.setSubject(title);
StringBuilder sb = new StringBuilder();
sb.append("<html><head></head>");
sb.append("<body><h1>spring 邮件测试</h1><p>hello ! spring mail</p>");
sb.append("<span style='color:red'>test</span></html>");
mimeMessageHelper.setText(sb.toString(),true);
javaMailSender.send(mimeMailMessage);
System.out.println("邮件发送成功");
return "邮件发送成功";
} catch (MessagingException e) {
e.printStackTrace();
}
return "";
}
/**
* 发送图片
* @param title
* @param content
* @param from
* @param to
* @return
*/
public String sendAttachedImageMail(String title,String content,String from,String[] to){
try {
MimeMessage mimeMailMessage = javaMailSender.createMimeMessage();
MimeMessageHelper mimeMessageHelper = new MimeMessageHelper(mimeMailMessage,true);
mimeMessageHelper.setTo(to);
mimeMessageHelper.setFrom(from);
mimeMessageHelper.setSubject(title);
StringBuilder sb = new StringBuilder();
sb.append("<html><head></head>");
sb.append("<body><h1>spring 邮件测试</h1><p>hello ! spring mail</p>");
sb.append("<span style=\"color:red\">test</span>");
sb.append("<img src=\"cid:imageId\"/>");
sb.append("</html>");
mimeMessageHelper.setText(sb.toString(),true);
FileSystemResource img = new FileSystemResource(new File("E:/1.png"));
mimeMessageHelper.addInline("imageId",img);
javaMailSender.send(mimeMailMessage);
System.out.println("邮件发送成功");
return "邮件发送成功";
} catch (MessagingException e) {
e.printStackTrace();
}
return "";
}
/**
* 发送附件
* @param title
* @param content
* @param from
* @param to
* @return
*/
public String sendAttendedFileMail(String title,String content,String from,String[] to){
try {
MimeMessage mimeMailMessage = javaMailSender.createMimeMessage();
MimeMessageHelper mimeMessageHelper = new MimeMessageHelper(mimeMailMessage,true);
mimeMessageHelper.setTo(to);
mimeMessageHelper.setFrom(from);
mimeMessageHelper.setSubject(title);
StringBuilder sb = new StringBuilder();
sb.append("<html><head></head>");
sb.append("<body><h1>spring 邮件测试</h1><p>hello ! spring mail</p>");
sb.append("<span style=\"color:red\">test</span>");
sb.append("<img src=\"cid:imageId\"/>");
sb.append("</html>");
mimeMessageHelper.setText(sb.toString(),true);
FileSystemResource img = new FileSystemResource(new File("E:/1.png"));
mimeMessageHelper.addInline("imageId",img);
mimeMessageHelper.addAttachment("imageId.png",img);
javaMailSender.send(mimeMailMessage);
System.out.println("邮件发送成功");
return "邮件发送成功";
} catch (MessagingException e) {
e.printStackTrace();
}
return "";
}
}
新建一个controller:
@RestController
@RequestMapping("mail")
public class JavaMailController {
@Autowired
private JavaMailUtil javaMailUtil;
@RequestMapping("sendTxt")
public String sendTxt(String title,String content,String from,String[] to ){
String sendTxtMail = javaMailUtil.sendTxtMail(title, content, from, to);
return sendTxtMail;
}
@RequestMapping("sendHtml")
public String sendHtml(String title,String content,String from,String[] to ){
String sendHtmlMail = javaMailUtil.sendHtmlMail(title, content, from, to);
return sendHtmlMail;
}
@RequestMapping("sendImg")
public String sendImg(String title,String content,String from,String[] to ){
String sendAttachedImageMail = javaMailUtil.sendAttachedImageMail(title, content, from, to);
return sendAttachedImageMail;
}
@RequestMapping("sendFile")
public String sendFile(String title,String content,String from,String[] to ){
String sendAttendedFileMail = javaMailUtil.sendAttendedFileMail(title, content, from, to);
return sendAttendedFileMail;
}
}
以上方法经测试过,没有问题。入遇到问题可以关注我的公众号。我们一起解决。