我在这里有一个奇怪的问题。我正尝试使用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