【发布时间】:2016-04-24 00:41:52
【问题描述】:
我有一个使用 Gmail 的“存档”功能获得的 mbox 文件。其中的每封邮件都有一个“X-Gmail-Labels”标头,列出了它所在的标签/文件夹。当我将 mbox 文件中的邮件导入新的 Gmail 帐户时(通过在 Thunderbird 中打开文件并将邮件复制过来) ,新 Gmail 帐户中的邮件副本仍然具有 X-Gmail-Labels 标头,但它不执行任何操作 - 邮件实际上没有标记任何标签。所以我编写了一个脚本来使用 Gmail API 来获取每封邮件,读取它的 X-Gmail-Labels,并将这些标签添加到邮件中。这主要是有效的,除了两个标签(SENT 和 DRAFT),我得到一个错误,说它是一个无效的标签。这些标签 ID 确实存在。如何将它们添加到消息中?
这是我提出的要求:
curl -H "Authorization: Bearer OAUTH_TOKEN" \
-H "Content-Type: application/json" \
-X POST \
-d '{"addLabelIds": ["SENT"]}' \
https://www.googleapis.com/gmail/v1/users/me/messages/MESSAGE_ID/modify
这是响应正文:
{
"error": {
"errors": [
{
"domain": "global",
"reason": "invalidArgument",
"message": "Invalid label: SENT"
}
],
"code": 400,
"message": "Invalid label: SENT"
}
}
(注意:我的实际脚本是用 Python 编写的,但在 curl 中更容易看到发生了什么。)
【问题讨论】:
-
Thollie 下面的回答是正确的,请参阅:developers.google.com/gmail/api/guides/labels 了解哪些标签可以应用于邮箱中存在的邮件等。