Могу ли я отправлять файлы по электронной почте с помощью MailKit?
в качестве заголовка поддерживается MailKit для отправки файла?
Если да, то как я могу это сделать?
1 ответов
да. Это объясняется в документации, а также часто задаваемые вопросы.
из FAQ:
как создать сообщение с вложениями?
чтобы создать сообщение с вложениями, первое, что вам нужно сделать, это создать multipart/mixed
контейнер, в который вы хотите сначала добавить тело сообщения. Как только вы добавили тело, вы можете
затем добавьте к нему части MIME, содержащие содержимое файлов, которые вы хотите прикрепить, будучи обязательно установить
the Content-Disposition
значение заголовка приложения. Вероятно, вы также захотите установить filename
параметр Content-Disposition
заголовок, а также на Content-Type
заголовок. Самый удобный способ сделать это-просто использовать
сообщения MIME.Именем имущества,
установит оба параметра для вас, а также установит 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 and 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") {
ContentObject = new ContentObject (File.OpenRead (path), ContentEncoding.Default),
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;
более простой способ построить сообщения с вложениями - это воспользоваться преимуществами бодибилдеров класса.
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 and 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 ();
дополнительные сведения см. В разделе Создание Сообщения.