Я пытаюсь разобрать MIME-сообщение, используя SharpMimeTools и несколько примеров сообщений Mime из Hunny Software . Мне удалось создать новое Сообщение из файла и сохранить декодированное тело в файл (это png-изображение), но созданный файл поврежден. В основном файл примера и тот, который я извлек, выглядят одинаково, но есть различия.
Файлы можно найти здесь:
Выдержка из Hex-View файлов:
Оригинал:
89 50 4e 47 0d 0a 1a 0a 00 00 00 0d 49 48 44 52
00 00 00 1b 00 00 00 1b 08 03 00 00 00 ba 0a 04
67 00 00 03 00 50 4c 54 45 ff ff ff 00 00 08 00
00 10 00 00 18 00 00 00 00 08 29 00 10 42 00 10
4a 00 08 31 00 10 52 08 21 73 08 29 7b 08 29 84
08 21 6b 00 18 5a 00 08 39 08 21 63 10 39 9c 18
42 a5 18 42 ad 18 42 b5 10 39 a5 10 31 94 00 18
Извлечено:
3f 50 4e 47 0d 0a 1a 0a 00 00 00 0d 49 48 44 52
00 00 00 1b 00 00 00 1b 08 03 00 00 00 3f 0a 04
67 00 00 03 00 50 4c 54 45 3f 3f 3f 00 00 08 00
00 10 00 00 18 00 00 00 00 08 29 00 10 42 00 10
4a 00 08 31 00 10 52 08 21 73 08 29 7b 08 29 3f
08 21 6b 00 18 5a 00 08 39 08 21 63 10 39 3f 18
42 3f 18 42 3f 18 42 3f 10 39 3f 10 31 3f 00 18
... и, наконец, этот код я использую:
public void MIMETest()
{
FileStream fileStream = new FileStream(@"D:\m0013.txt", FileMode.Open);
SharpMimeMessage m = new SharpMimeMessage(fileStream);
fileStream.Close();
parseMessage(m);
}
public void parseMessage(SharpMimeMessage message)
{
if (message.IsMultipart)
{
foreach (SharpMimeMessage subMessage in message)
{
parseMessage(subMessage);
}
}
else
{
System.IO.File.WriteAllText(@"D:\Extracts\" + message.Name,
message.BodyDecoded, message.Header.Encoding);
}
}
У вас есть предложения, как решить эту проблему?