【问题标题】:Cronjob and PHPmailer not working as expectedCronjob 和 PHPmailer 没有按预期工作
【发布时间】:2019-07-28 00:26:44
【问题描述】:

我有两个 cron 作业

0 8 * * *   /usr/bin/php /var/www/Apps/Appsname/Extract.php
*/2 * * * * /usr/bin/php /var/www/Apps/Appsname/weeklybusinessemail.php

extract cronjob 运行良好。

weeklybusinessemail.php 没有。

它有一个带有附件的 phpmailer 脚本。

当我通过 url 运行 weekbusinessemail.php 时,它可以工作并发送电子邮件,但通过 crontab 却不能! 所有名称都匹配。

任何帮助将不胜感激

【问题讨论】:

  • cron 语法看起来不错,请提供weeklybusinessemail.php

标签: php email cron phpmailer


【解决方案1】:

> /dev/null 重定向标准输出。
2>&1 将标准错误 (2) 重定向到标准输出 (1)

试试:

*/2 * * * * php /var/www/Apps/Appsname/weeklybusinessemail.php > /dev/null 2>&1

如果应用程序是 mvc:

*/2 * * * * php /var/www/Apps/Appsname/index.php controller_folder/controller_class_name > /dev/null 2>&1

【讨论】:

  • 这是真的,但似乎与提出的问题没有任何关系!
【解决方案2】:

没有更多调试信息很难说,但运行 cron 任务时的一个常见问题是工作目录位置。如果您希望附件位于脚本所在的文件夹中,并使用 filename.txt 等相对路径引用它们,则该路径与脚本无关,而是 cron 进程的工作目录,它可以在任何地方。当您从 Web 运行它时它会起作用,因为您的 Web 服务器会在运行脚本之前将目录更改为虚拟主机的根目录,因此相对路径将起作用。

尝试对文件附件使用绝对路径(例如使用__DIR__.'/filename.txt'),或在运行 cron 任务之前更改目录:

*/2 * * * * cd /var/www/Apps/Appsname && /usr/bin/php /var/www/Apps/Appsname/weeklybusinessemail.php

【讨论】:

  • 这行得通。我更改了附加的 csv 文件路径,并为它们提供了文件的完整位置。干杯!
猜你喜欢
  • 1970-01-01
  • 2016-09-07
  • 1970-01-01
  • 2019-11-28
  • 2016-08-13
  • 2013-07-07
  • 2012-12-05
  • 2017-05-22
  • 2014-05-24
相关资源
最近更新 更多