Могу ли я отправлять файлы по электронной почте, используя MailKit?

Как заголовок, MailKit поддерживается для отправки файла?
Если да, как я могу это сделать?

Ответы на вопрос(1)

Решение Вопроса

Часто задаваемые вопросы.

Из FAQ:

Как мне создать сообщение с вложениями?

Чтобы создать сообщение с вложениями, первое, что вам нужно сделать, это создатьmultipart/mixed Контейнер, к которому вы хотите добавить тело сообщения. После того, как вы добавили тело, вы можете добавить в него части MIME, которые содержат содержимое файлов, которые вы хотите прикрепить, обязательно установивContent-Disposition значение заголовка для вложения. Возможно, вы также захотите установитьfilename параметр наContent-Disposition заголовок, а такжеname параметр наContent-Type заголовок. Самый удобный способ сделать это - просто использоватьMimePart.FileName свойство, которое будет устанавливать оба параметра для вас, а также установкуContent-Disposition значение заголовка вattachment если он еще не был установлен на что-то другое.

var message = new MimeMessage ();
message.From.Add (new MailboxAddress ("Joey", "[email protected]"));
message.To.Add (new MailboxAddress ("Alice", "[email protected]"));
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") {
    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", "[email protected]"));
message.To.Add (new MailboxAddress ("Alice", "[email protected]"));
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 ();

Для получения дополнительной информации см.Создание сообщений.

 kuldeep21 июн. 2017 г., 14:27
ссылка больше не действительна?
 kuldeep21 июн. 2017 г., 16:19
Можно ли в Mailkit отправлять данные календаря (содержимое ics) как один из множества элементов, но не как вложение?
 jstedfast18 июн. 2016 г., 13:22
если вы добавляете его, как в примере, я гарантирую, что он будет отправлен.
 kuldeep22 июн. 2017 г., 16:06
Я попытался следующим образом. Var attachment = new MimePart ("text / calendar; method = REQUEST", "") {ContentObject = new ContentObject (GenerateStreamFromString (calString), ContentEncoding.Default), ContentDisposition = new ContentDisposition (ContentDisposition.Inline) , ContentTransferEncoding = ContentEncoding.Base64}; но в почтовом клиенте Outlook я вижу, что ics все еще идет как приложение, а не как приглашение на собрание. Я использую Outlook 2016
 KlynkC17 июн. 2016 г., 03:43
Спасибо, файл сработал отлично. Но изображение не так, как ожидалось, для второго примера
 jstedfast21 июн. 2017 г., 16:34
Да - просто установите расположение содержимого в строку
 KlynkC18 июн. 2016 г., 09:11
Я отправил файл, но файл с таким типом изображения не был отправлен
 jstedfast22 июн. 2017 г., 16:09
Найдите пример сообщения, которое работает с Outlook, а затем создайте свое сообщение так же, как это сообщение :-) MimeKit можно использовать для создания любого макета сообщения и установки любого атрибута, поэтому, если возможно достичь того, чего вы хотите с MIME, это можно сделать это с MimeKit
 jstedfast21 июн. 2017 г., 14:27
Спасибо - я только что обновил ссылку.
 jstedfast17 июн. 2016 г., 14:42
Я не понимаю, что это значит.

Ваш ответ на вопрос