2016-01-28 129 views
9

使用client.discovered_api('gmail', 'v1'),我送使用gmail.users.messages.send功能如何在使用GMail API发送时检测您的发送配额?

它发送我的邮件罚款电子邮件,但超过电子邮件配额时,没有错误。

我收到200 OK,它看起来不错。

"id": "15289b1d6b652c17", "threadId": "15289b1d6b652c17","labelIds": ["SENT"] 

但对限额以上每封邮件,我收到退回的电子邮件([email protected])告诉我:

您已达到传送邮件的限制。

This page说我应该收到429 error code,但我没有。

任何想法可能会出错?或者如果有方法查询配额?

编辑:调查后,即使接收告诉我配额达到从人的电子邮件,原来的电子邮件反正发送(这意味着它可能会超出配额在接受许多人的电子邮件的费用)。

编辑2:我在API page上报告了一个问题,但仍然没有听到任何人的消息。缺乏回应令人困惑。

编辑3:结果表明他们的解决方案只是设计中断了。更新配额会有延迟(可能超过30分钟......您可以在30分钟内发送大量电子邮件),因此它可以让您发送邮件并在告知用户您的邮件尚未发送之后(虽然它可能有,但考虑到我做了测试)。完全不可靠。反弹中没有任何信息能够找出什么信息实际上被拒绝了。当您代表用户发送100封电子邮件活动时,这只是不起作用。

+0

不错的发现:)听起来像一个错误,或至少在文档中的错误。也许文件[问题](https:// code.google.com/a/google.com/p/apps-api-issues/)? – Tholle

+1

谢谢,我做过了:https://code.google.com/a/google.com/p/apps-api-问题/问题/详细信息?id = 4284&thanks = 4284&ts = 1454021550 。目前为止没有回复。我有600个用户通过gmail API迁移,所以它不好玩,很难相信我是唯一碰到这个的:/ – Jeremy

+0

Bummer :(迁移时将用户的所有旧消息插入到gmail中?是否尝试过[插入](https://developers.google.com/gmail/api/v1/reference/users/messages/insert)?不计入发送的邮件配额 – Tholle

回答

3

这里是answer经过1个多月的等待。

“我与Gmail API工程团队交谈过,不幸的是,这是按预期工作的.Gmail配额不是在Messages.send()请求的范围内计算的,而是与电子邮件进入我们的发送管道。用户的配额状态将在整个系统中同步,并且您将得到429个错误,但是配额用完和API实现之间的时间很短。 您可以扫描收件箱中的退回邮件,但这不是一个很好的解决方法。一般来说,我认为你应该假设发送电子邮件是尽力而为,并且你的应用程序不能假设200响应意味着消息已成功发送。 “ 我们将更新文档以清除此问题”

这是多么愚蠢? 。收件箱

编辑:。这已被更新为“不会解决”,他们只更新了文档完全智障

“送管道的邮件是复杂的:一旦用户超过其配额,有可能会在API开始返回429个错误响应之前延迟几分钟。所以你不能假设200响应意味着电子邮件被成功发送。“

0

根据Google电子邮件发送限制,Gmail API强制执行每日标准mail sending limits(对于支付Google Apps用户与免费gmail.com用户,这些限制有所不同)。

如果超过了谷歌企业应用套件电子邮件的限制,您可能会看到一个错误消息,因为这样:

  • 你已经达到了一个极限发送电子邮件
  • 你达到了Gmail的发送限制
  • 你突破最大收件人

要验证您的配额使用情况,检查您是否超出配额限制或请求更多配额的最简单方法是通过Developer Console