我只是想在邮件正文中显示要下载的附件链接,而不是最初下载附件。因为我不想每次都在我的服务器上下载和保存附件。
当用户点击该链接时,我想从gmail服务器下载该特定附件(" https://mail-attachment.googleusercontent.com/attachment/u/1/?xxxx-xxxx")
无论如何都有这样做吗?
答案 0 :(得分:0)
MailKit没有提供任何方法,因为它不是IMAP支持的。
也就是说,有可能弄清楚如何根据MIME附件的属性构造URL。
根据我自己的某封电子邮件中的“下载”链接,Google似乎使用其X-Attachment-Id
标头值来构建网址的realattid
部分。它们可能还有其他变量,但很难确切知道其他值的来源。
下载网址中的attid
值似乎是树中MIME附件的位置值,类似于MailKit的BodyPart.PartSpecifier
字符串。
您可以随时使用MailKit的ImapFolder.GetBodyPart()
API在用户请求时下载单个MIME部分,而不是尝试重新创建GMail的下载链接。
为了利用此API,您需要使用MessageSummaryItems.BodyStructure
致电ImapFolder.Fetch()
。
您可以查看https://github.com/jstedfast/MailKit/blob/master/samples/ImapClientDemo/ImapClientDemo/MainWindow.cs,了解如何使用从MessageSummary.Body
请求中获取的Fetch
媒体资源。