springboot集成邮件发送的使用示例
2023-12-20 09:39:04
springboot集成邮件发送的使用示例
使用 Spring Boot 发送邮件时,通常的应用场景包括用户注册、密码重置和各种验证流程。这里我将展示一个以验证码发送为例的实现,涵盖了邮件发送的基本配置和高级功能,如定时邮件发送、HTML 内容和附件。
步骤概述
- 引入依赖: 添加 Spring Boot Starter Mail 依赖项。
- 配置邮件发送: 配置 SMTP 服务器和邮件发送器。
- 发送简单邮件: 发送简单的文本邮件。
- 发送 HTML 邮件: 发送包含 HTML 内容的邮件。
- 发送带附件的邮件: 发送包含附件的邮件。
- 定时邮件发送: 使用 Spring 定时任务发送邮件。
1. 引入依赖
在 pom.xml
文件中添加 Spring Boot Starter Mail 依赖:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId>
</dependency>
2. 配置邮件发送
在 application.properties
或 application.yml
中配置 SMTP 服务器信息:
spring.mail.host=your_smtp_host
spring.mail.port=your_smtp_port
spring.mail.username=your_username
spring.mail.password=your_password
spring.mail.properties.mail.smtp.auth=true
spring.mail.properties.mail.smtp.starttls.enable=true
3. 发送简单邮件
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.mail.SimpleMailMessage;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.stereotype.Service;
@Service
public class EmailService {
@Autowired
private JavaMailSender emailSender;
public void sendSimpleMessage(String to, String subject, String text) {
SimpleMailMessage message = new SimpleMailMessage();
message.setTo(to);
message.setSubject(subject);
message.setText(text);
emailSender.send(message);
}
}
4. 发送 HTML 邮件
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.mail.javamail.MimeMessageHelper;
import org.springframework.stereotype.Service;
import javax.mail.MessagingException;
import javax.mail.internet.MimeMessage;
@Service
public class EmailService {
@Autowired
private JavaMailSender emailSender;
public void sendHtmlMessage(String to, String subject, String htmlBody) throws MessagingException {
MimeMessage message = emailSender.createMimeMessage();
MimeMessageHelper helper = new MimeMessageHelper(message, true);
helper.setTo(to);
helper.setSubject(subject);
helper.setText(htmlBody, true);
emailSender.send(message);
}
}
5. 发送带附件的邮件
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.core.io.FileSystemResource;
import org.springframework.mail.javamail.MimeMessageHelper;
import org.springframework.stereotype.Service;
import javax.mail.MessagingException;
import javax.mail.internet.MimeMessage;
import java.io.File;
@Service
public class EmailService {
@Autowired
private JavaMailSender emailSender;
public void sendMessageWithAttachment(String to, String subject, String text, String pathToAttachment) throws MessagingException {
MimeMessage message = emailSender.createMimeMessage();
MimeMessageHelper helper = new MimeMessageHelper(message, true);
helper.setTo(to);
helper.setSubject(subject);
helper.setText(text);
FileSystemResource file = new FileSystemResource(new File(pathToAttachment));
helper.addAttachment("Attachment", file);
emailSender.send(message);
}
}
6. 定时邮件发送
使用 Spring 的定时任务功能,在需要定时发送的方法上加上 @Scheduled
注解:
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
@Component
public class ScheduledEmail {
private final EmailService emailService;
public ScheduledEmail(EmailService emailService) {
this.emailService = emailService;
}
@Scheduled(cron = "0 0 8 * * ?") // 每天早上8点发送邮件
public void sendScheduledEmail() {
// 发送邮件逻辑
emailService.sendSimpleMessage("recipient@example.com", "Subject", "Content");
}
}
以上代码提供了基本的邮件发送逻辑和定时任务配置。在实际应用中,请替换相关信息,例如邮件主题、内容、收件人地址以及附件路径等。
文章来源:https://blog.csdn.net/weixin_45915647/article/details/135099019
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!