2014-02-10 151 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;