【问题标题】:Beanstalkd/Pheanstalk for PHPMailer on Amazon EC2Amazon EC2 上 PHPMailer 的 Beanstalkd/Pheanstalk
【发布时间】:2021-01-22 01:22:40
【问题描述】:

我想在 Amazon EC2 上实现一种通过 PHPMailer 发送电子邮件的排队机制。我已经在服务器上正确设置了 Beanstalkd,并且可以通过控制台访问它。邮件似乎没有通过(尝试示例代码的各种组合)。此外,我是否还需要设置一个 cron 作业来调用生产者或消费者文件之一?

是否有人有通过 phpmailer/pheanstalk 发送电子邮件的工作代码,用于 Amazon EC2?

谢谢。

【问题讨论】:

    标签: amazon-web-services amazon-ec2 phpmailer beanstalkd pheanstalk


    【解决方案1】:

    Beanstalkd 很棒,我自己也用它,但是,不要用它来做这个;它正在以一种糟糕的方式重新发明轮子。相反,安装一个本地邮件服务器,例如 postfix 并让它为您排队。这也更简单、更快、更容易控制。电子邮件服务器是为管理队列而构建的,它们非常擅长。

    在你这样做之前,让你的邮件发送脚本工作——在你完成之前,甚至试图让更复杂的东西工作是没有意义的。另请注意,从 EC2 发送电子邮件很困难——亚马逊希望你使用他们的 SES 服务而不是直接发送——你可能会发现发送完全被阻止。阅读 PHPMailer 故障排除指南,了解如何诊断。

    【讨论】:

    • 你好。非常感谢您的快速回复。澄清一下: 1. PHPMailer 我已经测试过并且工作正常。我正在使用 SES。 2. 当前代码需要确认邮件已发送,然后用户才能继续。担心未来会成为瓶颈。在 PHPMailer 和 SES 之间添加 Postfix 有意义吗?
    • 您可以在 PHP 和 SES 之间放置 postfix,但前提是您通过 SMTP 提交消息(我认为 SES 也有 HTTP 接口)。您可以在几毫秒内将消息提交到本地 postfix,从而释放您的用户连接。然后它将自动处理将消息中继到 SES,处理重试、限制、消息/连接速率限制、中断等,因为 SMTP 旨在完全做到这一点,而无需您进行任何特殊配置。
    • 再次感谢。会接受你的建议并尝试一下。虽然偷偷摸摸,但我也很想尝试让 beanstalkd 工作:)
    猜你喜欢
    • 2013-07-31
    • 2016-09-21
    • 2013-03-06
    • 2017-07-14
    • 2013-04-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多