我正在通过Gmail发送消息。特别是,我试图从同一个帐户发送5-7封电子邮件给不同的用户(每个用户在大约2秒内)。
其中约有8%的电子邮件因这一错误而失败:
&googleapi.Error{
Code:500,
Message:"Backend Error", Body:`{
"error": {
"errors": [
{
"domain": "global",
"reason": "backendError",
"message": "Backend Error"
}
],
"code": 500,
"message": "Backend Error"
}
}`,
Header:http.Header(nil),
Errors:[]googleapi.ErrorItem{
googleapi.ErrorItem{Reason:"backendError", Message:"Backend Error"}
}
}它似乎并不是一个特定的帐户,因为6/7的电子邮件可能会成功。
我犹豫不决重新尝试,因为害怕发送两封电子邮件给同一个人。
是否有任何方法可以判断此消息是否安全可重试?
发布于 2017-04-27 15:48:55
有时可以在发送之前发生,有时在发送之后发生。
我记录了五个不同的电子邮件尝试中的"To“和" from”,这些邮件都收到了500个后端错误。所有这些尝试都无法进入我收件箱的“发送”文件夹。我的结论是,它们从未被发送过,重新尝试这些消息是安全的。但是,评论中的其他人(见下文)指出,这些消息实际上已发送到远程邮箱,重试是不安全的。
发布于 2017-04-26 07:02:06
“代码”:500,“消息”:“后端错误”
基本上是谷歌服务器的问题。您要发出的请求或者是发送给long的请求,或者是预先形成请求的服务器正忙着,而请求又花了很长时间。听起来你所做的并不是造成问题的原因。
小贴士:不要在你将要完成的每一个设置cron作业的时间运行,也不要在午夜运行(PDT),因为这是配额重置的时候,您将再次完成与昨天的配额被吹灭的每个人。
解决方案:
通常的解决方案是等待几秒钟,然后再次发送相同的请求。(实现指数退避)
实现简单指数退避的流程如下。
如果仍然有错误,停止并记录错误。
https://stackoverflow.com/questions/43625472
复制相似问题