配置sendmail(Fedora)使用php mail函数在localhost上工作

时间:2015-04-03 15:44:35

标签: php email sendmail

我使用以下代码向我的Gmail帐户发送电子邮件:

$to      = 'My gmail address';
$subject = 'subject here';
$message = 'Test PHP email using mail()';
$headers = 'From: webmaster@example.com' . "\r\n" .
    'Reply-To: webmaster@example.com' . "\r\n" .
    'X-Mailer: PHP/' . phpversion();

if( !mail($to, $subject, $message, $headers) ) echo "Error with sendmail mail()";
else echo 'Message has been sent';

运行该脚本会返回“已发送消息”,但我从未收到该电子邮件(已检查垃圾邮件)。

我的操作系统是Fedora版本20(Heisenbug),phpinfo函数返回以下内容:

PHP                 Version: 5.5.23
System:             Linux localhost.localdomain 3.18.9-100.fc20.x86_64
Configuration File: /etc/php.ini
Apache Version:     Apache/2.4.10 (Fedora) PHP/5.5.23
Hostname:Port:      localhost.localdomain:0
DOCUMENT_ROOT:      /var/www/html

以下值对于Local和&主:

sendmail_from:      no value
sendmail_path:      /usr/sbin/sendmail -t -i
SMTP:               localhost
smtp_port:          25

我已经安装了sendmail和amp;的sendmail-CF。这些是sendmail.mc文件中的DAEMON_OPTIONS / LOCAL_DOMAIN设置:

DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1, Name=MTA')dnl
LOCAL_DOMAIN(`localhost.localdomain')dnl

请帮忙。

1 个答案:

答案 0 :(得分:1)

你的诊断有点缺乏。检查您的MTA日志和mailq以了解接下来发生的事情。

Sendmail是一个非常酷的工具,但我推荐使用经验有限的人/在这样的上下文中。通常情况下我会建议使用nullmailer,但这不会进行本地传递(上次我检查过)因此我建议你考虑使用postfix作为MTA。