【问题标题】:how to schedule emailing campaign in PHP?如何在 PHP 中安排电子邮件活动?
【发布时间】:2019-07-22 02:33:23
【问题描述】:

我正在开发一个用 php 发送电子邮件活动的平台。 我只是一个问题,我如何设置 php 邮件发件人功能在用户定义的一个小时内工作。 我正在考虑使用 Cron 作业,但这似乎很难编写发送 url 请求的 Cron 作业(因为我需要电子邮件参数,所以我不能只执行 php 脚本)。 我希望你能帮助我找到解决这个问题的方法。 谢谢你的回答!

【问题讨论】:

  • 请说明您已经完成了哪些工作来完成此任务。我会给你一点提示,你在 cronjob 的正确轨道上,但也要考虑数据库。很抱歉告诉你,我们不是来写你的代码的,我们是来帮忙的
  • 我正在使用 sendinblue api 我可以写一封电子邮件,并创建活动。
  • 我不是来这里有代码我只是想找到一种方法来做到这一点我真的不知道我该怎么做
  • Eningly 是对的,没有看到代码,我们无能为力,但如果您想安排电子邮件在特定时间发送,那么您必须将电子邮件参数存储在数据库中,例如收件人、发件人、主题、内容、文件路径(如果有附件)和 cron 作业从 db 读取并发送电子邮件
  • 我真的对 cron 工作什么都没做,我只是在想我能做什么。你有一些关于如何在 php 中编写 cron 作业的文档吗?当用户输入电子邮件参数时,我想自动创建一个 cron 作业

标签: php email cron


【解决方案1】:
  1. 做好功课。你应该研究 cron 和 PHP

How to create cron job using PHP?

https://www.a2hosting.com/kb/developer-corner/php/run-php-scripts-from-cron-jobs

https://packagist.org/packages/peppeocchi/php-cron-scheduler

  1. 您必须将计划保存在数据库中,以便在您的 cron 表丢失时进行编辑、删除和重新计划。

  2. 由于 PHP 在服务器运行后退出,您可以使用系统的 cron 表在预定的时间运行您的 Sender 脚本。为此,您有 2 个选择:

选项 1

如果您的服务器在本地主机上运行 :9091

在 cron 作业中保留数据库中的计划 ID,以便您的 Sender 脚本可以从数据库中获取设置以发送电子邮件。

# replace * * * * * with the schedule from the user
* * * * * curl localhost:9091/sendEmail?id=123

也可以直接放信息,但是如果不保存在数据库会丢失cron表会丢失日程,所以还是保存比较好。

# replace * * * * * with the schedule from the user
* * * * * curl localhost:9091/sendEmail?addr=name@email.com&subscription=pets,house,food

选项 2

如果您不希望有很多用户/计划,您可以在每次用户请求时创建 cron 作业,然后调用您的 Sender 脚本,该脚本将从数据库(SELECT 查询)中获取所有计划并将电子邮件发送给它。

# Every hour for example
0 * * * * php path/to/script.php

【讨论】:

  • 真的谢谢你:),我在谷歌上搜索了整个星期一^^'
  • @hardycharles 太好了!然后接受答案:)
猜你喜欢
  • 2012-10-05
  • 2011-07-11
  • 2019-03-31
  • 2011-02-04
  • 2012-09-11
  • 2013-10-10
  • 2011-01-24
  • 1970-01-01
相关资源
最近更新 更多