private static Message ParseMessage(byte[] data)
{
string msg = System.Text.Encoding.ASCII.GetString(data);
Message message = (Message)Parser.ParseMimeTypedAndEncodedContent(msg);
foreach (string key in message.HeaderFields.AllKeys)
{
string name = key;
string value = message.HeaderFields[key];
if (name.Equals("received")) message.Trace.Add(Parser.ParseTrace(key + ": " + value));
else if (name.Equals("to")) message.To = Parser.ParseAddresses(value);
else if (name.Equals("cc")) message.Cc = Parser.ParseAddresses(value);
else if (name.Equals("bcc")) message.Bcc = Parser.ParseAddresses(value);
else if (name.Equals("reply-to")) message.ReplyTo = Parser.ParseAddress(value);
else if (name.Equals("from")) message.From = Parser.ParseAddress(value);
else if (name.Equals("sender")) message.Sender = Parser.ParseAddress(value);
else if (name.Equals("content-type")) message.ContentType = Parser.GetContentType(key + ": " + value);
else if (name.Equals("content-disposition")) message.ContentDisposition = Parser.GetContentDisposition(key + ": " + value);
else if (name.Equals("domainkey-signature")) message.Signatures.DomainKeys = Signature.Parse(key + ": " + value, message);
}
return message;
//if (message.ContentType.MimeType != null && message.ContentType.MimeType.IndexOf("multipart/signed") != -1) message.IsSigned = true;
//if (message.ContentType.MimeType != null && message.ContentType.MimeType.IndexOf("multipart/encrypted") != -1) message.IsEncrypted = true;
}
private static void ParseMessage(ref Message message, X509Certificate2Collection certificates)