php - Google 的 GMail API 下载附件

标签 php google-api attachment gmail-api

我正在为新的 Gmail API 使用 PHP SDK。如何从电子邮件中提取附件?

Here是 API 文档,但在本例中,缺少 PHP 示例。虽然我看到有人用 PHP 实现了这一点。

编辑:

这是我目前所知道的,不确定是否正确:

$attachmentData = $service->users_messages_attachments->get($emailAccount, $messageId, $attachmentId);

$myfile = fopen("excel.xlsx", "w");
fwrite($myfile, $attachmentData);
fclose($myfile);

最佳答案

首先我们需要从附件对象中获取数据:

 $attachmentObj = $service->users_messages_attachments->get($emailAccount, $messageId, $attachmentId);
 $data = $attachmentObj->getData(); //Get data from attachment object

然后在写入文件之前,将数据转换为标准 RFC 4648 base64 编码:

 $data = strtr($data, array('-' => '+', '_' => '/'));
 $myfile = fopen("excel.xlsx", "w+");;
 fwrite($myfile, base64_decode($data));
 fclose($myfile);

现在可以了!

关于php - Google 的 GMail API 下载附件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38876996/

相关文章:

java - 从 Java 应用程序发送电子邮件的最佳方式

javascript - Canvas 图像未在站点中显示

php - 如何在 Laravel 5.4 中设置 cookie?

cocoa - 在 Cocoa 中发送带有附件的电子邮件

java - 将 PDF 附加到电子邮件

python - client_secrets.json 文件部署到 GAE 后将无法读取

php - 无法在 mysql_query() 中使用变量?

javascript - PHP 获取按钮 $_POST 单击时的值

java - Firebase 的安全缺陷

google-api - 如何在Google api折线图中禁用x轴和y轴线