1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > java-springboot整合发送邮件|告警邮件|注册邮件

java-springboot整合发送邮件|告警邮件|注册邮件

时间:2019-05-25 20:11:00

相关推荐

java-springboot整合发送邮件|告警邮件|注册邮件

一、基础知识

邮件传输协议:

SMTP协议(简单邮件传输协议,属于TCP/IP协议簇,应用层协议)POP3协议(邮局协议版本3,是TCP/IP协议族中的一员,本协议主要用于支持使用客户端远程管理在服务器上的电子邮件。提供了SSL加密的POP3协议被称为POP3S)IMAP协议(邮件客户端(可以通过这种协议从邮件服务器上获取邮件的信息,下载邮件等它与POP3协议的主要区别是用户可以不用把所有的邮件全部下载,可以通过客户端直接对服务器上的邮件进行操作。 )Mime协议

发送流程:

springboot

请自行参考其他博客

二、项目起步

1.使用maven创建springboot项目/注册邮箱开通pop3stmp

2.添加,导入主要依赖

<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-mail</artifactId></dependency>

3.添加相关配置参数application

spring.mail.host=spring.mail.username=********@#注意:需要126开通授权码服务填入下面spring.mail.password=*****spring.mail.default-encoding=UTF-8

4.发送邮件服务示例

import com.honghe.managerTool.service.SendMailService;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.MessagingException;import javax.mail.internet.MimeMessage;import java.io.File;/*** @author: zhaojianyu* @create: -09-10 10:43**/@Servicepublic class SendMailServiceImpl implements SendMailService{@Value("${spring.mail.username}")private String whoAmI;@Autowiredprivate JavaMailSender mailSender;/*** 发送简单邮件* @param to 发送给谁* @param subject 邮件主题* @param content 邮件内容*/@Overridepublic void sendSimpleMail(String to, String subject, String content) {SimpleMailMessage message = new SimpleMailMessage();message.setTo(to);message.setSubject(subject);message.setText(content);message.setFrom(whoAmI);mailSender.send(message);}/*** 发送html邮件* @param to* @param subject* @param content*/@Overridepublic void sendHtmlMail(String to, String subject, String content) {MimeMessage message = mailSender.createMimeMessage();try {MimeMessageHelper helper = new MimeMessageHelper(message,true);helper.setTo(to);helper.setFrom(whoAmI);helper.setSubject(subject);helper.setText(content,true);mailSender.send(message);} catch (MessagingException e) {e.printStackTrace();}}/*** 发送附件邮件* @param to* @param subject* @param content* @param filePath*/@Overridepublic void sendAttachmentsMail(String to, String subject, String content, String filePath) {MimeMessage message = mailSender.createMimeMessage();MimeMessageHelper helper = null;try {helper = new MimeMessageHelper(message,true);helper.setTo(to);helper.setFrom(whoAmI);helper.setSubject(subject);helper.setText(content,true);FileSystemResource file = new FileSystemResource(new File(filePath));String fileName = file.getFilename();//此处可以添加多个附件 zjy0910helper.addAttachment(fileName,file);mailSender.send(message);} catch (MessagingException e) {e.printStackTrace();}}/*** 发送图片邮件* @param to* @param subject* @param content* @param rscPath 图片路径* @param rscId*/@Overridepublic void sendInlinResourceMail(String to, String subject, String content,String rscPath, String rscId) {MimeMessage message = mailSender.createMimeMessage();try {MimeMessageHelper helper = new MimeMessageHelper(message, true);helper.setTo(to);helper.setFrom(whoAmI);helper.setSubject(subject);helper.setText(content,true);//可以添加多个图片FileSystemResource res = new FileSystemResource(new File(rscPath));helper.addInline(rscId,res);mailSender.send(message);} catch (MessagingException e) {e.printStackTrace();}}}

使用方法

//发送简单邮件sendMailService.sendSimpleMail("ai10*****32@","标题","内容");//发送html邮件String content = "<html>\n" +"<body>\n"+"<h2>html邮件内容</h2><br><marquee>火车开走了□□□□□□□o0O```</marquee>\n"+"</body></html>";sendMailService.sendHtmlMail("1******6@","给你的",content);//发送附件邮件示例sendMailService.sendAttachmentsMail("117***86@","给你的",content,"C:\\Users\\Administrator\\Pictures\\999.jpg");//发送图片邮件示例String resId ="id001";String content = "<html>\n" +"<body><h2>html邮件内容</h2><br><img src=\'cid:"+resId+"\'></img></body>" +"</html>";//发图片邮件sendMailService.sendInlinResourceMail("ai*****2@","标题",content,"C:\\Users\\Administrator\\Pictures\\\\999.jpg",resId);

常见异常处理

javax.mail.AuthenticationFailedException: 535 authentication failed

邮件模板

1.添加依赖

<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-thymeleaf</artifactId></dependency>

2.创建模板邮件内容,文件名 ,文件目录如下

3.html文件编写(采用thymeleaf)

<!DOCTYPE html><html lang="en" xmlns:th=""><head><meta charset="UTF-8"><title>告警邮件</title></head><body>您好,您的服务器磁盘或内存达到危险值,请检查服务器内存和磁盘情况!<br><a href="#" th:href="@{/}">进入查看</a><a href="#" th:href="@{/{id}(id=${id})}">进入查看2</a></body></html>

4.服务层编写(采用发送html邮件的方法)

/*** 发送html邮件* @param to* @param subject* @param content*/@Overridepublic void sendHtmlMail(String to, String subject, String content) {MimeMessage message = mailSender.createMimeMessage();try {MimeMessageHelper helper = new MimeMessageHelper(message,true);helper.setTo(to);helper.setFrom(whoAmI);helper.setSubject(subject);helper.setText(content,true);mailSender.send(message);} catch (MessagingException e) {e.printStackTrace();}}

5.控制层代码展示

import org.thymeleaf.TemplateEngine;import org.thymeleaf.context.Context;{@Autowiredprivate SendMailService sendMailService;@Autowired//注入模板引擎private TemplateEngine templateEngine;@RequestMapping("/test")public Object test(){Context context = new Context();//给模板html内注入值context.setVariable("id","006");//获取html内容String emailContent = templateEngine.process("emailTemplate",context);//发送邮件sendMailService.sendHtmlMail("ai******332@","模板邮件-邮件主题",emailContent);return "ok";}}

666666.成果展示

与本文类似的相关参考

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。