好的,我意识到这个问题已经被问过了,但是与我的具体问题相关的问题并没有被提出来。
基本上,我几乎不知道我在服务器上做什么,但我需要配置它以发送电子邮件,而不是让它们最终进入垃圾邮件文件夹。目前我似乎的主要问题是我的mail.log
文件中的此错误消息:
error: to submit mail, use the Postfix sendmail command
fatal: the postfix command is reserved for the superuser
在我的 php.ini 文件中sendmail_path = /usr/sbin/sendmail -t -i
Postfix 配置了我的主机名,当我从命令行发送邮件时,它会正常发送,因此一切都正常,但在 CLI 中,我以 root 身份登录,因此这可能不是问题,因为我有访问权限。运行时,postfix status
我得到以下内容:
postfix: Postfix is running with backwards-compatible default settings
postfix: See http://www.postfix.org/COMPATIBILITY_README.html for details
postfix: To disable backwards compatibility use "postconf compatibility_level=2" and "postfix reload"
postfix/postfix-script: the Postfix mail system is running: PID: 13198
我已经完成了这个项目,真的需要尽快解决这个问题,但是所有不同的教程似乎对如何正确设置这一切有不同的看法,或者至少我不明白我做错了什么。
重新讨论一下,主要目标是让 PHP 在调用时真正向他们发送电子邮件
mail($to, $subject, $msg, $headers);
答案1
谢谢@bgtvfr 我测试的时候,这些都正常工作。从命令行发送邮件完全按预期工作。
我从 mail.log 中列出的错误是由于我的 php.ini 文件配置不正确造成的。
有一次我设置了sendmail_path = /usr/sbin/posfix
,然后当我将其改回上面的代码时,指向sendmail
我没有重新加载 php.ini 设置。我正在使用 nginx 和 php7.0 运行 ubuntu,但是重新启动 nginx 不会重新加载您的 php 设置,因此我不得不运行以下命令:
sudo /etc/php7.0/fpm/php.ini restart
一旦重置,sendmail_path = /usr/sbin/sendmail
它就开始按预期工作。