对不起,如果这是一条大路上行驶的道路。我已经看过其他有关此事的帖子,但其中没有任何内容可以解决我自己拥有或点燃灯泡的问题,帮助我自己解决这个问题。
这是我的代码:
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.
非常感谢任何可以提供的帮助,即使它只是一篇文章的链接,也解释了为什么它现在在我们的生产环境中无法工作。< / p>
答案 0 :(得分:6)
这些答案都不适合我。 几个小时后,我发现了问题,但只适用于Cpanel / WHM
如果您无权访问WHM,请咨询您的提供商。
答案 1 :(得分:2)
在PHP 5.5和phpmailer中,端口号存在错误。不要设置端口号(mail-&gt; port = ....)这会导致错误: “smtp错误无法连接到服务器连接被拒绝111”
将其保留为默认端口号25,它可以正常工作!
答案 2 :(得分:0)
事实证明,HG需要将设置修改为我们服务器上的防火墙。一旦他们这样做,它就很有效。因此,如果您遇到类似的问题,我建议您确保一切正确,然后与您的托管服务提供商联系,了解他们需要做什么。
答案 3 :(得分:0)
如果您使用的是cPanel / WHM,则需要确保:
将外发SMTP限制为root,exim和mailman(FKA SMTP Tweak) - 设置为OFF。 (这可以在“服务器配置»调整设置”(搜索:SMTP))
中编辑如果您还拥有ConfigServer Security&amp;启用防火墙后,您需要编辑防火墙配置。单击“防火墙配置”,然后选择“按SMTP设置过滤”。现在查找SMTP_ALLOWUSER选项并添加由昏迷分隔的cPanel帐户的用户名。点击“更改”,然后重新启动防火墙。