您现在的位置是:首页 > 后台技术 > JavaJava
springboot发送邮件(图文)
第十三双眼睛2022-09-12【Java】人已围观
简介springboot发送邮件
本文记录如何利用springboot项目来发送邮件
1首先要找到邮箱授权码
以QQ邮箱为例,登录邮箱以后,点击设置,账户,开启POP3/SMTP服务,点击生成授权码
2新建一个maven项目,导入依赖
在application.properties配置文件中写入以下配置
代码编写:
亲测可以发送成功
1首先要找到邮箱授权码
以QQ邮箱为例,登录邮箱以后,点击设置,账户,开启POP3/SMTP服务,点击生成授权码
2新建一个maven项目,导入依赖
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-mail</artifactId> <version>2.0.1.RELEASE</version> </dependency> |
# 邮件 spring.mail.default-encoding=utf-8 # 配置 SMTP 服务器地址 spring.mail.host=smtp.qq.com #发送方邮件名 spring.mail.username=xxxx@qq.com #授权码 spring.mail.password=xxxxxx |
public class MailRequest implements Serializable { private static final long serialVersionUID = 1L; /** * 接收人 */ private String sendTo; /** * 邮件主题 */ private String subject; /** * 邮件内容 */ private String text; /** * 附件路径 */ private String filePath; } |
public interface SendMailService { /** * 简单文本邮件 * * @param mailRequest * @return */ void sendSimpleMail(MailRequest mailRequest); /** * Html格式邮件,可带附件 * * @param mailRequest * @return */ void sendHtmlMail(MailRequest mailRequest); } |
@Slf4j @Service public class SendMailServiceImpl implements SendMailService { //注入邮件工具类 @Autowired private JavaMailSender javaMailSender; @Value("${spring.mail.username}") private String sendMailer; public void checkMail(MailRequest mailRequest) { Assert.notNull(mailRequest,"邮件请求不能为空"); Assert.notNull(mailRequest.getSendTo(), "邮件收件人不能为空"); Assert.notNull(mailRequest.getSubject(), "邮件主题不能为空"); Assert.notNull(mailRequest.getText(), "邮件收件人不能为空"); } @Override public void sendSimpleMail(MailRequest mailRequest) { SimpleMailMessage message = new SimpleMailMessage(); checkMail(mailRequest); //邮件发件人 message.setFrom(sendMailer); //邮件收件人 1或多个 message.setTo(mailRequest.getSendTo().split(",")); //邮件主题 message.setSubject(mailRequest.getSubject()); //邮件内容 message.setText(mailRequest.getText()); //邮件发送时间 message.setSentDate(new Date()); javaMailSender.send(message); log.info("发送邮件成功:{}->{}",sendMailer,mailRequest.getSendTo()); } @Override public void sendHtmlMail(MailRequest mailRequest) { MimeMessage message = javaMailSender.createMimeMessage(); checkMail(mailRequest); try { MimeMessageHelper helper = new MimeMessageHelper(message,true); //邮件发件人 helper.setFrom(sendMailer); //邮件收件人 1或多个 helper.setTo(mailRequest.getSendTo().split(",")); //邮件主题 helper.setSubject(mailRequest.getSubject()); //邮件内容 helper.setText(mailRequest.getText(),true); //邮件发送时间 helper.setSentDate(new Date()); String filePath = mailRequest.getFilePath(); if (StringUtils.hasText(filePath)) { FileSystemResource file = new FileSystemResource(new File(filePath)); String fileName = filePath.substring(filePath.lastIndexOf(File.separator)); helper.addAttachment(fileName,file); } javaMailSender.send(message); log.info("发送邮件成功:{}->{}",sendMailer,mailRequest.getSendTo()); } catch (MessagingException e) { log.error("发送邮件时发生异常!",e); } } } |
@RestController @RequestMapping("/mail") public class MailController { @Autowired private SendMailService sendMailService; @RequestMapping("sendMail") public String sendMail() { MailRequest request = new MailRequest(); request.setSendTo("xxxxx@qq.com"); request.setSubject("测试发送邮件"); request.setText("测试发送邮件"); sendMailService.sendSimpleMail(request); return "hello world"; } } |
Tags:
很赞哦! ()
上一篇:Java8新特性(图文)
下一篇:返回列表
相关文章
随机图文
封装系统配置参数工具类(图文)
以前记得有一个方法可以把配置文件中的配置信息读取到一个类中,这样在项目里用的时候就会很方便了,但是不记得怎么写了,今天特意找了找资料,记录下来,以后想用的化,直接来这里看就好微服务springcloudalibaba(图文)
阿里云为分布式应用开发提供了一站式解决方案。它包含了开发分布式应用程序所需的所有组件,使您可以轻松地使用springcloud开发应用程序。 - 有了阿里云,你只需要添加一些注解和少量的配置,就可以将Spring云应用连接到阿里的分布式解决方案上,用阿里中间件搭建一个分布式应用系统。JAVA上传文件到SFTP
本节介绍如何通过JAVA代码将文件上传至SFTP服务器HttpClient(图文)
HttpClient使用