我制作了一个小型测试PHP脚本,发送这样的电子邮件:
$headers = 'From: ' . $_POST["from"];
if (mail ($_POST["to"], $_POST["subject"], $_POST["body"], $headers)) {
echo "Mail sent";
} else {
echo "Problem sending email";
}
这在使用Postfix的服务器上运行良好。
尝试使用msmtp时,它会忽略From和抱怨:
msmtp:来自/ etc / msmtprc的帐户默认值:缺少信封地址
配置文件的内容是:
# cat /etc/msmtprc
account default
host localhost
port 25
我试图在该文件中设置一个from并且它有效,但是覆盖了我传入php的From。
感谢您的帮助
答案 0 :(得分:2)
我找到了。
此处的文档说明https://wiki.archlinux.org/index.php/Msmtp#Send_mail_with_PHP_using_msmtp:
在php.ini中查找sendmail_path选项并进行如下编辑:
sendmail_path = "/usr/bin/msmtp -C /path/to/your/config -t"
当然哪个不起作用。在查看可能的论点之后,我发现了一个有效的论点:
sendmail_path = "/usr/bin/msmtp -C /etc/msmtprc -t --read-envelope-from"
干杯