Après avoir analysé une Mbox, filtré le (s) message (s) par une condition et écrit ces messages dans un nouveau flux => fichier, la Mbox résultante manque les lignes FROM. Pouvez-vous me dire si je commets une erreur de code ou s'il y a un bug dans la fonction MimeParser?Mimekit: analyser les résultats de la Mbox vers une nouvelle Mbox
exemple de code:
using System.IO;
using MimeKit;
namespace mboxScan
{
class Program
{
static void Main(string[] args)
{
// Grab local .mbox file
var stream = MboxStream(@"C:\temp\user.mbox");
// Filter logic
string fromFilter = "[email protected]";
// Load every message from a Unix mbox
var parser = new MimeParser(stream, MimeFormat.Mbox);
// Create new stream for results
var exportStream = new MemoryStream();
while (!parser.IsEndOfStream)
{
var message = parser.ParseMessage();
if (message.From.ToString().Contains(fromFilter))
{
// Write this message to exportStream
message.WriteTo(exportStream);
}
}
// ** Save exportStream to new MBOX
exportStream.Position = 0;
using (var fileStream = File.Create(@"C:\temp\results.mbox"))
{
exportStream.Seek(0, SeekOrigin.Begin);
exportStream.CopyTo(fileStream);
}
}
static Stream MboxStream(string s)
{
Stream fs = File.OpenRead(s);
return fs;
}
}
}
et les résultats commencent par:
Delivered-To:
Pour clarifier les choses, je manque la première ligne du message, comme on le voit dans la Mbox d'origine, (par exemple): De [email protected]x Mon Jun 16 07:20:00 2014 – user2044384
J'ai trouvé la ligne: 'var topLine = parser.MboxMarker;' – user2044384