本文演示SpringBoot整合Mail,并演示邮件发送。
一、项目搭建
新建一个SpringBoot项目,引入依赖:
<properties>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!--mail配置-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId>
</dependency>
<!--swagger配置-->
<dependency>
<groupId>com.spring4all</groupId>
<artifactId>swagger-spring-boot-starter</artifactId>
<version>1.8.0.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-validation</artifactId>
</dependency>
</dependencies>
二、配置文件
配置项目端口号及邮件信息:
server:
port: 8989
spring:
mail:
host: smtp.163.com
username: ******@163.com
password: ******
说明:username为发送者邮件地址,password为授权码,可在邮箱客户端设置选项中配置。
三、Swagger配置类
@Configuration
@EnableSwagger2
public class Swagger2Configure {
/**
* API及扫描配置
* @return
*/
@Bean
public Docket createRestApi() {
return new Docket(DocumentationType.SWAGGER_2).apiInfo(apiInfo()).select()
.apis(RequestHandlerSelectors.basePackage("com.example.mail.controller"))
.paths(PathSelectors.any()).build();
}
/**
* 展示信息
* @return
*/
private ApiInfo apiInfo() {
return new ApiInfoBuilder().title("api文档")
.version("1.0").build();
}
}
四、编码实现
①编写Controller类及测试请求方法:
@Api(tags = "demo测试")
@RestController
@RequestMapping("/")
public class MailController {
private final JavaMailSender mailSender;
@Value("${spring.mail.username}")
private String sender;
public MailController(JavaMailSender mailSender) {
this.mailSender = mailSender;
}
@ApiOperation("发送邮件")
@PostMapping(value = "sendMsg")
public String sendSimpleMsg(String msg, String receiver) {
try {
SimpleMailMessage mail = new SimpleMailMessage();
mail.setFrom(sender);
mail.setTo(receiver);
mail.setSubject("MyTest");
mail.setText(msg);
mailSender.send(mail);
return "发送成功";
} catch (Exception ex) {
ex.printStackTrace();
return "发送失败:" + ex.getMessage();
}
}
}
②启动类
@SpringBootApplication
public class MailApplication {
public static void main(String[] args) {
SpringApplication.run(MailApplication.class, args);
}
}
③启动项目并访问http://localhost:8989/swagger-ui.html:
查看接收邮件:
测试验证OK。