gpt4 book ai didi

android - 如何使用 Java 中的 Gmail API 导入邮件

转载 作者:行者123 更新时间:2023-11-30 01:47:36 28 4
gpt4 key购买 nike

我研究过这个页面: https://developers.google.com/gmail/api/v1/reference/users/messages/import

我有一些消息将在我的 Android 程序中进行跟踪。我将记录我将要删除的邮件,并且我想将那些计划删除的邮件导入到一个新文件夹中(在 Gmail API 中,文件夹称为标签)。

我试过测试表格:

            POST https://www.googleapis.com/gmail/v1/users/omitted%40gmail.com/messages/import?deleted=false&internalDateSource=dateHeader&neverMarkSpam=true&processForCalendar=false&key={YOUR_API_KEY}
{
"payload": {
"body": {
"data": "hellio"
}
}
}

响应:

        400 OK
- SHOW HEADERS -
{
"error": {
"errors": [
{
"domain": "global",
"reason": "invalidArgument",
"message": "'raw' RFC822 payload message string or uploading message via /upload/* URL required"
}
],
"code": 400,
"message": "'raw' RFC822 payload message string or uploading message via /upload/* URL required"
}
}

发送请求时出现问题,但我完全不确定这是什么意思。我需要的是一些 Java,它发送一个请求,该请求将导入一条消息,我可以在其中指定正文、接收日期和主题行。可能吗?

谢谢。

附言我只是想删除附件而不是整个邮件,但在阅读 Gmail API 文档后,它看起来是不可能的,只能通过 IMAP 实现。我问这个问题的原因是我不必将我的整个程序移动到 IMAP。

最佳答案

您的代码非常接近。你需要做的是写一封符合 RFC 2822 standard 的邮件。 , 和 Base64 编码表示邮件并使其 URL 安全(将所有 + 替换为 - 并将所有 / 替换为 _) 在插入之前。

你比我更擅长 Java,但如果我在浏览器的开发者控制台中做出正确的消息,它可能看起来像这样:

var encodedMail = btoa(
"Date: Thu, 1 Jan 1970 12:00:00 -0000\n" +
"From: emtholin@gmail.com\n" +
"To: emtholin@gmail.com\n" +
"Subject: Example Subject\n\n" +

"This is the body of the mail"
).replace(/\+/g, '-').replace(/\//g, '_');

然后我就插入这封邮件与您发出的相同请求:

POST https://www.googleapis.com/gmail/v1/users/me/messages?internalDateSource=dateHeader&key={YOUR_API_KEY}

{
"raw": "RGF0ZTogVGh1LCAxIEphbiAxOTcwIDEyOjAwOjAwIC0wMDAwCkZyb206IGVtdGhvbGluQGdtYWlsLmNvbQpUbzogZW10aG9saW5AZ21haWwuY29tClN1YmplY3Q6IEV4YW1wbGUgU3ViamVjdAoKVGhpcyBpcyB0aGUgYm9keSBvZiB0aGUgbWFpbA=="
}

如您所见,效果很好!

enter image description here

关于android - 如何使用 Java 中的 Gmail API 导入邮件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33493292/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com