解决了!解决方法:在 php_cli/php.ini 中调整 sendmail_path 的值。
我在 Ubuntu 20.x 上运行 PHP 7.4
我已经安装了 msmtp 以便使用 php 发送电子邮件。
问题:从浏览器运行 mailtest.php 确实有效。通过 cronjob 运行 mailtest.php 不起作用,我在日志文件中收到此错误。
sh: 1: /usr/sbin/sendmail: not found
problem:
这是我的 /etc/crontab 中的行
00 23 * * * root /usr/bin/php /var/www/mailtest.php >> /var/log/mails.log 2>&1
邮件测试.php
$header = 'From: '.$mail_from. "\r\n" . 'Reply-To: '.$mail_from."\r\n" ;
if ($mailstatus = mail($mail_to, $mail_subject, $mail_body, $header)){
echo "sent";
} else {
echo "problem: ".$mailstatus;
}
我猜这可能是某种许可问题。我已经尝试更改 root -> www-data 但在这种情况下什么也没有发生,我的 mails.log 文件保持为空。也没有发送邮件。
这让我发疯,我花了几个小时在谷歌上搜索,真的不明白发生了什么。
有任何想法吗?我可以检查任何进一步的细节/东西吗?
非常感谢您的宝贵时间!