设置 "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"
干杯
我做了一个小测试 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"
干杯