【问题标题】:How to send large amount of email in backgroup process如何在后台进程中发送大量电子邮件
【发布时间】:2017-10-23 05:38:23
【问题描述】:

我有 Drupal 网站,并在我的自定义模块中创建了一个自定义菜单。

我需要使用不同的电子邮件问候语向 10000 个用户发送电子邮件。我正在获取每个用户的个人资料信息,然后向每个用户发送电子邮件。

但问题是完成请求需要大量时间,有时会出现请求超时错误。

所以我想要这样的功能,我可以在几秒钟内得到响应,并且所有电子邮件都将在后台进程中运行。

有什么想法吗?

【问题讨论】:

  • 考虑使用一些外部服务,例如 mailchimp。发了这么多邮件,恐怕你的ip地址会被列入黑名单……

标签: php email drupal-7 drupal-modules mime-mail


【解决方案1】:

您应该设置一个 cron,在服务器上每 3/5/7 等分钟运行一次。然后在每次运行中,您可以向 100、200、500 个用户发送电子邮件,并设置标志以减少重复。您可以根据服务器执行时间选择没有用户。但是,我认为 500 是一个不错的开始,并且只需要 20 次 cron 运行即可发送所有 10k 封电子邮件。

并且/或者您可以使用诸如 mailchimp、sendgrid 等第三方服务来安排电子邮件。

希望对您有所帮助!

【讨论】:

  • 但是我想手动发送这些电子邮件而不使用 cron-job,因为我有菜单链接,所以当我点击该链接时它会发送电子邮件
  • 好的,那么你应该使用 Drupal drupal.org/docs/7/api/batch-api/overview 中提供的 Batch API 进行批处理。
  • 查看:“允许表单处理分散在多个页面请求中的功能,从而确保处理不会因为 PHP 超时而中断,同时允许用户接收有关进度的反馈正在进行的操作。”
猜你喜欢
  • 2013-10-01
  • 2015-08-07
  • 2014-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-09-13
  • 2011-02-21
  • 2013-10-07
  • 1970-01-01
相关资源
最近更新 更多