2014-02-10 81 views
4

我在这里有一个奇怪的问题。我正尝试使用PHPMailer通过SMTP发送电子邮件。我有一个由GoDaddy托管的网站,它是我试图用来发送邮件的SMTP帐户。PHPMailer:使用远程SMTP服务器,在localhost下工作,连接被拒绝(111)在远程服务器

  1. 它工作,如果我在我的本地主机服务器上执行我的PHP文件。
  2. 如果我在GoDaddy的服务器上执行我的PHP文件,它不起作用。

该错误消息我得到的是:

SMTP -> ERROR: Failed to connect to server: Connection refused (111)

我在本地主机都和远程服务器检查phpinfo。两者都有smtp_port列为25。我在我的机器上使用WAMP,服务器是某种形式的Linux(我对此一无所知,不知道如何管理)。

这里是有问题的代码:

的index.php

<?php 
date_default_timezone_set('America/Los_Angeles'); 
include_once("phpmailer/class.phpmailer.php"); 

$mail = new PHPMailer; 
$mail->SMTPDebug = 1; 
$mail->Port = 25; 

$mail->IsSMTP(); 
$mail->Host = 'smtpout.secureserver.net'; 
$mail->SMTPAuth = true; 
$mail->Username = '[email protected]'; 
$mail->Password = 'super_secret_password'; 
$mail->SMTPSecure = ''; // tried ssl and tls, with same result 

$mail->ClearAddresses(); 
$mail->AddAddress('[email protected]', 'Receiver Name'); 
$mail->From = "[email protected]"; 
$mail->FromName = "Username"; 
$mail->Subject = 'Hi there'; 
$mail->Body = "This is a message"; 

if ($mail->Send()) { 
    echo "Message sent!\n"; 
} 
else { 
    echo "Message failed!\n"; 
    print_r($mail->ErrorInfo); 
} 

exit(); 
?> 
+0

PHP可以工作在25,你想的SMTP服务器连接到可能不是。请咨询您的托管服务提供商,以获取有关正确使用其继电器的说明。 – Zarathuztra

+0

@Zarathuztra如果这是问题,那么它应该在两种情况下都会失败 - 因为在每种情况下我都使用相同的SMTP服务器。 –

+0

在这种情况下,确保25处于打开状态。 IPtables是否在你的主机箱上运行?登录并运行sudo iptables -L以查看其中的规则,并检查是否允许SMTP传递。 – Zarathuztra

回答

5

我想你应该执行两步 1)检查您的端口上GoDaddy的支持http://support.godaddy.com/help/article/319/what-do-i-do-if-i-have-trouble-connecting-to-my-email-account 建议的那样)使用“relay-hosting.secureserver.net”作为您的主机而不是“smtpout.secureserver.net”

GoDaddy确实允许使用Gmail发送电子邮件作为你的SMTP,只需要摆脱smtp.gmail.com并使用他们的主机。这是我的设置:

$mail = new PHPMailer(); 
$mail->isSMTP(); 
$mail->Host = "relay-hosting.secureserver.net"; 
$mail->Username = "[email protected]"; 
$mail->Password = "yourpassword"; 
// ... 
// send from, send to, body, etc... 

参考(见第一两个职位)http://support.godaddy.com/groups/web-hosting/forum/topic/phpmailer-with-godaddy-smtp-email-server-script-working/

2

如果你的主机有自己的电子邮件服务器,电子邮件服务器使用以下端口25465587。 设置为GoDaddy的:

$mail->isSMTP(); 
$mail->Host = localhost; 
$mail->SMTPAuth = true; 
$mail->Username = '[email protected]'; 
$mail->Password = 'password'; 

//$mail->SMTPSecure = 'tls'; 
//$mail->Port = 587; 

在其他的服务器需要创建您的域名邮箱:

$mail->isSMTP(); 
$mail->Host = localhost; 
$mail->SMTPAuth = true; 
$mail->Username = '[email protected]'; 
$mail->Password = 'password'; 

//$mail->SMTPSecure = 'tls'; 
//$mail->Port = 587;