Я использую библиотеку 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
Вложения полосы из электронных писем с использованием mailkit / mimekit ⇐ C#
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение