我正在使用新的GMail API。我的目标是获取每封电子邮件的所有附件的列表。它已经完成并且正在工作。
现在,当用户单击每个附件时,我想获得直接链接在新窗口中打开每个附件。如何获得该“ ID”?
这是我的工作:
Message message = service.users().messages().get(userId, messageId).execute();
List<MessagePart> parts = message.getPayload().getParts();
for (MessagePart part : parts) {
if (part.getFilename() != null && part.getFilename().length() > 0) {
String filename = part.getFilename();
String attId = part.getBody().getAttachmentId(); // It isn't ID that Im looking for.
我使用JAVA。
谢谢,迭戈。
实际上,似乎确实存在一种方法,可以使用户直接从gmail的服务器下载附件,而文件不会通过我们的服务器。在这里找到它:
https://github.com/KartikTalwar/gmail.js/issues/134#issuecomment-69447858
https://mail.google.com/mail/u/0/?ui=2&view=att&th={message_id}&attid=0.{atachment_index}&disp=safe&zw
attachmment_index只是附件的索引。如果有3个附件,而您想获取第3个文件,则索引值为3。此URL是302标头,起下载文件的链接缩短器的作用。打开此链接将带您到附件数据
[有提到ik
值,我不知道它是什么意思,但即使没有它,它似乎也可以工作。
@ aloo
如果您是我,我不会尝试依靠附件ID,而是将附件的原始内容下载到您的服务器上并显示给用户。
应该不会太复杂,您只需要解析the data
field的内容。您可以使用Java的Mime库进行此操作。然后,将内容复制到Servlet的data
。