无法从我的本地计算机发送电子邮件到谷歌

时间:2013-01-16 08:50:21

标签: php linux email postfix-mta

为什么以下不起作用?

<?php

    mail('oshirowanen@gmail.com', 'some text here', 'some text here');

?>

access.log显示:

127.0.0.1 - - [16/Jan/2013:08:46:52 +0000] "GET /test_mail.php HTTP/1.1" 200 294 "-" "Mozilla/5.0 (X11; Linux i686) AppleWebKit/536.11 (KHTML, like Gecko) Ubuntu/12.04 Chromium/20.0.1132.47 Chrome/20.0.1132.47 Safari/536.11"

error.log显示:

nothing

我也从终端尝试了以下内容:

echo 'body' | sendmail recipient@example.net

什么都没有。

并且mail.log显示:

Jan 16 08:57:24 ubuntu postfix/smtp[4081]: connect to alt1.gmail-smtp-in.l.google.com[2a00:1450:4001:c02::1a]:25: Network is unreachable

我的收件箱或垃圾邮件箱中没有收到电子邮件。

2 个答案:

答案 0 :(得分:7)

  

postfix/smtp[4081]: connect to alt1.gmail-smtp-in.l.google.com[2a00:1450:4001:c02::1a]:25: Network is unreachable

看起来您正在使用Postfix和IPv6 support enabled,但您不在连接到互联网的IPv6网络上,或者防火墙规则阻止连接。

最简单的故障排除方法是修改main.cf并将inet_protocols更改为ipv4,而不是将其设置为当前设置的任何内容。进行此更改后,请务必完全重新启动Postfix服务。链接的文档页面将提供有关启用IPv6支持的含义的更多信息。

如果在下载到IPv4后仍无法连接,请在系统和互联网之间查找防火墙规则。

我仍然希望积极鼓励你 使用PHP的mail()功能。 mail() 保证投放。所有这一切都保证它尝试将邮件传递给幕后的某些东西。当出现问题时,它不会给你任何线索。相反,请使用第三方邮件库(如SwiftmailerPHPMailer)与已知工作的SMTP服务器结合使用。这些库使得在发送时出现问题时更加明显,并且您可以获得非常有用的功能来启动。

答案 1 :(得分:0)

使用以下方法工作:

sudo apt-get install sendmail

编辑你的php.ini以取消注释sendmail - 我的位于

/etc/php5/apache2/

sendmail_path = /usr/sbin/sendmail -t -i

保存更改并重新启动apache。