微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用 Spring boot starter mail 和 Schedule cron 向用户发送电子邮件

如何解决使用 Spring boot starter mail 和 Schedule cron 向用户发送电子邮件

我创建了一个简单的 Spring Boot 应用程序,它使用 smtp 发送电子邮件并安排 cron 作业。

下面是我的代码

这是主类:

@SpringBootApplication
@EnableScheduling
@EnableAsync
public class ServicewithEmailApplication {

    public static void main(String[] args) {
        SpringApplication.run(ServicewithEmailApplication.class,args);
    }

}

这是获取操作列表然后向他们发送电子邮件的服务类:

@Service
public class Employeeservice {

    @Autowired
    private JavaMailSender mailSender;

    private static final org.slf4j.Logger LOGGER = LoggerFactory.getLogger(Employeeservice.class);

    @Scheduled(cron = "${scheduling.job.cron}")
    public void sendreminders() {

        Date date = new Date();
        //get the list of actions from db which due date is greater than current date
        List<ActionItems> Items = emprepo.findByDuedateAfter(date);

        for (ActionItems action : Items) {
            sendMail(action);
        }

    }

    // method to send reminders to users
    public void sendMail(ActionItems action) {
        SimpleMailMessage message = new SimpleMailMessage();
        message.setTo(action.getEmail());
        message.setSubject("Pending Tasks");
        message.setText(action.getName() + " your action: " + '"' + action.getAction() + '"'
                + "  is pending due date is:" + action.getDuedate());
        mailSender.send(message);
    }
}

这是存储库:

@Repository
public interface EmployeeRepository extends JpaRepository<ActionItems,Integer>
{
    List<ActionItems> findByDuedateAfter(@Param("date") java.util.Date date);      //using method
}

这是模型 ActionItems 类

@Entity
public class ActionItems {
    
    @Id
    @GeneratedValue
    private int id;

    private String action;
    private String name;
    private String email;
    private Date duedate;
   
    //getters   and  //setters
}

注意:数据库相关和邮件相关属性在 application.properties 文件

上面的代码运行良好,可以每天发送邮件

问题:

  1. 除了 Cron 计划之外,还有什么更好的解决方案吗?

  2. 发送电子邮件是否有任何优化?(可能有数百个 Acion 项目,如上所示 我用于循环迭代每个操作项然后调用发送电子邮件方法代码

提前致谢!...

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。