设置 "From" 时,msmtp 无法使用 php 发送电子邮件

msmtp cannot send emails with php when setting the "From"

我做了一个小测试 php 发送这样一封电子邮件的脚本:

$headers = 'From: ' . $_POST["from"];
if (mail ($_POST["to"], $_POST["subject"], $_POST["body"], $headers)) {
  echo "Mail sent";
} else {
  echo "Problem sending email";
}

这在带有 Postfix 的服务器上运行良好。

尝试使用 msmtp 时,它会忽略发件人并抱怨:

msmtp: account default from /etc/msmtprc: envelope-from address is missing

配置文件内容为:

# cat /etc/msmtprc

account default
host localhost
port 25

我试图在该文件中设置一个发件人并且它起作用了,但是覆盖了我传入的发件人php。

感谢您的帮助

我找到了。

这里的文档说 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"

干杯