Вложения полосы из электронных писем с использованием mailkit / mimekitC#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Вложения полосы из электронных писем с использованием mailkit / mimekit

Сообщение Anonymous »

Я использую библиотеку Mailkit для обработки электронных писем, которые работают хорошо. Тем не менее, я пытаюсь разделить электронные письма на их составляющие файлы а) основные электронные письма (без вложений) б) отдельные файлы вложения для хранения в файловой системе. Т.е. Они сохраняются вместе с основным электронным письмом, так что дублирующие данные. : /< /p>

Я пробовал: < /p>

foreach (MimePart part in inMessage.BodyParts)
{
if (part.IsAttachment)
{
// Remove MimePart < This function isn't available on the collection.
}
}
< /code>

также попробовал: < /p>

var builder = new BodyBuilder();
foreach (MimePart part in inMessage.BodyParts)
{
if (!part.IsAttachment)
{
// Add MimeParts to collection < This function isn't available on the collection.
}
}
outMessage.Body = builder.ToMessageBody();
< /code>

Если кто -то может помочь с этим, я бы очень признателен.private string GetMimeMessageOnly(string outDirPath)
{
MimeMessage message = (Master as fsEmail).GetMimeMessage();

if (message.Attachments.Any())
{
var multipart = message.Body as Multipart;
if (multipart != null)
{
while (message.Attachments.Count() > 0)
{
multipart.Remove(message.Attachments.ElementAt(0));
}
}
message.Body = multipart;
}

string filePath = outDirPath + Guid.NewGuid().ToString() + ".eml";
Directory.CreateDirectory(Path.GetDirectoryName(outDirPath));
using (var cancel = new System.Threading.CancellationTokenSource())
{
using (var stream = File.Create(filePath))
{
message.WriteTo(stream, cancel.Token);
}
}
return filePath;
}
< /code>

и только для получения вложений: < /p>

private List GetAttachments(string outDirPath)
{
MimeMessage message = (Master as fsEmail).GetMimeMessage();

List list = new List();
foreach (MimePart attachment in message.Attachments)
{
using (var cancel = new System.Threading.CancellationTokenSource())
{
string filePath = outDirPath + Guid.NewGuid().ToString() + Path.GetExtension(attachment.FileName);
using (var stream = File.Create(filePath))
{
attachment.ContentObject.DecodeTo(stream, cancel.Token);
list.Add(filePath);
}
}
}
return list;
}


Подробнее здесь: https://stackoverflow.com/questions/241 ... it-mimekit
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Отправка электронных писем с C# и использование задач Mimekit Auth
    Anonymous » » в форуме C#
    0 Ответы
    14 Просмотры
    Последнее сообщение Anonymous
  • Как исправить отправку электронных писем на Gmail в MailKit?
    Anonymous » » в форуме C#
    0 Ответы
    21 Просмотры
    Последнее сообщение Anonymous
  • Как исправить отправку электронных писем на Gmail в MailKit?
    Anonymous » » в форуме C#
    0 Ответы
    27 Просмотры
    Последнее сообщение Anonymous
  • Использование Mailkit для получения электронных писем из Gmail
    Anonymous » » в форуме C#
    0 Ответы
    7 Просмотры
    Последнее сообщение Anonymous
  • Отправка больших вложений с использованием mimekit и mailkit
    Anonymous » » в форуме C#
    0 Ответы
    3 Просмотры
    Последнее сообщение Anonymous

Вернуться в «C#»