Gmail SMTP 错误 - 临时阻止?
Gmail SMTP error - Temporary block?
我正在使用 Gmail 服务器通过程序从我的系统发送电子邮件。
最近我开始收到这样的错误:
Data command failed: 421 4.7.0 Temporary System Problem. Try again later (WS). 6sm3756432pab.11 - gsmtp
原因在the support中给出。
任何人都可以告诉我可以触发此问题的电子邮件数量是多少?
还是其他原因?
如果您使用免费的 Gmail 帐户发送批量电子邮件,您可能会在早期看到此类回复,因为该服务并非旨在向已选择的订阅者发送应用程序交易消息、新闻通讯等活动在。
IMAP/SMTP 提供的服务是为了让您能够通过 Gmail 帐户使用 Microsoft Outlook 等电子邮件客户端。
如果您需要发送交易消息,我建议您 google "AWS SES" 作为初学者。
当我尝试使用 Java 中的多线程程序发送批量电子邮件时,我也遇到了同样的问题。然后我听说了Thread Pool Executor。我通过将线程池大小设置为10来使用它。之后,这个问题已经为我解决了。
如果您使用脚本快速连续发送电子邮件,则会出现此错误。
一个简单的解决方法是在发送电子邮件之间应用睡眠定时器。
我在每封连续的电子邮件之间应用了 1 秒的计时器。
import time
time.sleep(1) // equivalent to 1 second sleep
我同意 Anubhav Shrimali 的观点,即如果 Gmail 同时收到多个请求,则会出现此错误。
我在 Node.js 中使用 Nodemailer 解决了这个问题,方法是在每封连续的电子邮件之间添加 1 秒延迟,如下所示:
array.foreach(function(data, index) {
setTimeout(() => {
sendmail();
}, 1000 * index);
function sendmail() {
transporter.sendMail(mailOptions, function (error, info) {
if (error) {
console.log(error);
} else {
console.log('Email sent' + info.response);
}
});
}
});
如果遇到这种情况,应该放入重试队列,多次重试失败会通知监控
希望这篇link能帮到你:
这可能是从同一 IP 地址发送大量电子邮件的结果。如前所述,使用 python 睡眠功能,以便在发送之间有一点等待。我发现 1 秒通常对我来说时间不够,有时我会选择 1 到 5 之间的随机秒数以获得最佳结果。
import random
import time
time.sleep(random.randint(1, 5))
不要忘记导入正确的模块。
休息20分钟,重试,错误消失
我正在使用 Gmail 服务器通过程序从我的系统发送电子邮件。 最近我开始收到这样的错误:
Data command failed: 421 4.7.0 Temporary System Problem. Try again later (WS). 6sm3756432pab.11 - gsmtp
原因在the support中给出。
任何人都可以告诉我可以触发此问题的电子邮件数量是多少?
还是其他原因?
如果您使用免费的 Gmail 帐户发送批量电子邮件,您可能会在早期看到此类回复,因为该服务并非旨在向已选择的订阅者发送应用程序交易消息、新闻通讯等活动在。 IMAP/SMTP 提供的服务是为了让您能够通过 Gmail 帐户使用 Microsoft Outlook 等电子邮件客户端。
如果您需要发送交易消息,我建议您 google "AWS SES" 作为初学者。
当我尝试使用 Java 中的多线程程序发送批量电子邮件时,我也遇到了同样的问题。然后我听说了Thread Pool Executor。我通过将线程池大小设置为10来使用它。之后,这个问题已经为我解决了。
如果您使用脚本快速连续发送电子邮件,则会出现此错误。 一个简单的解决方法是在发送电子邮件之间应用睡眠定时器。
我在每封连续的电子邮件之间应用了 1 秒的计时器。
import time
time.sleep(1) // equivalent to 1 second sleep
我同意 Anubhav Shrimali 的观点,即如果 Gmail 同时收到多个请求,则会出现此错误。 我在 Node.js 中使用 Nodemailer 解决了这个问题,方法是在每封连续的电子邮件之间添加 1 秒延迟,如下所示:
array.foreach(function(data, index) {
setTimeout(() => {
sendmail();
}, 1000 * index);
function sendmail() {
transporter.sendMail(mailOptions, function (error, info) {
if (error) {
console.log(error);
} else {
console.log('Email sent' + info.response);
}
});
}
});
如果遇到这种情况,应该放入重试队列,多次重试失败会通知监控
希望这篇link能帮到你:
这可能是从同一 IP 地址发送大量电子邮件的结果。如前所述,使用 python 睡眠功能,以便在发送之间有一点等待。我发现 1 秒通常对我来说时间不够,有时我会选择 1 到 5 之间的随机秒数以获得最佳结果。
import random
import time
time.sleep(random.randint(1, 5))
不要忘记导入正确的模块。
休息20分钟,重试,错误消失