我正在尝试使用PHPMailer从运行Sierra 10.12的Mac上的本地XAMPP实例发送电子邮件。当我使用Gmail的SMTP服务器发送测试电子邮件时,我得到一个“53”软件导致连接中止错误,如下所示:
2017-04-30 02:59:56 SMTP错误:无法连接到服务器:软件导致连接中止(53)2017-04-30 02:59:56 SMTP连接()失败。 https://github.com/PHPMailer/PHPMailer/wiki/Troubleshooting邮件程序错误:SMTP connect()失败。 https://github.com/PHPMailer/PHPMailer/wiki/Troubleshooting
我已经尝试了他们的故障排除指南,但没有发现与此问题相关的任何内容,所以我认为这种情况很少发生。
下面的代码基于PHPMailer's Gmail Example,这很奇怪,因为它会抛出错误。我显然隐藏了StackOverflow的电子邮件和密码:
date_default_timezone_set('Etc/UTC');
require 'PHPMailer/PHPMailerAutoload.php';
$mail = new PHPMailer; // create a new object
$mail->IsSMTP(); // enable SMTP
$mail->SMTPDebug = 1; // debugging: 1 = errors and messages, 2 = messages only
$mail->SMTPAuth = true; // authentication enabled
$mail->SMTPSecure = 'ssl'; // secure transfer enabled REQUIRED for Gmail
$mail->Host = "smtp.gmail.com";
$mail->Port = 587; // or 587
$mail->IsHTML(true);
$mail->Username = "email@gmail.com";
$mail->Password = "mypassword";
$mail->SetFrom("email@gmail.com");
$mail->Subject = "Test";
$mail->Body = "hello";
$mail->AddAddress("myotheremail@hotmail.com");
if(!$mail->Send()) {
echo "Mailer Error: " . $mail->ErrorInfo;
} else {
echo "Message has been sent";
}
非常感谢任何帮助 干杯
答案 0 :(得分:0)
对于那些偶然发现这个帖子的人:
感谢Sahil,问题是由于我错误地使用了设置。而不是$mail->SMTPSecure = 'ssl';
我应该使用$mail->SMTPSecure = 'tls';
。
我发现的另一个问题是,当这个问题得到解决时,邮件发送/卡在加载时会花费很长时间而导致超时。通过将$mail->IsSMTP();
更改为$mail->IsMail();
来解决此问题。
干杯