参考资料:
https://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-email.html
https://docs.spring.io/spring/docs/5.0.11.RELEASE/spring-framework-reference/integration.html#mail
http://www.ityouknow.com/springboot/2017/05/06/springboot-mail.html
import java.util.Collection; import javax.mail.MessagingException; /** * @ClassName: MailService * @author kanpiaoxue * @version 1.0 * @CreateTime: 2018/11/30 11:39:16 * @Description: 邮件服务类接口 */ public interface MailService { /** * * @param to * 邮件接收人列表,如:hello@163.com * @param subject * 邮件标题 * @param content * 邮件内容。支持HTML * @param filePath * 附件地址列表 * @throws MessagingException * @author kanpiaoxue * @CreateTime: 2018/11/30 14:21:10 * @Description: 发送带有附件的邮件 */ void sendAttachmentsMail(Collection<String> to, String subject, String content, Collection<String> filePaths) throws MessagingException; /** * * @param to * 邮件接收人列表,如:hello@163.com * @param subject * 邮件标题 * @param content * 邮件内容。支持HTML * @throws MessagingException * @author kanpiaoxue * @CreateTime: 2018/11/30 14:21:08 * @Description: 发送邮件 */ void sendEmail(Collection<String> to, String subject, String content) throws MessagingException; }
import org.apache.commons.collections.CollectionUtils; import org.apache.commons.lang3.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.core.io.FileSystemResource; import org.springframework.mail.javamail.JavaMailSender; import org.springframework.mail.javamail.MimeMessageHelper; import org.springframework.stereotype.Service; import com.google.common.base.Stopwatch; import java.io.File; import java.util.Collection; import javax.mail.MessagingException; import javax.mail.internet.MimeMessage; /** * @ClassName: MailServiceImpl * @author kanpiaoxue * @version 1.0 * @CreateTime: 2018/11/30 11:41:02 * @Description: 邮件服务实现类 */ @Service public class MailServiceImpl implements MailService { private static final Logger LOGGER = LoggerFactory.getLogger(MailServiceImpl.class); @Value("${email.from:hello@163.com}") private String from; @Autowired private JavaMailSender mailSender; @Override public void sendAttachmentsMail(Collection<String> to, String subject, String content, Collection<String> filePaths) throws MessagingException { LOGGER.info("start to sendAttachmentsMail. to:{},subject:{},content:{},filePaths:{}", to, subject, content, filePaths); sendAttachmentsMail(to.toArray(new String[] {}), subject, content, filePaths); } @Override public void sendEmail(Collection<String> to, String subject, String content) throws MessagingException { LOGGER.info("start to sendEmail. to:{},subject:{},content:{}", to, subject, content); sendAttachmentsMail(to.toArray(new String[] {}), subject, content, null); } private void sendAttachmentsMail(String[] to, String subject, String content, Collection<String> filePaths) throws MessagingException { Stopwatch sw = Stopwatch.createStarted(); MimeMessage message = mailSender.createMimeMessage(); MimeMessageHelper helper = new MimeMessageHelper(message, true); helper.setFrom(from); helper.setTo(to); helper.setSubject(StringUtils.isNotBlank(subject) ? subject.trim() : subject); helper.setText(StringUtils.isNotBlank(content) ? content.trim() : content, true); if (CollectionUtils.isNotEmpty(filePaths)) { for (String filePath : filePaths) { FileSystemResource file = new FileSystemResource(new File(filePath.trim())); String fileName = filePath.substring(filePath.lastIndexOf(File.separator)); helper.addAttachment(fileName, file); } } mailSender.send(message); LOGGER.info("finsih sendAttachmentsMail. to:{},subject:{},content:{},filePaths:{}. it consumes {}", to, subject, content, filePaths, sw); } }
application.yml
spring: mail: protocol: smtp host: smtp.163.com port: 25 username: hello@163.com password: 163.pwd default-encoding: UTF-8 properties: mail: smtp: connectiontimeout: 5000 timeout: 5000 writetimeout: 10000 email: from: hello@163.com
相关推荐
SpringBoot发送邮件功能验证码5分钟过期 以下是关于SpringBoot发送邮件功能验证码5分钟过期的详细介绍: 标题解释 SpringBoot发送邮件功能验证码5分钟过期是指使用SpringBoot框架发送邮件,验证码的有效期为5分钟...
在Spring Boot框架中,发送邮件是一项常见的需求,无论是发送通知、报表还是其他信息。本教程将详细介绍如何在Spring Boot项目中实现邮件发送功能,包括发送普通邮件和带有附件的邮件,以及如何设置定时任务来自动...
本主题将深入探讨如何使用Spring Boot实现邮件发送功能,涵盖了文本邮件、图片邮件、模板邮件和HTML邮件的发送。 一、Spring Boot集成邮件服务 Spring Boot通过集成了JavaMailSender接口和JavaMailSenderImpl类,...
10分钟实现SpringBoot发送邮件功能
在Spring Boot框架中,发送邮件是一项常见的功能,用于与用户进行互动或自动化处理。Spring Boot提供了集成JavaMailSender接口的便利方法,使得我们能够轻松地实现邮件服务。本篇文章将详细讲解如何在Spring Boot...
在Spring Boot框架中,发送邮件是一项常见的功能,用于与用户进行互动或传递重要信息。Spring Boot提供了方便的集成,使得我们可以轻松地实现模板邮件、附件邮件以及普通邮件的发送。以下将详细介绍这些邮件类型的...
SpringBoot定时发送邮件示例代码;SpringBoot定时发送邮件示例代码SpringBoot定时发送邮件示例代码SpringBoot定时发送邮件示例代码SpringBoot定时发送邮件示例代码
Spring Boot 实现发送邮件(QQ 邮箱为例) 本文主要介绍了如何使用 Spring Boot 框架实现发送邮件, 以 QQ 邮箱为例,通过代码示例详细介绍了发送邮件的过程,并提供了完整的代码实现供读者参考。 知识点 1: ...
spring boot 2 发送邮件代码,包括普通邮件,html邮件,附件邮件等
在微服务环境中,这样的邮件通知系统可以作为一个独立的服务存在,其他服务只需要发送消息到 RabbitMQ 的邮件队列即可触发邮件发送,实现了服务间的解耦。 总结来说,SpringBoot 结合 RabbitMQ 可以帮助我们构建...
springboot Spring框架是Java平台上的一种开源应用框架,提供具有控制反转特性的容器。尽管Spring框架自身对编程模型没有限制,但其在Java应用中的频繁使用让它备受青睐,以至于后来让它作为EJB...
- 使用Spring的`JavaMailSender`接口,该接口提供了发送邮件的方法,如`send(MimeMessagePreparator preparator)`。 - 可以通过`@Autowired`注解注入`JavaMailSender`,然后创建`MimeMessage`对象来准备邮件内容,...
在使用 SpringBoot 发送邮件时,经常会遇到附件名称中文乱码的问题。本文将详细介绍解决此问题的方法。 问题分析 在发送邮件时,我们需要将附件名称编码,以便正确地传输中文名称。然而,在 SpringBoot 中,如果不...
发送邮件
在本文中,我们将深入探讨如何使用SpringBoot框架发送邮件,特别是用于发送短信验证码以增强用户登录功能。这个示例是基于“瑞吉外卖”项目,由黑马程序员提供,通过集成SpringBoot的`spring-boot-starter-mail`依赖...
- **邮箱服务**:SpringBoot可以通过集成JavaMailSender接口来发送邮件。配置SMTP服务器信息,如主机地址、端口、用户名、密码等。 3. **邮件激活流程**: - **生成激活码**:为每个新注册用户生成唯一的激活码,...
在Java开发中,Spring Boot框架提供了便捷的方式来整合各种服务,包括发送邮件的功能。Spring Boot的邮件服务基于JavaMailSender接口,使得我们可以轻松地配置并发送电子邮件。本文将深入探讨如何在Spring Boot应用...
所以要配置邮箱可以正常发送邮件,详情清看:SpringBoot使用JavaMailSender发送邮件 3.使用随机数生成四位随机数,当作验证码,并且设置失效时间为三分钟, String emailReg = ^([a-zA-Z0-9_\\-\\.]+)@((\\[[0-9]{1...