使用Spring Boot发送邮件
This commit is contained in:
parent
e51f28ff93
commit
a3c22f3a33
|
|
@ -0,0 +1,70 @@
|
|||
<?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.springboot</groupId>
|
||||
<artifactId>Spring-Boot-Email</artifactId>
|
||||
<version>0.0.1-SNAPSHOT</version>
|
||||
<packaging>jar</packaging>
|
||||
|
||||
<name>Spring-Boot-Email</name>
|
||||
<description>Demo project for Spring Boot</description>
|
||||
|
||||
<parent>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-starter-parent</artifactId>
|
||||
<version>1.5.9.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.7</java.version>
|
||||
<thymeleaf.version>3.0.2.RELEASE</thymeleaf.version>
|
||||
<thymeleaf-layout-dialect.version>2.0.1</thymeleaf-layout-dialect.version>
|
||||
</properties>
|
||||
|
||||
<dependencies>
|
||||
<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>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-starter-mail</artifactId>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-starter-thymeleaf</artifactId>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
|
||||
<repositories>
|
||||
<repository>
|
||||
<id>nexus-aliyun</id>
|
||||
<name>Nexus aliyun</name>
|
||||
<url>http://maven.aliyun.com/nexus/content/groups/public</url>
|
||||
</repository>
|
||||
</repositories>
|
||||
|
||||
<build>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-maven-plugin</artifactId>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
|
||||
|
||||
</project>
|
||||
|
|
@ -0,0 +1,11 @@
|
|||
package com.springboot.demo;
|
||||
|
||||
import org.springframework.boot.SpringApplication;
|
||||
import org.springframework.boot.autoconfigure.SpringBootApplication;
|
||||
|
||||
@SpringBootApplication
|
||||
public class DemoApplication {
|
||||
public static void main(String[] args) {
|
||||
SpringApplication.run(DemoApplication.class, args);
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,130 @@
|
|||
package com.springboot.demo.controller;
|
||||
|
||||
import java.io.File;
|
||||
|
||||
import javax.mail.internet.MimeMessage;
|
||||
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
import org.springframework.core.io.FileSystemResource;
|
||||
import org.springframework.mail.SimpleMailMessage;
|
||||
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 org.thymeleaf.TemplateEngine;
|
||||
import org.thymeleaf.context.Context;
|
||||
|
||||
@RestController
|
||||
@RequestMapping("/email")
|
||||
public class EmailController {
|
||||
|
||||
@Autowired
|
||||
private JavaMailSender jms;
|
||||
|
||||
@Value("${spring.mail.username}")
|
||||
private String from;
|
||||
|
||||
@Autowired
|
||||
private TemplateEngine templateEngine;
|
||||
|
||||
@RequestMapping("sendSimpleEmail")
|
||||
public String sendSimpleEmail() {
|
||||
try {
|
||||
SimpleMailMessage message = new SimpleMailMessage();
|
||||
message.setFrom(from);
|
||||
message.setTo("888888@qq.com"); // 接收地址
|
||||
message.setSubject("一封简单的邮件"); // 标题
|
||||
message.setText("使用Spring Boot发送简单邮件。"); // 内容
|
||||
jms.send(message);
|
||||
return "发送成功";
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
return e.getMessage();
|
||||
}
|
||||
}
|
||||
|
||||
@RequestMapping("sendHtmlEmail")
|
||||
public String sendHtmlEmail() {
|
||||
MimeMessage message = null;
|
||||
try {
|
||||
message = jms.createMimeMessage();
|
||||
MimeMessageHelper helper = new MimeMessageHelper(message, true);
|
||||
helper.setFrom(from);
|
||||
helper.setTo("888888@qq.com"); // 接收地址
|
||||
helper.setSubject("一封HTML格式的邮件"); // 标题
|
||||
// 带HTML格式的内容
|
||||
StringBuffer sb = new StringBuffer("<p style='color:#42b983'>使用Spring Boot发送HTML格式邮件。</p>");
|
||||
helper.setText(sb.toString(), true);
|
||||
jms.send(message);
|
||||
return "发送成功";
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
return e.getMessage();
|
||||
}
|
||||
}
|
||||
|
||||
@RequestMapping("sendAttachmentsMail")
|
||||
public String sendAttachmentsMail() {
|
||||
MimeMessage message = null;
|
||||
try {
|
||||
message = jms.createMimeMessage();
|
||||
MimeMessageHelper helper = new MimeMessageHelper(message, true);
|
||||
helper.setFrom(from);
|
||||
helper.setTo("888888@qq.com"); // 接收地址
|
||||
helper.setSubject("一封带附件的邮件"); // 标题
|
||||
helper.setText("详情参见附件内容!"); // 内容
|
||||
// 传入附件
|
||||
FileSystemResource file = new FileSystemResource(new File("src/main/resources/static/file/项目文档.docx"));
|
||||
helper.addAttachment("项目文档.docx", file);
|
||||
jms.send(message);
|
||||
return "发送成功";
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
return e.getMessage();
|
||||
}
|
||||
}
|
||||
|
||||
@RequestMapping("sendInlineMail")
|
||||
public String sendInlineMail() {
|
||||
MimeMessage message = null;
|
||||
try {
|
||||
message = jms.createMimeMessage();
|
||||
MimeMessageHelper helper = new MimeMessageHelper(message, true);
|
||||
helper.setFrom(from);
|
||||
helper.setTo("888888@qq.com"); // 接收地址
|
||||
helper.setSubject("一封带静态资源的邮件"); // 标题
|
||||
helper.setText("<html><body>博客图:<img src='cid:img'/></body></html>", true); // 内容
|
||||
// 传入附件
|
||||
FileSystemResource file = new FileSystemResource(new File("src/main/resources/static/img/sunshine.png"));
|
||||
helper.addInline("img", file);
|
||||
jms.send(message);
|
||||
return "发送成功";
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
return e.getMessage();
|
||||
}
|
||||
}
|
||||
|
||||
@RequestMapping("sendTemplateEmail")
|
||||
public String sendTemplateEmail(String code) {
|
||||
MimeMessage message = null;
|
||||
try {
|
||||
message = jms.createMimeMessage();
|
||||
MimeMessageHelper helper = new MimeMessageHelper(message, true);
|
||||
helper.setFrom(from);
|
||||
helper.setTo("888888@qq.com"); // 接收地址
|
||||
helper.setSubject("邮件摸板测试"); // 标题
|
||||
// 处理邮件模板
|
||||
Context context = new Context();
|
||||
context.setVariable("code", code);
|
||||
String template = templateEngine.process("emailTemplate", context);
|
||||
helper.setText(template, true);
|
||||
jms.send(message);
|
||||
return "发送成功";
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
return e.getMessage();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,15 @@
|
|||
server:
|
||||
port: 80
|
||||
|
||||
spring:
|
||||
mail:
|
||||
host: smtp.163.com
|
||||
username: xxxx@163.com
|
||||
password: xxxx
|
||||
properties:
|
||||
mail:
|
||||
smtp:
|
||||
auth: true
|
||||
starttls:
|
||||
enable: true
|
||||
required: true
|
||||
Binary file not shown.
Binary file not shown.
|
After Width: | Height: | Size: 124 KiB |
|
|
@ -0,0 +1,10 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="zh" xmlns:th="http://www.thymeleaf.org">
|
||||
<head>
|
||||
<meta charset="UTF-8" />
|
||||
<title>模板</title>
|
||||
</head>
|
||||
<body>
|
||||
您好,您的验证码为<span th:text="${code}"></span>,请在两分钟内使用完成操作。
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -0,0 +1,16 @@
|
|||
package com.springboot.demo;
|
||||
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.springframework.boot.test.context.SpringBootTest;
|
||||
import org.springframework.test.context.junit4.SpringRunner;
|
||||
|
||||
@RunWith(SpringRunner.class)
|
||||
@SpringBootTest
|
||||
public class DemoApplicationTests {
|
||||
|
||||
@Test
|
||||
public void contextLoads() {
|
||||
}
|
||||
|
||||
}
|
||||
Loading…
Reference in New Issue