Php Can';不要从我的本地机器向谷歌发送电子邮件

Php Can';不要从我的本地机器向谷歌发送电子邮件,php,linux,email,postfix-mta,Php,Linux,Email,Postfix Mta,为什么下面的方法不起作用 <?php mail('oshirowanen@gmail.com', 'some text here', 'some text here'); ?> 什么也没有 而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 unre

为什么下面的方法不起作用

<?php

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

?>
什么也没有

而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
我的收件箱或垃圾邮件箱中没有收到电子邮件

postfix/smtp[4081]:连接到.l.google.com[2a00:1450:4001:c02::1a]中的alt1.gmail smtp:25:网络无法访问

看起来您使用的是Postfix,但您不在连接到internet的IPv6网络上,或者没有防火墙规则阻止连接

最简单的故障排除方法是编辑
main.cf
并将
inet\u协议
更改为
ipv4
,而不是当前设置的任何协议。进行此更改后,请确保完全重新启动Postfix服务。链接的文档页面将提供有关启用IPv6支持的影响的更多信息

如果下降到IPv4后仍无法连接,请查找系统与internet之间的防火墙规则


我仍然想积极鼓励您不要使用PHP的
mail()
函数<代码>邮件()不保证送达。所有这些都保证了它试图将邮件转交给幕后的某些人。当事情出错时,它不会给你任何线索。相反,请使用第三方邮件库,如或与已知的工作SMTP服务器结合使用。这些库使发送时出现问题变得非常明显,并且您可以启动非常有用的功能。

使用以下功能使其正常工作:

sudo apt-get install sendmail
编辑php.ini以取消对sendmail的注释-我的位于

/etc/php5/apache2/


保存更改并重新启动apache。

最有趣的一点是你的mail.log所说的内容,如果
mail()
方法返回true/false。-1,没有任何研究工作。在这个问题上有25亿次重复,其中大部分都是由于服务器配置错误或垃圾邮件过滤器。切换到使用SMTP的第三方库,以便您可以验证邮件是否已实际送达,然后从那里开始。Swiftmailer、PHPMailer、PEAR邮件类等。。。除了PHP
mail()
之外的任何内容。我已经在我的问题中添加了一些额外的信息。谢谢!你已经把这个问题变成了一个可以回答的问题。为什么网络无法访问?如果ifconfig报告inet6地址FE80:…,则说明如下:
/etc/php5/apache2/
sendmail_path = /usr/sbin/sendmail -t -i