PHP邮件问题

PHP邮件问题,php,smtp,Php,Smtp,我正在尝试在我的公司网站上实现密码重置功能,如果用户需要重置密码,她可以单击链接,并将随机生成的新密码发送到她的收件箱 我正在使用PHPmail()函数。现在,我正在Ubuntu机器上运行PHP5。在php.ini中,我声明SMTP为运行邮件服务器的机器的IP,SMTP_端口为25。此外,我还尝试将telnet连接到端口25上的邮件服务器,并发送一封邮件-它可以工作(我的工作终端是Windows) 问题是邮件没有被发送/接收-调用mail()的PHP脚本挂起约1分钟,最后mail()返回true

我正在尝试在我的公司网站上实现密码重置功能,如果用户需要重置密码,她可以单击链接,并将随机生成的新密码发送到她的收件箱

我正在使用PHP
mail()
函数。现在,我正在Ubuntu机器上运行PHP5。在php.ini中,我声明SMTP为运行邮件服务器的机器的IP,SMTP_端口为25。此外,我还尝试将telnet连接到端口25上的邮件服务器,并发送一封邮件-它可以工作(我的工作终端是Windows)

问题是邮件没有被发送/接收-调用
mail()
的PHP脚本挂起约1分钟,最后
mail()
返回
true

最糟糕的是,我甚至不知道如何找出问题所在——使用PHP、Ubuntu、邮件服务器或代码


有人能帮忙吗?

你能检查你的mail.err和mail.log文件吗?

你能检查你的mail.err和mail.log文件吗?

你的电子邮件服务器可能需要身份验证(“SMTP前弹出”或ASMTP-身份验证SMTP)。因为你最近可能已经从你的Windows机器上检查了你的电子邮件,你的IP地址将被验证,并允许在短时间内发送电子邮件:从你的Ubuntu机器,可能不会


在Ubuntu机器上,查看是否不能使用SMTP服务器的IP地址:PHP应该解决如何发送电子邮件。否则,您必须了解如何对电子邮件服务器进行身份验证,并将其实现到PHP中。

您的电子邮件服务器可能需要身份验证(“SMTP前的POP”或ASMTP-已验证的SMTP)。因为你最近可能已经从你的Windows机器上检查了你的电子邮件,你的IP地址将被验证,并允许在短时间内发送电子邮件:从你的Ubuntu机器,可能不会


在Ubuntu机器上,查看是否不能使用SMTP服务器的IP地址:PHP应该解决如何发送电子邮件。否则,您必须了解如何对电子邮件服务器进行身份验证,并将其实现到PHP中。

尝试使用shell的邮件程序发送电子邮件。首先看看这是否有效。

尝试使用shell的邮件程序发送电子邮件。首先看看这是否有效。

我最近没有查看php.ini,但它不是说:

[mail function]
; For Win32 only.
;SMTP =
强调仅适用于Win32的


你可能想看看。当pear.php.net实际响应时,也就是说。

我最近没有查看php.ini,但它不是说:

[mail function]
; For Win32 only.
;SMTP =
强调仅适用于Win32的


你可能想看看。当pear.php.net实际响应时,也就是说。

您的ISP可能就是问题所在。端口25经常被ISP封锁,以防止大规模垃圾邮件。尝试更改为非标准端口,看看是否有帮助


编辑:并详细说明了问题(尽管他们的解决方案是中继到ISP邮件服务器,而不是更改端口)。

您的ISP可能是问题所在。端口25经常被ISP封锁,以防止大规模垃圾邮件。尝试更改为非标准端口,看看是否有帮助


编辑:并详细说明了问题(尽管他们的解决方案是中继到ISP邮件服务器,而不是更改端口)。

例如,您需要Zend Framework SMTP邮件类,因为这种愚蠢的死板php实现在Unix上不适用于SMTP端口


请订阅PHP核心邮件列表并对此进行投诉-如果越来越多的人进来,并且他们看到并非所有人都喜欢发送邮件,他们可能会更改该列表。

例如,您需要Zend Framework SMTP邮件类,因为这种愚蠢的死板PHP实现在Unix上不适用于SMTP端口


请订阅PHP核心邮件列表并对此进行投诉-如果越来越多的人进来,并且他们看到并非每个人都发送邮件,他们可能会更改该列表。

使用邮件库也可以绕过PHP的mail()函数。例如,SwiftMailer()这是一个非常好的安全发送电子邮件的类(plain/html)


使用此类,您可以直接连接到SMTP服务器,从而绕过服务器配置。

还可以使用邮件库绕过php的mail()函数。例如,SwiftMailer()这是一个非常好的安全发送电子邮件的类(plain/html)


使用此类,您可以直接连接到SMTP服务器,从而绕过服务器配置。

我在教程中读到,如果未指定sendmail\u路径,linux也将成功使用SMTP字段。这不对吗?据我所知,这是不对的。在mail命令的注释部分,它甚至说“mail()的Windows实现在许多方面与Unix实现不同。首先,它不使用本地二进制来编写消息,而只在直接套接字上操作”,这意味着Unix版本始终使用sendmail。然后我将使用PEAR::mail。我现在要回家了(这里晚上10点)。我在一篇教程中读到,如果没有指定sendmail\u路径,linux也将成功地使用SMTP字段。这不对吗?据我所知,这是不对的。在mail命令的注释部分,它甚至说“mail()的Windows实现在许多方面与Unix实现不同。首先,它不使用本地二进制来编写消息,而只在直接套接字上操作”,这意味着Unix版本始终使用sendmail。然后我将使用PEAR::mail。我现在要回家了(这里晚上10点)。我会在早上写:)Swift Mailer将是PEAR::Mail的更好的替代品。我对Linux完全是新手。我似乎找不到mail.err和mail.log文件:(The/var