【问题标题】:php/mysql scheduling emails with a mail quotaphp/mysql 使用邮件配额安排电子邮件
【发布时间】:2012-09-11 18:10:16
【问题描述】:

我需要在 php/mysql 中编写自己的电子邮件调度程序。我正在使用亚马逊的 SES 发送电子邮件。我在“队列”MySQL 表中记录了需要通过电子邮件发送的人员和内容。成功发送电子邮件后,每条记录都会被删除。我想尽快发送这些电子邮件,但我需要牢记亚马逊的配额。他们限制了您允许的电子邮件发送/秒。

我怎样才能安排这个不超过限制?我知道我可以编写一个 php cron 脚本,它只会从队列中提取 X 条记录并发送这些记录,但如果我的 cron 每分钟只运行一次,就会浪费很多时间。 (X 为配额限制/秒)

另一方面,如果我的电子邮件配额受到限制,并且我可以每秒发送 1000 封邮件(或一些荒谬的东西),如果我的脚本需要很长时间才能执行,我可能会遇到问题。 cron 可能会再次触发并从 Queue 表中提取相同的记录。

【问题讨论】:

  • 发布一些代码..所以你想从队列限制1中选择*,maxallowance..如果它现在不发送它可能不会发送因为你希望发送到直接电子邮件所以除非你无法连接..这和它一样好..显示一些代码,期望通过cron运行它..如果你使用的是php ..

标签: php mysql email amazon-ses quota


【解决方案1】:

您应该在执行脚本时创建一个锁定文件,并在执行完成时将其删除。然后,您可以提醒自己如果脚本正在再次运行而之前的执行尚未完成。

$filename = 'sending_emails.txt';
if (file_exists($filename)) {
    mail('your@email.com', 'Execution overlap', 'Adjust script parameters!');
    exit;
}
file_put_contents('sending_emails.txt', '1');
// Send e-mail logic here
unlink($filename);

【讨论】:

    猜你喜欢
    • 2013-10-10
    • 2012-10-05
    • 2020-02-23
    • 2017-04-05
    • 1970-01-01
    • 1970-01-01
    • 2020-08-14
    • 1970-01-01
    相关资源
    最近更新 更多