我的ISP屏蔽了从PHP发送邮件的端口25,而允许使用端口587或465。如何强制php邮件功能使用端口587而不是默认的25?顺便说一句:我正在OSX 10.6.6上使用MAMP
更新:我尝试将php.ini中的设置更改为这个
[mail function]
; For Win32 only.
SMTP = localhost
smtp_port = 587因为我在mac电脑上,我不认为这是我的解决方案,而且在我尝试之后,它就无法工作了。它给了我以下错误信息。
May 6 20:32:25 Ibrahim-Armars-MacBook-Pro postfix/smtp[2822]: connect to alt2.aspmx.l.google.com[74.125.159.27]:25: Operation timed out
May 6 20:32:25 Ibrahim-Armars-MacBook-Pro postfix/smtp[2823]: connect to alt2.aspmx.l.google.com[74.125.159.27]:25: Operation timed out
May 6 20:32:25 Ibrahim-Armars-MacBook-Pro postfix/smtp[2827]: connect to alt2.aspmx.l.google.com[74.125.159.27]:25: Operation timed out
May 6 20:32:25 Ibrahim-Armars-MacBook-Pro postfix/smtp[2825]: connect to alt2.aspmx.l.google.com[74.125.159.27]:25: Operation timed out
May 6 20:32:25 Ibrahim-Armars-MacBook-Pro postfix/smtp[2828]: connect to alt2.aspmx.l.google.com[74.125.159.27]:25: Operation timed out你看它还在尝试通过25端口连接吗?怎么在mac里换呢?
发布于 2011-05-06 17:26:03
更改smtp_port只会影响mail()与SMTP设置指定的服务器的交互方式。这不是问题所在。问题是:
首先,读这个线程。它也讨论了同样的问题。其结果是,您需要使用不同的邮件服务器,最好是您的ISP邮件服务器。如果你想要使用他们的电子邮件服务,你的ISP会告诉你哪些服务器和端口可以用于出站邮件?您应该能够使用您的PHP运行在本地,就像您会像一个电子邮件客户端一样,将能够发送到Gmail。
发布于 2011-05-06 14:56:28
在您的smtp_port = 587中设置php.ini。请参阅http://php.net/manual/en/mail.configuration.php
编辑
正如AJ所指出的,如果您使用本地后缀或sendmail,这不会解决问题,您可以通过指定smtp = localhost来解决这个问题。尝试将其设置为ISP的SMTP服务器地址。
如果在允许您发送邮件之前还需要身份验证,这可能会导致下一个问题,许多ISP都这样做。在这种情况下,你最好的选择是梨邮包。顺便说一句,这还允许您在脚本中指定邮件服务器和端口。从文件中:
$params["host"] - The server to connect. Default is localhost.
$params["port"] - The port to connect. Default is 25.
$params["auth"] - Whether or not to use SMTP authentication. Default is FALSE.
$params["username"] - The username to use for SMTP authentication.
$params["password"] - The password to use for SMTP authentication.发布于 2011-05-06 14:58:27
您可以编辑您的php.ini文件(如果您有访问权限),并在您的代码ini_set('smtp_port', 587)中设置smtp_port = 587。
https://stackoverflow.com/questions/5913149
复制相似问题