文章目錄- 一、簡介
- 二、郵箱服務(wù)授權(quán)配置
- 二、pom.xml依賴
- 三、properties配置文件
- 四、發(fā)送普通郵件
- 二、發(fā)送Html格式郵件
- 三、發(fā)送Html帶圖片郵件
- 1、Web層代碼
- 2、Service層代碼
- 3、封裝圖片路徑的實體類
- 四、發(fā)送帶附件郵件
- 八、完整代碼
一、簡介
要在網(wǎng)絡(luò)上實現(xiàn)郵件功能,必須要有專門的郵件服務(wù)器。這些郵件服務(wù)器類似于現(xiàn)實生活中的郵局,它主要負責接收用戶投遞過來的郵件,并把郵件投遞到郵件接收者的電子郵箱中。
SMTP服務(wù)器地址:
一般是 smtp.xxx.com,比如163郵箱是smtp.163.com,qq郵箱是smtp.qq.com。
SMTP協(xié)議:
通常把處理用戶smtp請求(郵件發(fā)送請求)的服務(wù)器稱之為SMTP服務(wù)器(郵件發(fā)送服務(wù)器)。

POP3協(xié)議:
通常把處理用戶pop3請求(郵件接收請求)的服務(wù)器稱之為POP3服務(wù)器(郵件接收服務(wù)器)。
二、郵箱服務(wù)授權(quán)配置
163郵箱在:設(shè)置—POP3中,打開相應(yīng)的配置屬性;
QQ郵箱:設(shè)置—賬戶安全中,打開相應(yīng)的配置信息;
二、pom.xml依賴
<!--郵件服務(wù)-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId>
</dependency>
<dependency>
<groupId>commons-net</groupId>
<artifactId>commons-net</artifactId>
<version>3.3</version>
</dependency>
三、properties配置文件
#郵箱的賬號(163郵箱)
spring.mail.host= smtp.163.com
spring.mail.username=comlydms@163.com
spring.mail.password=158143484fs
spring.mail.properties.mail.smtp.auth=true
spring.mail.properties.mail.starttls.enable=true
spring.mail.properties.mail.starttls.required=true
四、發(fā)送普通郵件
1、web層代碼
@RequestMapping(value = "/simpleEmail", method = {RequestMethod.POST})
public ApiResult sendSimpleEmail() {
mailService.sendSimpleMail("395096666@qq.com", "這是一個測試郵件", "這是一個測試郵件");
return ApiResult.succ("調(diào)用成功");
}
2、Service代碼
private final Logger logger = LoggerFactory.getLogger(this.getClass());
@Autowired
private JavaMailSender sender;
@Value("${spring.mail.username}")
private String fromMail;
public void sendSimpleMail(String toMail, String subject, String content) {
SimpleMailMessage simpleMailMessage = new SimpleMailMessage();
simpleMailMessage.setFrom(fromMail);
simpleMailMessage.setTo(toMail);
simpleMailMessage.setSubject(subject);
simpleMailMessage.setText(content);
try {
sender.send(simpleMailMessage);
logger.info("發(fā)送給:{}簡單郵件已經(jīng)發(fā)送。 subject:{}", toMail, subject);
} catch (Exception e) {
logger.info("發(fā)送給:{}send mail error subject:{}", toMail, subject);
e.printStackTrace();
}
}
二、發(fā)送Html格式郵件
1、Web層代碼
@RequestMapping(value = "/htmlEmail", method = {RequestMethod.POST})
public ApiResult sendHtmlEmail() {
English english = new English();
english.setEnglish("my");
english.setChinese("我的");
english.setCodechinese("自己的東西");
ArrayList<English> en = new ArrayList<>();
en.add(english);
en.add(english);
String start = "<!DOCTYPE html><html><head><meta charset=\"utf-8\"><title></title></head><body><font color=\"red\">定時發(fā)送</font><table border=\"1\"><tr><th>英文</th><th>標準注解</th><th>代碼中注解</th></tr>";
String prime = "";
for (int i = 0; i < en.size(); i++) {
English english1 = en.get(i);
String center = "<tr><td>English</td><td>Chinese</td><td>CodeChinese</td></tr>";
String one = center.replaceFirst("English", english1.getEnglish());
String two = one.replaceFirst("Chinese", english1.getChinese());
String result = two.replaceFirst("CodeChinese", english1.getCodechinese());
prime = prime + result;
}
String end = "</table></body></html>";
String html = start + prime + end;
mailService.sendHtmlMail("395096666@qq.com", "定時郵件發(fā)送", html);
return ApiResult.succ("調(diào)用成功");
}
2、Service代碼
private final Logger logger = LoggerFactory.getLogger(this.getClass());
@Autowired
private JavaMailSender sender;
@Value("${spring.mail.username}")
private String fromMail;
public void sendHtmlMail(String toMail, String subject, String content) {
MimeMessage mimeMessage = sender.createMimeMessage();
try {
MimeMessageHelper mimeMessageHelper = new MimeMessageHelper(mimeMessage, true);
mimeMessageHelper.setTo(toMail);
mimeMessageHelper.setFrom(fromMail);
mimeMessageHelper.setText(content, true);
mimeMessageHelper.setSubject(subject);
sender.send(mimeMessage);
logger.info("發(fā)送給:{}html郵件已經(jīng)發(fā)送。 subject:{}", toMail, subject);
} catch (Exception e) {
logger.info("發(fā)送給:{}html send mail error subject:{}", toMail, subject);
e.printStackTrace();
}
}
三、發(fā)送Html帶圖片郵件
1、Web層代碼
@RequestMapping(value = "/htmlPotoEmail", method = {RequestMethod.POST})
public ApiResult sendHtmlPoto() {
String html = "<!DOCTYPE html>\r\n" +
"<html>\r\n" +
"<head>\r\n" +
"<meta charset=\"UTF-8\">\r\n" +
"<title>Insert title here</title>" +
"\r\n" +
"</head>\r\n" +
"<body>\r\n" +
"<img src=\"cid:image1\"/> " +
"<img src=\"cid:image2\"/> " +
" <font color=\"red\">發(fā)送html</font>\r\n" +
"</body>\r\n" +
"</html>";
List<InlineResource> list = new ArrayList<>();
String path = WordSmsController.class.getClassLoader().getResource("image.jpg").getPath();
InlineResource resource = new InlineResource("image1", path);
InlineResource resource2 = new InlineResource("image2", path);
list.add(resource2);
list.add(resource);
mailService.sendHtmlPhotoMail("395096666@qq.com", "這是一個測試郵件", html, list);
return ApiResult.succ("調(diào)用成功");
}
2、Service層代碼
private final Logger logger = LoggerFactory.getLogger(this.getClass());
@Autowired
private JavaMailSender sender;
@Value("${spring.mail.username}")
private String fromMail;
public void sendHtmlPhotoMail(String to, String subject, String content, List<InlineResource> resourceist) {
MimeMessage me
|