我已经根据PHP+Ubuntu Send email using gmail form localhost正确设置了后缀服务器,因此这个 msmtp 通过以下方式发送电子邮件:
$ echo -e "Subject: Test Mail\r\n\r\nThis is my first test email." |msmtp --debug --from=default -t skrifix@seznam.cz
/etc/msmtprc
account default
host smtp.gmail.com
port 587
auth on
user autak987@gmail.com
password *********
from autak987@gmail.com
logfile /var/log/msmtp.log
`$ls -l /etc/msmtprc
-rw-rw-r-- 1 www-data www-data 377 Aug 30 12:54 /etc/msmtprc
哪个工作正常(默认帐户设置在/etc/msmtprc
. 然后我设置了sendmail_path
in /etc/php/7.3/apache2/php.ini
:
sendmail_path = /usr/bin/msmtp -t
所以我尝试从php 手册中执行一个示例 - 邮件:
<?php
$to = 'skrifix@seznam.cz';
$sub = 'the subject';
$mes = 'hello';
$header = 'From: autak987@gmail.com\r\n'; //not even needed - the default account is set
mail($to, $sub, $mes, $header);
但我在地址中找不到电子邮件skrifix@seznam.cz
。我做错了什么?应该根据那个答案来设置。
编辑:尝试根据此Sending mail through terminal using msmtp 尝试使用 root 触发执行工作正常,但不适用于 php mail(),但没有成功。
Edit2:它变得更加陌生。从 15 次测试发送(15*执行 php 脚本),真正到达了 2 封邮件。但它们来自“未知发件人”,发件人应该是/etc/msmtprc
在 header 中指定的默认帐户,甚至在 php 中指定From:...
。我真的很困惑,这是怎么回事。