【发布时间】:2011-02-07 00:58:05
【问题描述】:
当用户注册新帐户时,我想在我的 Web 应用程序中实现异步电子邮件发送。这样一来,如果在发送电子邮件消息时出现问题或延迟(例如,邮件服务器已关闭或与邮件服务器的网络连接速度很慢),用户将不会一直等待发送完成。
我的网络应用是使用 Spring 和 Hibernate 的 JPA 实现构建的。
对我来说,在这个 Web 应用程序中实现异步电子邮件处理的最佳和最可靠的方法是什么?
我正在考虑将电子邮件信息保存在数据库表中,然后由 Quartz (http://www.opensymphony.com/quartz/) 计划作业定期轮询更新,当它发现新的未发送电子邮件时,它会尝试发送它们。
这是实现我想要的合理方式吗?
谢谢。
编辑:
投票最多的响应是将邮件发送保留为同步调用,但触发我认为异步方法可能是最好的想法是我目前正在使用 GMail 作为我的出站邮件服务器(这是为了测试而从我的应用程序尝试发送电子邮件到对邮件发送函数的调用返回时,我遇到了 25 秒的响应延迟。你怎么看?
【问题讨论】:
标签: java email quartz-scheduler asynchronous