每当我使用 cronjob/mail 向外部客户端执行文件时,phpmailer 附件就会失败,但每当我从命令行执行 运行 脚本时,phpmailer 附件就会失败

phpmailer attachment failing whenever I execute file with cronjob/mail to outerside clients but works whenever I run script from command line

几天前,我将我的网站电子邮件(通过 AWS SES 发送)升级为 HTML 格式并附有图片。我正在使用 PHPMailer。当我测试 运行s 到我域中的电子邮件或我的个人电子邮件时 - 即使是大量 - 一切都 运行s 很棒。

相比之下,当我的 cronjob 执行完全相同的脚本以向其他网站用户发送邮件时,文件附件大部分(或可能全部)时间都没有经过。这可能与它是一个 cronjob 有关吗?我自己模拟的音量比我向网站用户发送电子邮件时实际使用的音量要高得多,所以这不是 volume/rate 限制问题。

当我从 cronjob 运行 时,它确实会失败,即使这是一个简单的 php 脚本,与任何环境依赖性无关。有人有调试建议吗?我看到的唯一相关 post 在这里:

Attachments working intermittently

很可能是路径问题 - 默认情况下,cron 作业不会设置 PATH 环境变量,因此请在您的 cron 脚本中设置一个,或者对所有内容使用绝对路径。

例如,如果您说:

php myscript.php

它可能找不到 php 二进制文件或您的脚本或您的附件,所以请执行以下操作:

PATH=/usr/bin
php myscript.php

/usr/bin/php /path/to/myscript.php

您需要准确告诉我们错误是什么 - "It doesn't work" 不是有用的信息。