Gmail Account SMTP -> ERROR: Failed to connect to server: Connection refused (111)
Gmail Account SMTP -> ERROR: Failed to connect to server: Connection refused (111)
我正在使用 phpmailer 通过 google 商业应用程序发送电子邮件。一切 运行 都很好,但自从过去三天以来,我开始收到以下错误
SMTP -> ERROR: Failed to connect to server: Connection refused (111)
The following From address failed: example@example.com
奇怪的是,这种情况并非总是发生。例如,在 10 封电子邮件中,有 9 封出现上述错误,而 1 封电子邮件有时会发送给收件人。
这是我的代码
<?php
function sendmail($mail_to,$mail_sub,$mail_mesg){
//mail("casper.kotwal@gmail.com", "LRD sendmail", "inside send mail");
require_once('classes/class.phpmailer.php');
$mail = new PHPMailer();
$mail->IsSMTP();
$mail->SMTPDebug = 2;
$mail->SMTPAuth = true;
$mail->SMTPSecure = "ssl";
$mail->Host = "smtp.gmail.com";
$mail->Port = 465;
$mail->Username = "example@example.com";
$mail->Password = "example";
$mail->AddReplyTo('example@example.com', 'Example Documents');
$mail->AddAddress($mail_to);
$mail->SetFrom('example@example.com', 'Example Documents');
$mail->Subject = $mail_sub;
$mail->MsgHTML($mail_mesg);
$mail->Send();
}
sendmail("casper.kotwal@gmail.com", "test", "test");
编辑
我已经将我的 phpmailer 更新到 5.2(最新),但我仍然遇到同样的错误。最糟糕的是有时它有效,有时却无效。我已经检查了 tls 和 ssl 的两个端口,都听得很好。
这是我到目前为止所做的
- 已将 PHPMailer 更新到最新版本
- 在 587 上尝试了 tls,在 465 上尝试了 ssl
- 已验证两个端口都在侦听
- 尝试使用两个端口(ssl 和 tls)通过 telnet 连接到 smtp.gmail.com
- 测试了 google 个应用程序的所有三个不同电子邮件地址(a@a.com、b@b.com、c@c.com)。所有站点都给出相同的错误 - SMTP 错误:无法连接到服务器:连接被拒绝 (111)
- 在不同的 VPS 上测试了我的代码,它 "looks" 到 运行 都很好。
这是发送电子邮件时调试的输出
SERVER -> CLIENT: 220 mx.google.com ESMTP df1sm6922498wib.12 - gsmtp
CLIENT -> SERVER: EHLO www.land-registry-documents.co.uk
SERVER -> CLIENT: 250-mx.google.com at your service, [2001:41c8:51:609:fcff:ff:fe00:3b86]250-SIZE 35882577250-8BITMIME250-STARTTLS250-ENHANCEDSTATUSCODES250-PIPELINING250-CHUNKING250 SMTPUTF8
CLIENT -> SERVER: STARTTLS
SERVER -> CLIENT: 220 2.0.0 Ready to start TLS
CLIENT -> SERVER: EHLO www.land-registry-documents.co.uk
SERVER -> CLIENT: 250-mx.google.com at your service, [2001:41c8:51:609:fcff:ff:fe00:3b86]250-SIZE 35882577250-8BITMIME250-AUTH LOGIN PLAIN XOAUTH2 PLAIN-CLIENTTOKEN250-ENHANCEDSTATUSCODES250-PIPELINING250-CHUNKING250 SMTPUTF8
CLIENT -> SERVER: AUTH LOGIN
SERVER -> CLIENT: 334 VXNlcm5hbWU6
CLIENT -> SERVER: c3lzdGVtQGxhbmQtcmVnaXN0cnktZG9jdW1lbnRzLmNvLnVr
SERVER -> CLIENT: 334 UGFzc3dvcmQ6
CLIENT -> SERVER: bmV3Y2FzdGxlbGVlZHM=
SERVER -> CLIENT: 235 2.7.0 Accepted
CLIENT -> SERVER: MAIL FROM:<system@land-registry-documents.co.uk>
SERVER -> CLIENT: 250 2.1.0 OK df1sm6922498wib.12 - gsmtp
CLIENT -> SERVER: RCPT TO:<casper.kotwal@gmail.com>
SERVER -> CLIENT: 250 2.1.5 OK df1sm6922498wib.12 - gsmtp
CLIENT -> SERVER: DATA
SERVER -> CLIENT: 354 Go ahead df1sm6922498wib.12 - gsmtp
CLIENT -> SERVER: Date: Wed, 13 May 2015 08:56:37 +0000
CLIENT -> SERVER: To: Casper Kotwal <casper.kotwal@gmail.com>
CLIENT -> SERVER: From: Land Registry Documents <system@land-registry-documents.co.uk>
CLIENT -> SERVER: Reply-To: Land Registry Documents <system@land-registry-documents.co.uk>
CLIENT -> SERVER: Subject: PHPMailer GMail SMTP test
CLIENT -> SERVER: Message-ID: <59cec7626d25f2022430e0660778e492@www.land-registry-documents.co.uk>
CLIENT -> SERVER: X-Priority: 3
CLIENT -> SERVER: X-Mailer: PHPMailer 5.2.10 (https://github.com/PHPMailer/PHPMailer/)
CLIENT -> SERVER: MIME-Version: 1.0
CLIENT -> SERVER: Content-Type: multipart/alternative;
CLIENT -> SERVER: boundary="b1_59cec7626d25f2022430e0660778e492"
CLIENT -> SERVER: Content-Transfer-Encoding: 8bit
CLIENT -> SERVER:
CLIENT -> SERVER: This is a multi-part message in MIME format.
CLIENT -> SERVER:
CLIENT -> SERVER: --b1_59cec7626d25f2022430e0660778e492
CLIENT -> SERVER: Content-Type: text/plain; charset=us-ascii
CLIENT -> SERVER:
CLIENT -> SERVER: This is a plain-text message body
CLIENT -> SERVER:
CLIENT -> SERVER:
CLIENT -> SERVER: --b1_59cec7626d25f2022430e0660778e492
CLIENT -> SERVER: Content-Type: text/html; charset=us-ascii
CLIENT -> SERVER:
CLIENT -> SERVER: test
CLIENT -> SERVER:
CLIENT -> SERVER:
CLIENT -> SERVER:
CLIENT -> SERVER: --b1_59cec7626d25f2022430e0660778e492--
CLIENT -> SERVER:
CLIENT -> SERVER: .
SERVER -> CLIENT: 250 2.0.0 OK 1431507399 df1sm6922498wib.12 - gsmtp
CLIENT -> SERVER: QUIT
SERVER -> CLIENT: 221 2.0.0 closing connection df1sm6922498wib.12 - gsmtp
不发送时
SMTP ERROR: Failed to connect to server: Connection refused (111)
这可能没什么区别,但您使用的是旧版本的 PHPMailer(get the latest), and you should base your code on the gmail example provided,而不是您使用的旧版本。
我会说这是一个网络问题 - 如果您被垃圾邮件过滤器拒绝,google 会告诉您,给您 4.2.1 延期等,而不是直接阻止您。
通过 the troubleshooting guide 查看一下,看看您是否获得了有关连接的任何其他线索。可能是您的 ISP 阻止了出站 SMTP。
另一个观察:这不太可能是垃圾邮件过滤问题,因为它涉及从 gmail 发送邮件,而不是到 gmail .
随着时间的推移,Google 的 smtp 开始变得非常挑剔。我用它来发送来自 Web 应用程序的通知(每天肯定少于 100 个),但是一个拼写错误的电子邮件地址被退回就足以开始看到 Connection 从他们这边拒绝。
切换到一些交易邮件提供商(例如 mandrill
等)以安心。他们通常有一些免费的初学者计划,仍然比 Google.
的 smtp 好得多
可能存在 DNS 问题。检查你的 /etc/resolve.conf 文件设置这些,
名称服务器 8.8.8.8
名称服务器 8.8.4.4
我正在使用 GoDaddy 主机。我将一些字段留空并发送邮件它有效。
请看下面的代码,它对我有用。
<?php
include("class.phpmailer.php");
function sendMail($address,$username,$body){
$mail = new PHPMailer();
$mail->IsSMTP(); // telling the class to use SMTP
//$mail->Host = "smtp.gmail.com"; // SMTP server
$mail->SMTPDebug = 1; // enables SMTP debug information (for testing)
// 1 = errors and messages
// 2 = messages only
// $mail->SMTPAuth = true; // enable SMTP authentication
// $mail->SMTPSecure = "ssl"; // sets the prefix to the servier
// $mail->Host = "smtp.gmail.com"; // sets as the SMTP server
// $mail->Port = 465; // set the SMTP port for the server
// $mail->Username = "xyz@gmail.com"; // username
// $mail->Password = "test121232"; // password
$mail->SetFrom('contact@example.co.in', 'Contact');
$mail->Subject = "Enquiry for tour and travels package";
$mail->MsgHTML($body);
$address = $address;
$mail->AddAddress($address, $username);
$mail->AddCC('contact@example.co.in');
if(!$mail->Send()) {
echo "Mailer Error: " . $mail->ErrorInfo;
} else {
echo "Message sent!";
}
}
?>
刚刚更改了电子邮件地址,因此您可以向此电子邮件 ID 发送邮件。
$mail->SetFrom('youremail@example.co.in', 'Contact');
我正在使用 phpmailer 通过 google 商业应用程序发送电子邮件。一切 运行 都很好,但自从过去三天以来,我开始收到以下错误
SMTP -> ERROR: Failed to connect to server: Connection refused (111)
The following From address failed: example@example.com
奇怪的是,这种情况并非总是发生。例如,在 10 封电子邮件中,有 9 封出现上述错误,而 1 封电子邮件有时会发送给收件人。
这是我的代码
<?php
function sendmail($mail_to,$mail_sub,$mail_mesg){
//mail("casper.kotwal@gmail.com", "LRD sendmail", "inside send mail");
require_once('classes/class.phpmailer.php');
$mail = new PHPMailer();
$mail->IsSMTP();
$mail->SMTPDebug = 2;
$mail->SMTPAuth = true;
$mail->SMTPSecure = "ssl";
$mail->Host = "smtp.gmail.com";
$mail->Port = 465;
$mail->Username = "example@example.com";
$mail->Password = "example";
$mail->AddReplyTo('example@example.com', 'Example Documents');
$mail->AddAddress($mail_to);
$mail->SetFrom('example@example.com', 'Example Documents');
$mail->Subject = $mail_sub;
$mail->MsgHTML($mail_mesg);
$mail->Send();
}
sendmail("casper.kotwal@gmail.com", "test", "test");
编辑 我已经将我的 phpmailer 更新到 5.2(最新),但我仍然遇到同样的错误。最糟糕的是有时它有效,有时却无效。我已经检查了 tls 和 ssl 的两个端口,都听得很好。
这是我到目前为止所做的
- 已将 PHPMailer 更新到最新版本
- 在 587 上尝试了 tls,在 465 上尝试了 ssl
- 已验证两个端口都在侦听
- 尝试使用两个端口(ssl 和 tls)通过 telnet 连接到 smtp.gmail.com
- 测试了 google 个应用程序的所有三个不同电子邮件地址(a@a.com、b@b.com、c@c.com)。所有站点都给出相同的错误 - SMTP 错误:无法连接到服务器:连接被拒绝 (111)
- 在不同的 VPS 上测试了我的代码,它 "looks" 到 运行 都很好。
这是发送电子邮件时调试的输出
SERVER -> CLIENT: 220 mx.google.com ESMTP df1sm6922498wib.12 - gsmtp
CLIENT -> SERVER: EHLO www.land-registry-documents.co.uk
SERVER -> CLIENT: 250-mx.google.com at your service, [2001:41c8:51:609:fcff:ff:fe00:3b86]250-SIZE 35882577250-8BITMIME250-STARTTLS250-ENHANCEDSTATUSCODES250-PIPELINING250-CHUNKING250 SMTPUTF8
CLIENT -> SERVER: STARTTLS
SERVER -> CLIENT: 220 2.0.0 Ready to start TLS
CLIENT -> SERVER: EHLO www.land-registry-documents.co.uk
SERVER -> CLIENT: 250-mx.google.com at your service, [2001:41c8:51:609:fcff:ff:fe00:3b86]250-SIZE 35882577250-8BITMIME250-AUTH LOGIN PLAIN XOAUTH2 PLAIN-CLIENTTOKEN250-ENHANCEDSTATUSCODES250-PIPELINING250-CHUNKING250 SMTPUTF8
CLIENT -> SERVER: AUTH LOGIN
SERVER -> CLIENT: 334 VXNlcm5hbWU6
CLIENT -> SERVER: c3lzdGVtQGxhbmQtcmVnaXN0cnktZG9jdW1lbnRzLmNvLnVr
SERVER -> CLIENT: 334 UGFzc3dvcmQ6
CLIENT -> SERVER: bmV3Y2FzdGxlbGVlZHM=
SERVER -> CLIENT: 235 2.7.0 Accepted
CLIENT -> SERVER: MAIL FROM:<system@land-registry-documents.co.uk>
SERVER -> CLIENT: 250 2.1.0 OK df1sm6922498wib.12 - gsmtp
CLIENT -> SERVER: RCPT TO:<casper.kotwal@gmail.com>
SERVER -> CLIENT: 250 2.1.5 OK df1sm6922498wib.12 - gsmtp
CLIENT -> SERVER: DATA
SERVER -> CLIENT: 354 Go ahead df1sm6922498wib.12 - gsmtp
CLIENT -> SERVER: Date: Wed, 13 May 2015 08:56:37 +0000
CLIENT -> SERVER: To: Casper Kotwal <casper.kotwal@gmail.com>
CLIENT -> SERVER: From: Land Registry Documents <system@land-registry-documents.co.uk>
CLIENT -> SERVER: Reply-To: Land Registry Documents <system@land-registry-documents.co.uk>
CLIENT -> SERVER: Subject: PHPMailer GMail SMTP test
CLIENT -> SERVER: Message-ID: <59cec7626d25f2022430e0660778e492@www.land-registry-documents.co.uk>
CLIENT -> SERVER: X-Priority: 3
CLIENT -> SERVER: X-Mailer: PHPMailer 5.2.10 (https://github.com/PHPMailer/PHPMailer/)
CLIENT -> SERVER: MIME-Version: 1.0
CLIENT -> SERVER: Content-Type: multipart/alternative;
CLIENT -> SERVER: boundary="b1_59cec7626d25f2022430e0660778e492"
CLIENT -> SERVER: Content-Transfer-Encoding: 8bit
CLIENT -> SERVER:
CLIENT -> SERVER: This is a multi-part message in MIME format.
CLIENT -> SERVER:
CLIENT -> SERVER: --b1_59cec7626d25f2022430e0660778e492
CLIENT -> SERVER: Content-Type: text/plain; charset=us-ascii
CLIENT -> SERVER:
CLIENT -> SERVER: This is a plain-text message body
CLIENT -> SERVER:
CLIENT -> SERVER:
CLIENT -> SERVER: --b1_59cec7626d25f2022430e0660778e492
CLIENT -> SERVER: Content-Type: text/html; charset=us-ascii
CLIENT -> SERVER:
CLIENT -> SERVER: test
CLIENT -> SERVER:
CLIENT -> SERVER:
CLIENT -> SERVER:
CLIENT -> SERVER: --b1_59cec7626d25f2022430e0660778e492--
CLIENT -> SERVER:
CLIENT -> SERVER: .
SERVER -> CLIENT: 250 2.0.0 OK 1431507399 df1sm6922498wib.12 - gsmtp
CLIENT -> SERVER: QUIT
SERVER -> CLIENT: 221 2.0.0 closing connection df1sm6922498wib.12 - gsmtp
不发送时
SMTP ERROR: Failed to connect to server: Connection refused (111)
这可能没什么区别,但您使用的是旧版本的 PHPMailer(get the latest), and you should base your code on the gmail example provided,而不是您使用的旧版本。
我会说这是一个网络问题 - 如果您被垃圾邮件过滤器拒绝,google 会告诉您,给您 4.2.1 延期等,而不是直接阻止您。
通过 the troubleshooting guide 查看一下,看看您是否获得了有关连接的任何其他线索。可能是您的 ISP 阻止了出站 SMTP。
另一个观察:这不太可能是垃圾邮件过滤问题,因为它涉及从 gmail 发送邮件,而不是到 gmail .
Google 的 smtp 开始变得非常挑剔。我用它来发送来自 Web 应用程序的通知(每天肯定少于 100 个),但是一个拼写错误的电子邮件地址被退回就足以开始看到 Connection 从他们这边拒绝。
切换到一些交易邮件提供商(例如 mandrill
等)以安心。他们通常有一些免费的初学者计划,仍然比 Google.
可能存在 DNS 问题。检查你的 /etc/resolve.conf 文件设置这些,
名称服务器 8.8.8.8
名称服务器 8.8.4.4
我正在使用 GoDaddy 主机。我将一些字段留空并发送邮件它有效。 请看下面的代码,它对我有用。
<?php
include("class.phpmailer.php");
function sendMail($address,$username,$body){
$mail = new PHPMailer();
$mail->IsSMTP(); // telling the class to use SMTP
//$mail->Host = "smtp.gmail.com"; // SMTP server
$mail->SMTPDebug = 1; // enables SMTP debug information (for testing)
// 1 = errors and messages
// 2 = messages only
// $mail->SMTPAuth = true; // enable SMTP authentication
// $mail->SMTPSecure = "ssl"; // sets the prefix to the servier
// $mail->Host = "smtp.gmail.com"; // sets as the SMTP server
// $mail->Port = 465; // set the SMTP port for the server
// $mail->Username = "xyz@gmail.com"; // username
// $mail->Password = "test121232"; // password
$mail->SetFrom('contact@example.co.in', 'Contact');
$mail->Subject = "Enquiry for tour and travels package";
$mail->MsgHTML($body);
$address = $address;
$mail->AddAddress($address, $username);
$mail->AddCC('contact@example.co.in');
if(!$mail->Send()) {
echo "Mailer Error: " . $mail->ErrorInfo;
} else {
echo "Message sent!";
}
}
?>
刚刚更改了电子邮件地址,因此您可以向此电子邮件 ID 发送邮件。
$mail->SetFrom('youremail@example.co.in', 'Contact');