设置“发件人”时,msmtp无法使用php发送电子邮件

时间:2017-02-22 22:04:21

标签: php msmtp

我制作了一个小型测试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。

感谢您的帮助

1 个答案:

答案 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"

干杯