Gmail API 导入 - 错误 413 请求实体太大
Posted
技术标签:
【中文标题】Gmail API 导入 - 错误 413 请求实体太大【英文标题】:Gmail API Import - Error 413 Request Entity Too Large 【发布时间】:2016-11-24 05:44:19 【问题描述】:我正在使用 Google API php 客户端。我正在编写一个程序,它将批量消息从一个帐户导入另一个帐户。要导入,我使用以下行:
$service->users_messages->import('me', $message, $options);
..其中 $message 是来自$service->users_messages->get()
的原始消息。
首先,程序从一个帐户获取消息列表。用户选择他想要导入的消息,然后单击导入按钮。导入循环选定的邮件并且工作正常,但有些邮件包含大附件。这些消息将失败并返回 错误 413 - 请求实体太大。
我已阅读我需要指出上传类型应为多部分。 我正在使用 Google API PHP 客户端,但没有看到任何添加此上传类型的方法、类或选项。
任何建议都会有所帮助。谢谢。
【问题讨论】:
【参考方案1】:尝试将变量 $message 设置为此 mail with attachment 代码 sn-p。
$strRawMessage .= "\r\n--$boundary\r\n";
$strRawMessage .= 'Content-Type: '. $mimeType .'; name="'. $fileName .'";' . "\r\n";
$strRawMessage .= 'Content-ID: <' . $strSesFromEmail . '>' . "\r\n";
$strRawMessage .= 'Content-Description: ' . $fileName . ';' . "\r\n";
$strRawMessage .= 'Content-Disposition: attachment; filename="' . $fileName . '"; size=' . filesize($filePath). ';' . "\r\n";
$strRawMessage .= 'Content-Transfer-Encoding: base64' . "\r\n\r\n";
$strRawMessage .= chunk_split(base64_encode(file_get_contents($filePath)), 76, "\n") . "\r\n";
$strRawMessage .= '--' . $boundary . "\r\n";
$strRawMessage .= "\r\n--$boundary\r\n";
$strRawMessage .= 'Content-Type: text/plain; charset=' . $charset . "\r\n";
$strRawMessage .= 'Content-Transfer-Encoding: 7bit' . "\r\n\r\n";
$strRawMessage .= $strMailTextVersion . "\r\n";
$strRawMessage .= "--$boundary\r\n";
$strRawMessage .= 'Content-Type: text/html; charset=' . $charset . "\r\n";
$strRawMessage .= 'Content-Transfer-Encoding: quoted-printable' . "\r\n\r\n";
$strRawMessage .= $strMailContent . "\r\n";
// The message needs to be encoded in Base64URL
$mime = rtrim(strtr(base64_encode($strRawMessage), '+/', '-_'), '=');
$msg = new Google_Service_Gmail_Message();
$msg->setRaw($mime);
还可以查看此curl implementation 或此ajax implementation
【讨论】:
谢谢,但还是没用。我的邮件格式相同,除了附件大的以外,都导入成功了。以上是关于Gmail API 导入 - 错误 413 请求实体太大的主要内容,如果未能解决你的问题,请参考以下文章
Gmail REST API:400错误请求+失败的前提条件
我在第79行的REST.php中有400个错误请求,实现了GMAIL Api PHP