我只是想在邮件正文中显示要下载的附件链接,而不是一开始就下载附件。因为我不想每次都下载附件并将其保存在我的服务器上。
当用户单击该链接时,我想从 gmail 服务器(“https://mail-attachment.googleusercontent.com/attachment/u/1/?xxxx-xxxx”)下载该特定附件
有什么办法吗?
最佳答案
MailKit 不提供任何执行此操作的方法,因为它不是 IMAP 支持的东西。
也就是说,有可能弄清楚如何根据 MIME 附件的属性构造 URL。
根据检查我自己的一封电子邮件中的下载链接,Google 似乎使用他们的 X-Attachment-Id
header 值来构建 realattid
部分网址。它们可能还有其他变量,但很难确切知道其他值的来源。
下载 url 中的 attid
值似乎是树中 MIME 附件的位置值,类似于 MailKit 的 BodyPart.PartSpecifier
字符串。
与其尝试重新创建 GMail 的下载链接,不如使用 MailKit 的 ImapFolder.GetBodyPart()
用于在用户请求时下载各个 MIME 部分的 API。
为了利用此 API,您需要调用 ImapFolder.Fetch()
使用 MessageSummaryItems.BodyStructure
。
可以看看https://github.com/jstedfast/MailKit/blob/master/samples/ImapClientDemo/ImapClientDemo/MainWindow.cs查看如何使用从 Fetch
请求返回的 MessageSummary.Body
属性。
关于c# - 在 mailkit imap 中仅显示附件链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35036855/