我正在使用适用于Android的 Gmail API 来发送电子邮件。 我想发送邮件,以便在社交消息组中收到这些邮件。
因此,我可以通过任何方式设置电子邮件的标签,同时使用Gmail API发送电子邮件吗?
我们可以在通过mail.google.com发送邮件时设置标签,那么如何使用Gmail API实现相同的目标呢?
答案 0 :(得分:0)
您无法指定标签message should have when sending it。在哪个标签下,某些消息最终应该是up to the user。
但是,如果您要向用户自己发送消息,那么一旦发送消息就不难修改消息。发送消息时,您将获得响应中应用于消息的所有标签。只需send a message,然后modify the labels,即可完成。
这是一个示例(使用常规的http请求,但您可以对其中一个客户端库执行相同操作):
// Base64-encoding the message and making it url-safe by replacing
// all '+' with '-', and all '/' with '_'.
btoa("To: example@gmail.com\n" +
"From: example@gmail.com\n" +
"Subject: Cool man\n\n" +
"Here is the message").replace(/\+/g, '-').replace(/\//g, '_');
// => "VG86IGV4YW1wbGVAZ21haWwuY29tCkZyb206IGV4YW1wbGVAZ21haWwuY29tClN1YmplY3Q6IFRoaXMgaXMgdGhlIHN1YmplY3QKCkhlcmUgaXMgd2VyZSB0aGUgbWVzc2FnZSBnb2Vz"
发送消息:
POST https://www.googleapis.com/gmail/v1/users/me/messages/send
{
"raw": "VG86IGV4YW1wbGVAZ21haWwuY29tCkZyb206IGV4YW1wbGVAZ21haWwuY29tClN1YmplY3Q6IFRoaXMgaXMgdGhlIHN1YmplY3QKCkhlcmUgaXMgd2VyZSB0aGUgbWVzc2FnZSBnb2Vz"
}
<强>响应强>
{
"id": "150866b2f6956617",
"threadId": "150866b2f6956617",
"labelIds": [
"SENT",
"INBOX",
"UNREAD"
]
}
然后,我只需添加CATEGORY_SOCIAL
- 标签即可在social
标签下显示(删除INBOX
- 标签根本不显示。)< / p>
请求强>
POST https://www.googleapis.com/gmail/v1/users/me/messages/150866b2f6956617/modify
{
"addLabelIds": [
"CATEGORY_SOCIAL"
]
}
工作得很好!