【发布时间】:2015-05-18 20:00:57
【问题描述】:
我正在使用 Google 的 PHP 客户端库向 Gmail 的 API 发送调用。使用这些资源,我可以使用如下代码发送带有附件的消息:
public function send_message(Google_Service_Gmail $gmail, $raw_message)
{
Log::info('Gmail API request \'users_messages->send\'');
$postBody = new Google_Service_Gmail_Message();
$postBody->setRaw(Str::base64_encode_url($raw_message));
return $gmail->users_messages->send('me', $postBody, ['uploadType' => 'multipart']);
}
但我终生无法弄清楚如何发送大于几 MB 的附件。我发现有必要使用分段上传类型,但我可以根据我目前拥有的内容确切地弄清楚如何实现它,因为上面的代码仍然给我这个错误:
Error calling POST https://www.googleapis.com/gmail/v1/users/me/messages/send?uploadType=multipart
Error 413: Request Entity Too Large
This article 提供了非常好的广泛的笔画信息,但我希望针对 Google 的 PHP 客户端库提供更多指导。
编辑:根据this page,最大上传大小实际上是 35 MB。我的 php.ini 中指定的大小足以满足此要求,并且请求失败为来自 google 的 413,而不是内部服务器错误。
【问题讨论】:
-
我不是 100% 确定,但我认为 gmail 的一般限制为 4MB。分段上传只是使您能够通过一个请求发送元数据和媒体。 (如果我错了,请告诉我......)
-
这必须是 google 的限制,否则您可以进入服务器上的 php.ini conf 并将帖子大小限制增加到任何大小。
-
根据this page,最大上传大小实际上是35 MB。 php.ini 中指定的大小足以满足此要求,请求失败为来自 google 的 413,而不是内部服务器错误。
标签: php gmail email-attachments google-api-php-client gmail-api