抱歉,如果这条路走得很远。我已经看过其他有关此问题的帖子,但是其中没有任何一个解决我遇到的问题或点燃了一个灯泡,帮助我自己解决了这个问题。

这是我的代码:

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']; //[email protected]
$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('[email protected]', 'Some Name');
$mail->addReplyTo('[email protected]', 'SenderFirst SenderLast');
$mail->addBCC('[email protected]');
$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.

可以提供的任何帮助都将受到高度赞赏,即使它只是一篇文章的链接,该文章解释了为什么现在在我们的生产环境中它仍然无法工作。

最佳答案

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

  • 登录到WHM。
  • 转到“插件内部的ConfigServer安全性和防火墙”选项。
  • 单击防火墙配置
  • 通过SMTP设置过滤
  • 查找SMTP_ALLOWUSER选项,并添加以逗号分隔的Cpanel帐户的用户名
  • 重新启动防火墙。

  • 如果您无权访问WHM,请询问您的提供商。

    关于php - SMTP错误: Failed to connect to server: Connection refused (111) with Office365,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26318878/

    10-11 14:19