【问题标题】:SMTP ERROR: Failed to connect to server: Connection refused (111) with Office365SMTP 错误:无法连接到服务器:与 Office365 的连接被拒绝 (111)
【发布时间】:2014-12-06 18:31:26
【问题描述】:

抱歉,这是一条人迹罕至的道路。我看过其他关于此的帖子,但其中没有任何内容可以解决我遇到的问题或点燃了帮助我自己解决问题的灯泡。

这是我的代码:

require 'PHPMailerAutoload.php';
$config = parse_ini_file('/path/to/file/config.ini', true);
$mail = new PHPMailer;
$mail->SMTPDebug = 3;
$mail->Debugoutput = 'html';
$mail->isSMTP();
$mail->Host = $config['host']; //smtp.office365.com
$mail->SMTPAuth = true;
$mail->Username = $config['username']; //an.existing.account@appinc.co
$mail->Password = $config['password']; //confirmed this is being passed correctly
$mail->SMTPSecure = 'tls';
$mail->Port = 587;
$mail->From = $config['username'];
$mail->FromName = 'Website Forms';
$mail->addAddress('sales@appinc.co', 'Some Name');
$mail->addReplyTo('sender.email@somedomain.com', 'SenderFirst SenderLast');
$mail->addBCC('my.email.address@appinc.co');
$mail->isHTML(true);
$mail->Subject = 'Contact Form Submission';
$mail->Body = 'Some html here';
$mail->AltBody = 'Some alt content here';
if(!$mail->send()) {
    echo 'Mailer Error: ' . $mail->ErrorInfo;
} else {
    //perform success actions
    exit();
}

我已确认域、用户名和密码均正确无误,并且已正确传递。重要的是要注意,这在启动之前在我们的本地开发服务器上工作。一旦网站被移动到我们的托管帐户(Hostgator),它就会停止工作。我已向 HG 确认我们的服务器上的端口 587 已打开。

这是我看到的错误消息:

Connection: opening to smtp.office365.com:587, t=10, opt=array ()
SMTP ERROR: Failed to connect to server: Connection refused (111)
SMTP connect() failed.
Message could not be sent.Mailer Error: SMTP connect() failed.

非常感谢您提供的任何帮助,即使它只是一篇文章的链接,该链接解释了为什么它现在在我们的生产环境中不起作用。

【问题讨论】:

  • 这已经在github上讨论了,所以我会回答over there

标签: php phpmailer


【解决方案1】:

没有一个答案对我有用。 几个小时后,我发现了问题,但仅适用于 Cpanel/WHM

  • 登录 WHM。
  • 转到 ConfigServer Security & Firewall inside plugins 选项。
  • 点击防火墙配置
  • 按 SMTP 设置过滤
  • 查找 SMTP_ALLOWUSER 选项并添加以逗号分隔的 Cpanel 帐户的用户名
  • 重启防火墙。

如果您无法访问 WHM,请咨询您的提供商。

【讨论】:

  • 在 cpanel WHM 中禁用 SMTP 限制。成功了!
  • 嘿 - 谢谢你,我知道这一定是与服务器相关的问题。脑脊液是罪魁祸首。
  • 谢谢!我要补充一点,我已按照您的说明进行操作,但我还必须将 SMTP_BLOCK 更改为 OFF,因为它默认处于打开状态,并且它确实阻止了传出 SMTP,但 root、exim 和 mailman 除外。
  • 在遇到此问题 2 周后。你的评论救了我的命。谢谢。
  • 你救了我的命 :)
【解决方案2】:

在 PHP 5.5 和 phpmailer 中,端口号存在错误。不要设置端口号(mail->port = ....)这会导致错误: "smtp error failed to connect to server connection denied 111"

保留默认端口号 25 即可!

【讨论】:

    【解决方案3】:

    事实证明,HG 需要修改我们服务器上的防火墙设置。一旦他们这样做了,效果就很好。因此,如果您遇到类似的问题,我建议您确保一切都正确无误,然后咨询您的托管服务提供商,看看他们需要做什么。

    【讨论】:

      【解决方案4】:

      如果您使用的是 cPanel/WHM,您需要确保:

      将传出 SMTP 限制为 root、exim 和 mailman (FKA SMTP Tweak) - 设置为 OFF。 (这可以在“服务器配置»调整设置”(搜索:SMTP)中编辑)

      如果您还启用了 ConfigServer 安全和防火墙,则需要编辑您的防火墙配置。单击“防火墙配置”,然后选择“按 SMTP 设置过滤”。现在寻找 SMTP_ALLOWUSER 选项并添加以逗号分隔的 cPanel 帐户的用户名。点击“更改”,然后重新启动防火墙。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-09-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-08-26
        • 2021-03-25
        • 1970-01-01
        • 2022-01-11
        相关资源
        最近更新 更多