2013-01-18 233 views
0

PHP的电子邮件问题,我试图用PHP mail功能,但电子邮件没有向我的地方,以发送电子邮件。它还显示如下的警告消息。与本地主机

Warning: mail() [function.mail]: Failed to connect to mailserver at "localhost" 
    port 25, verify your "SMTP" and "smtp_port" setting in php.ini 
+0

而且你能指望什么? –

+0

你必须在php.ini中设置smtp –

+0

@DhruvPatel:不,你可以通过'ini_set()设置它# – Raptor

回答

0

错误消息是自我解释的。 mail()功能无法连接到您的邮件服务器。检查您的邮件服务器设置。

尝试远程连接到端口25,看你是否可以连接到邮件服务器。

0

听起来像是你没有一个SMTP服务器计算机上运行,​​看看你是否可以telnet到25端口的本地机器上,看它是否正在运行或不。或许您的邮件服务器配置为侦听其他端口和PHP配置尝试的25

0

看起来您的服务器不具备SMTP邮件服务器运行的默认端口。你可以使用这些功能来设置不同的SMTP服务器:

ini_set('SMTP', "server.com"); 
ini_set('smtp_port', "25"); 
ini_set('sendmail_from', "[email protected]"); 

你可能不运行在本地主机的SMTP服务器。

如果你只需要为开发目的的SMTP服务器,并且您正在运行Windows,安装smtp4dev,它可以在这里找到:http://smtp4dev.codeplex.com/

-1

使用PHPMailer相反。它对所有邮件问题都有很好的支持。

在这里,你可以找到几十个Examples

+0

我不知道我为什么得到-1。 –

+0

我猜-1的人认为你的回答与问题无关,因为问题是,OP无法连接到邮件服务器。使用其他邮件库不会有帮助。 – Raptor

+1

论坛变得有趣。我认为这个错误告诉用户出了什么问题。我只是试图简化它,以便开发人员不必去配置级别。 –

1

基本上你不能从你的本地主机发送邮件,如果您还没有配置SMTP。因此,对于配置,你可以做到这一点如下:

如果打开php.ini文件,你会发现这些两行:

smtp_server 
smtp_port 

为你的主机服务器和端口号(您可能需要与他们联系,了解详细信息)

所以,你将需要添加他们能够从要求身份验证的服务器发送邮件。因此,一个例子可以是:

smtp_server = mail.example.com or any IP address(where SMTP is configured) 
smtp_port = 25 

,如果需要,然后添加以下两行不存在:

auth_username = username 
auth_password = pw 

认为这将有助于。