1、环境约束
- win10 64位操作系统
- idea2018.1.5
- maven-3.0.5
- jdk-8u162-windows-x64
2、前提约束
3、操作步骤
#邮箱服务器地址,163:smtp.163.com;126:smtp.126.com ;qq:smtp.qq.com
spring.mail.host=smtp.163.com
#用户名
spring.mail.username=langli2049@163.com
#开启POP3之后设置的客户端授权码,注意这不是密码,是在登录邮箱管理界面之后获取的授权码
spring.mail.password=IOINRNXXXXXCYDGQ
spring.mail.default-encoding=UTF-8
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId>
</dependency>
- 在主启动类统计目录下创建MailService.java
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.stereotype.Service;
import javax.mail.internet.MimeMessage;
import java.io.File;
import java.util.Map;
@Service
public class MailService {
@Autowired
private JavaMailSender mailSender;
@Value("${spring.mail.username}")
private String sender;
/**
* 发送普通邮件
*/
public void sendSimpleMailMessge(String to, String subject, String content) throws Exception {
SimpleMailMessage message = new SimpleMailMessage();
message.setFrom(sender);
message.setTo(to);
message.setSubject(subject);
message.setText(content);
mailSender.send(message);
}
/**
* 发送 HTML 邮件
*/
public void sendMimeMessge(String to, String subject, String content) throws Exception {
MimeMessage message = mailSender.createMimeMessage();
//true表示需要创建一个multipart message
MimeMessageHelper helper = new MimeMessageHelper(message, true);
helper.setFrom(sender);
helper.setTo(to);
helper.setSubject(subject);
helper.setText(content, true);
mailSender.send(message);
}
/**
* 发送带附件的邮件
*/
public void sendMimeMessge(String to, String subject, String content, String filePath) throws Exception {
MimeMessage message = mailSender.createMimeMessage();
//true表示需要创建一个multipart message
MimeMessageHelper helper = new MimeMessageHelper(message, true);
helper.setFrom(sender);
helper.setTo(to);
helper.setSubject(subject);
helper.setText(content, true);
FileSystemResource file = new FileSystemResource(new File(filePath));
String fileName = file.getFilename();
helper.addAttachment(fileName, file);
mailSender.send(message);
}
/**
* 发送带多个静态文件的邮件
*/
public void sendMimeMessge(String to, String subject, String content, Map<String, String> rscIdMap) throws Exception {
MimeMessage message = mailSender.createMimeMessage();
//true表示需要创建一个multipart message
MimeMessageHelper helper = new MimeMessageHelper(message, true);
helper.setFrom(sender);
helper.setTo(to);
helper.setSubject(subject);
helper.setText(content, true);
for (Map.Entry<String, String> entry : rscIdMap.entrySet()) {
FileSystemResource file = new FileSystemResource(new File(entry.getValue()));
helper.addInline(entry.getKey(), file);
}
mailSender.send(message);
}
}
- 在主启动类同级目录下创建MailController.java
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
@RestController
public class MailController {
@Resource
MailService mailService;
@GetMapping("/sendemail")
public String send1() throws Exception {
mailService.sendSimpleMailMessge("langli2049@163.com", "hello", "ceshi");
return "ok";
}
@GetMapping("/sendhtmlemail")
public String send2() throws Exception {
mailService.sendMimeMessge("langli2049@163.com", "hello", "<html><h1>1234</h1></html>");
return "ok";
}
@GetMapping("/sendhfilemail")
public String send3() throws Exception {
mailService.sendMimeMessge("langli2049@163.com", "hello", "<html><h1>1234</h1></html>", "D:\\logback.log");
return "ok";
}
}
网友评论