Я сделал небольшой тестовый скрипт 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 в этом файле, и это сработало, но перезаписал From, который я передал в php.
Спасибо за вашу помощь
Я нашел это.
Документация здесь говорит https://wiki.archlinux.org/index.php/Msmtp#Send_mail_with_PHP_using_msmtp :
Найдите опцию sendmail_path в вашем php.ini и отредактируйте так:
sendmail_path = "/usr/bin/msmtp -C /path/to/your/config -t"
Что, конечно, не сработало. Посмотрев на возможные аргументы, я нашел тот, который работает:
sendmail_path = "/usr/bin/msmtp -C /etc/msmtprc -t --read-envelope-from"
ура
Других решений пока нет …