我在這裏有一個奇怪的問題。我正嘗試使用PHPMailer通過SMTP發送電子郵件。我有一個由GoDaddy託管的網站,它是我試圖用來發送郵件的SMTP帳戶。PHPMailer:使用遠程SMTP服務器,在localhost下工作,連接被拒絕(111)在遠程服務器
- 它工作,如果我在我的本地主機服務器上執行我的PHP文件。
- 如果我在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();
?>
PHP可以工作在25,你想的SMTP服務器連接到可能不是。請諮詢您的託管服務提供商,以獲取有關正確使用其繼電器的說明。 – Zarathuztra
@Zarathuztra如果這是問題,那麼它應該在兩種情況下都會失敗 - 因爲在每種情況下我都使用相同的SMTP服務器。 –
在這種情況下,確保25處於打開狀態。 IPtables是否在你的主機箱上運行?登錄並運行sudo iptables -L以查看其中的規則,並檢查是否允許SMTP傳遞。 – Zarathuztra