从Web应用程序发送编程电子邮件的最佳方法

时间:2009-07-28 11:31:55

标签: php ruby email cron

我想通过网络应用发送电子邮件,例如,任务管理员的提醒,生日提醒......我想编制日期和时间,然后收到当时发送的电子邮件。

我认为我有两种选择:使用cron或发送带有未来时间戳的电子邮件。

使用cron涉及运行命令(将查询数据库)每两分钟,五分钟检查是否有任何要发送的电子邮件。或者,另一种方式,当我保存新提醒时,在指定的时间放置一个新的crontab任务(通过从Web应用程序执行系统命令)。使用第一个选项,我认为服务器负载将过多。有了第二个选项,我将有数百个crontab任务,对我来说看起来很脏。

也许我可以在创建提醒的那一刻发送电子邮件,但将电子邮件时间戳更改为将来的日期和时间。我知道有些电子邮件服务器可以管理它(比如Mercur for Windows),但它是标准吗?我将使用我的Gmail帐户完成这项工作。而且,使用此解决方案,我将无法取消提醒,因为电子邮件是在我创建提醒时发送的。

我可以使用PHP或Ruby(RoR)作为服务器语言,因此语言并不重要,因为它们都可以发送电子邮件和调用系统命令。如果解决方案需要编写脚本,我可以使用bash脚本,Perl,Python ......(服务器是一个Linux盒子)。

您认为哪种方法是解决此问题的最佳方法?

我为我可怜的英语道歉。提前谢谢。

3 个答案:

答案 0 :(得分:3)

我不知道你是否研究过这个问题,但是既然你使用了GMail,我认为你可能会感兴趣。 Google日历具有以下功能:

  1. 进入GMail。
  2. 点击顶部,点击“日历”。
  3. 左侧是日历列表。每个都有一个名为“设置”的小链接。请点击此链接(您可能想为此项目创建一个新日历)。
  4. 这会打开一个标签界面。我认为它总是会带您进入“日历”标签,但如果没有,请单击该标签。
  5. 每个日历旁边都会有一个名为“通知”的链接。单击要通知您的日历的链接。
  6. 这将显示一个设置列表,您可以通过发送电子邮件来设置通知。

    Google的API应该允许您访问日历以将其与您的应用程序同步。如果它设置为向您发送电子邮件,它将为您处理所有电子邮件。

答案 1 :(得分:2)

拥有一个cron是一个更好的选择,然后发送带有未来日期戳的电子邮件。设置一个定期运行的cron,它可以发送电子邮件。

我们有类似的问题。

Sending mass email using PHP

https://stackoverflow.com/questions/215736/how-do-i-send-bulk-mail-to-my-users-in-a-generic-fashion

阅读那些你会得到一些想法的人。

答案 2 :(得分:2)

而不是为每个提醒(或通知,无论如何)提供cron作业,您可以在文件中写入所有内容并定期(例如每5分钟)调用一个脚本(例如php脚本)来读取文件并检查是否发送通知......

您将拥有该功能而无需为每个项目创建一个cron-job ...

那会是一个解决方案吗?

问候

相关问题