最初に添付ファイルをダウンロードせずに、ダウンロードする添付ファイルのリンクをメール本文に表示したいだけです。毎回サーバーに添付ファイルをダウンロードして保存したくないので。
ユーザーがリンクをクリックすると、その特定の添付ファイルを Gmail サーバーからダウンロードしたい (" https://mail-attachment.googleusercontent.com/attachment/u/1/?xxxx-xxxx ")
とにかくこれを行うことはありますか?
最初に添付ファイルをダウンロードせずに、ダウンロードする添付ファイルのリンクをメール本文に表示したいだけです。毎回サーバーに添付ファイルをダウンロードして保存したくないので。
ユーザーがリンクをクリックすると、その特定の添付ファイルを Gmail サーバーからダウンロードしたい (" https://mail-attachment.googleusercontent.com/attachment/u/1/?xxxx-xxxx ")
とにかくこれを行うことはありますか?
MailKit は、IMAP がサポートするものではないため、これを行う方法を提供しません。
とはいえ、MIME 添付ファイルのプロパティに基づいて URL を構築する方法を理解することは可能かもしれません。
私自身の電子メールの 1 つでダウンロード リンクを調べると、Google はX-Attachment-Id
ヘッダー値を使用しrealattid
て URL の一部を構成しているようです。おそらく他の変数も持っていますが、他の値がどこから来たのかを正確に知ることは困難です。
ダウンロード URLのattid
値は、MailKit のBodyPart.PartSpecifier
文字列と同様に、ツリー内の MIME 添付ファイルの位置の値のようです。
GMail のダウンロード リンクを再作成しようとする代わりに、ユーザーが要求したときに、いつでも MailKit のImapFolder.GetBodyPart()
API を使用して個々の MIME パーツをダウンロードできます。
この API を利用するには、 で呼び出す必要がありImapFolder.Fetch()
ますMessageSummaryItems.BodyStructure
。
https://github.com/jstedfast/MailKit/blob/master/samples/ImapClientDemo/ImapClientDemo/MainWindow.csを見て、リクエストMessageSummary.Body
から返されるプロパティを使用する方法を確認できます。Fetch