Spring Boot | Spring Boot 整合“ 邮件任务“ 实现
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.mail.javamail.MimeMessageHelper;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Service;
import javax.mail.MessagingException;
import javax.mail.internet.MimeMessage;
import java.time.format.DateTimeFormatter;
@Service
public class EmailTaskService {
private final JavaMailSender mailSender;
public EmailTaskService(JavaMailSender mailSender) {
this.mailSender = mailSender;
}
@Scheduled(fixedRate = 60000)
public void sendEmailTask() {
MimeMessage message = mailSender.createMimeMessage();
try {
// 使用MimeMessageHelper来创建和设置邮件的内容
MimeMessageHelper helper = new MimeMessageHelper(message, true, "UTF-8");
helper.setTo("admin@example.com"); // 设置收件人
helper.setSubject("每分钟发送的邮件任务" + DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss").format(java.time.LocalDateTime.now())); // 设置邮件主题
helper.setText("这是一封定时发送的邮件,来自Spring Boot应用。\n当前时间: " + java.time.LocalDateTime.now().toString(), true); // 设置邮件正文
mailSender.send(message);
System.out.println("邮件任务执行成功,邮件发送成功!");
} catch (MessagingException e) {
System.out.println("邮件任务执行失败,邮件发送失败!");
e.printStackTrace();
}
}
}
这段代码使用了@Scheduled
注解来定义一个每隔一分钟执行一次的定时任务,该任务负责发送一封邮件。邮件的内容包括当前的日期和时间,这样接收者可以知道邮件任务是定时正确执行的。注意,这里的代码假设你已经配置了application.properties
或application.yml
文件来设置邮件服务器的相关参数,例如SMTP服务器地址、端口、用户名、密码以及发件人邮箱等信息。
评论已关闭