タイトルの通り、MailKitはファイル送信に対応していますか?
はいの場合、どうすればできますか?
質問する
44969 次
3 に答える
104
はい。これはドキュメントとFAQで説明されています。
よくある質問から:
添付ファイル付きのメッセージを作成するにはどうすればよいですか?
添付ファイル付きのメッセージを作成するには、最初にコンテナを作成する必要がありmultipart/mixed
ます。このコンテナに、最初にメッセージ本文を追加します。本文を追加したら、添付したいファイルのコンテンツを含む MIME パーツを本文に追加できます。必ずContent-Disposition
ヘッダー値を添付ファイルに設定してください。おそらく、ヘッダーのパラメーターだけでなくfilename
、ヘッダーのパラメーターも設定する必要があります。これを行う最も便利な方法は、MimePart.FileNameプロパティを使用することです。これにより、両方のパラメーターが設定され、ヘッダー値がまだ別の値に設定されていない場合はヘッダー値が設定されます。Content-Disposition
name
Content-Type
Content-Disposition
attachment
var message = new MimeMessage ();
message.From.Add (new MailboxAddress ("Joey", "joey@friends.com"));
message.To.Add (new MailboxAddress ("Alice", "alice@wonderland.com"));
message.Subject = "How you doin?";
// create our message text, just like before (except don't set it as the message.Body)
var body = new TextPart ("plain") {
Text = @"Hey Alice,
What are you up to this weekend? Monica is throwing one of her parties on
Saturday. I was hoping you could make it.
Will you be my +1?
-- Joey
"
};
// create an image attachment for the file located at path
var attachment = new MimePart ("image", "gif") {
Content = new MimeContent (File.OpenRead (path)),
ContentDisposition = new ContentDisposition (ContentDisposition.Attachment),
ContentTransferEncoding = ContentEncoding.Base64,
FileName = Path.GetFileName (path)
};
// now create the multipart/mixed container to hold the message text and the
// image attachment
var multipart = new Multipart ("mixed");
multipart.Add (body);
multipart.Add (attachment);
// now set the multipart/mixed as the message body
message.Body = multipart;
添付ファイル付きのメッセージを作成するより簡単な方法は、 BodyBuilderクラスを利用することです。
var message = new MimeMessage ();
message.From.Add (new MailboxAddress ("Joey", "joey@friends.com"));
message.To.Add (new MailboxAddress ("Alice", "alice@wonderland.com"));
message.Subject = "How you doin?";
var builder = new BodyBuilder ();
// Set the plain-text version of the message text
builder.TextBody = @"Hey Alice,
What are you up to this weekend? Monica is throwing one of her parties on
Saturday. I was hoping you could make it.
Will you be my +1?
-- Joey
";
// We may also want to attach a calendar event for Monica's party...
builder.Attachments.Add (@"C:\Users\Joey\Documents\party.ics");
// Now we just need to set the message body and we're done
message.Body = builder.ToMessageBody ();
詳細については、メッセージの作成を参照してください。
于 2016-06-16T13:08:03.523 に答える