2016-01-27 2 views
2

Я просто хочу отобразить ссылки вложений для загрузки в почтовый ящик, не загружая сначала приложение. coz я не хочу скачивать и сохранять вложения на моем сервере каждый раз.Показать только ссылку для вложения в mailkit imap

, когда пользователь нажимает на ссылку, то я хочу, чтобы загрузить это конкретное прикрепление (ы) с сервера Gmail («https://mail-attachment.googleusercontent.com/attachment/u/1/?xxxx-xxxx»)

это есть в любом случае сделать это?

ответ

0

MailKit не предоставляет никакого способа сделать это, потому что это не то, что поддерживает IMAP.

При этом может быть выяснено, как создать URL-адрес, основанный на свойствах MIME-приложения.

Основываясь на изучении ссылки «Загрузка» в одном из моих собственных писем, похоже, что Google использует значение заголовка X-Attachment-Id для создания части URL-адреса realattid. У них, вероятно, есть и другие переменные, но трудно точно узнать, откуда взялись другие значения.

Значение attid в URL-адресе загрузки является позиционным значением вложения MIME в дереве, аналогичным строке BodyPart.PartSpecifier MailKit.

Вместо того чтобы пытаться восстановить ссылку загрузки GMail, вы всегда можете использовать API Mail12it ImapFolder.GetBodyPart() для загрузки отдельных частей MIME, когда пользователь их запрашивает.

Для того, чтобы воспользоваться этим APIом, вам нужно позвонить в ImapFolder.Fetch() с помощью MessageSummaryItems.BodyStructure.

Вы можете посмотреть https://github.com/jstedfast/MailKit/blob/master/samples/ImapClientDemo/ImapClientDemo/MainWindow.cs, чтобы узнать, как использовать свойство MessageSummary.Body, которое вы вернетесь из запроса Fetch.

Смежные вопросы