【问题标题】:Unable to connect to remote SMTP server无法连接到远程 SMTP 服务器
【发布时间】:2012-02-06 09:27:48
【问题描述】:

当我使用此脚本连接到同一域上的 SMTP 服务器时,它可以工作,但是当我将它用于远程 SMTP 时,它会出错

$mail->IsSMTP();                                // send via SMTP
$mail->Host     = "xxx.xxx.x"; // SMTP servers
$mail->SMTPAuth = true;     // turn on SMTP authentication
$mail->Username = "xxxxt@xxxxx.com";   // SMTP username
$mail->Password = "xxxxx"; // SMTP password
$mail->Port = 26; 

$mail->SMTPDebug = 1;
$mail->From     = "email@domain.com";
$mail->FromName = "Name";
$mail->AddAddress("xxxx.oxxk@gmail.com");
//$mail->AddReplyTo("yourname@domain.com","Your Name");

$mail->WordWrap = 50;                              // set word wrap

$mail->IsHTML(true);                               // send as HTML

$mail->Subject  =  "Here is the subject";
$mail->Body     =  "This is the <b>HTML body</b>";
$mail->AltBody  =  "This is the text-only body";

if(!$mail->Send())
{
   echo "Message was not sent <p>";
   echo "Mailer Error: " . $mail->ErrorInfo;
   exit;
}

echo "消息已发送";

产生错误:

SMTP -> 错误:无法连接到服务器:连接被拒绝 (111) SMTP 错误:无法连接到 SMTP 主机。消息未发送

邮件程序错误:SMTP 错误:无法连接到 SMTP 主机。

谁能指出我错过了什么。

谢谢

【问题讨论】:

  • “连接被拒绝”很清楚,不是吗?
  • 远程主机是否运行 SMTP 服务器?它是否接受正确端口上的连接?没有防火墙阻止?
  • Coudnt connect to host 清楚地表明您在连接到主机时犯了一些错误(即host ipusernamepassword)还请注意 SMTP 默认端口是25 ..
  • 远程服务器确实运行 SMTP 服务器 ..如果我在远程服务器上运行此脚本它可以工作..我如何找到是否有防火墙阻止
  • @shazia 最好询问运行远程服务器的公司。

标签: php smtp


【解决方案1】:

第一次你是在你的本地计算机上运行这个脚本,比如 wamp 或 xammp 服务器的.. 如果是,你需要下载一个免费的 smtp 服务器,你可以尝试它与 windows 一起使用的 postcast 服务器......然后在 php 中进行一些更改.ini 文件

http://www.postcast.com/html/download.asp(从这里下载)

php.ini 文件的变化

  1. SMTP = 本地主机
  2. smtp_port = 25 sendmail_from = someid@somemail.com // 这将是用于发送邮件的默认地址,您甚至可以输入您的 gmail id

【讨论】:

  • 我已将脚本上传到具有 SMTP 服务器的主机上。我用过 25 端口,甚至尝试过 26