public void TestGetFirstMessageWithMediaTypeMultiPartFindMultiPartMediaTypeWithMultipleHTML() { const string rfcExample = "From: Nathaniel Borenstein <*****@*****.**>\r\n" + "To: Ned Freed <*****@*****.**>\r\n" + "Date: Sun, 21 Mar 1993 23:56:48 -0800 (PST)\r\n" + "Subject: Sample message\r\n" + "MIME-Version: 1.0\r\n" + "Content-type: multipart/mixed; boundary=\"simple boundary\"\r\n" + "\r\n" + "--simple boundary\r\n" + "Content-type: multipart/mixed; boundary=\"anotherBoundary\"\r\n" + "\r\n" + "--anotherBoundary\r\n" + "\r\n" + "TEXT\r\n" + "--anotherBoundary\r\n" + "Content-Type: text/html; charset=us-ascii\r\n" + "\r\n" + "HTML\r\n" + "--anotherBoundary--\r\n" + "--simple boundary\r\n" + "Content-type: text/html; charset=ISO-8859-1\r\n" + "\r\n" + "MORE HTML\r\n" + "--simple boundary--"; OPMessage message = new OPMessage(Encoding.ASCII.GetBytes(rfcExample)); MessagePart part = message.FindFirstMessagePartWithMediaType("text/html"); Assert.NotNull(part); Assert.IsFalse(part.IsMultiPart); Assert.AreEqual("text/html", part.ContentType.MediaType); Assert.AreEqual("HTML", part.GetBodyAsText()); }
public void TestGetFirstMessageWithMediaTypeSimpleNotFound() { const string rfcExample = "Content-type: text/plain; charset=us-ascii\r\n" + "\r\n" + "This is explicitly typed plain US-ASCII text"; OPMessage message = new OPMessage(Encoding.ASCII.GetBytes(rfcExample)); MessagePart part = message.FindFirstMessagePartWithMediaType("text/html"); // We should not be able to find such a MessagePart Assert.Null(part); }
public void TestGetFirstMessageWithMediaTypeSimpleFoundHTML() { const string rfcExample = "Content-type: text/html; charset=us-ascii\r\n" + "\r\n" + "This is explicitly typed plain US-ASCII HTML text"; OPMessage message = new OPMessage(Encoding.ASCII.GetBytes(rfcExample)); MessagePart part = message.FindFirstMessagePartWithMediaType("text/html"); Assert.NotNull(part); Assert.AreEqual("text/html", part.ContentType.MediaType); Assert.AreEqual("us-ascii", part.ContentType.CharSet); Assert.AreEqual(Encoding.ASCII, part.BodyEncoding); Assert.AreEqual("This is explicitly typed plain US-ASCII HTML text", part.GetBodyAsText()); }
/// <summary> /// Example showing: /// - how to find a MessagePart with a specified MediaType /// - how to get the body of a MessagePart as a string /// </summary> /// <param name="message">The message to examine for xml</param> public static void FindXmlInMessage(OPMessage message) { MessagePart xml = message.FindFirstMessagePartWithMediaType("text/xml"); if (xml != null) { // Get out the XML string from the email string xmlString = xml.GetBodyAsText(); System.Xml.XmlDocument doc = new System.Xml.XmlDocument(); // Load in the XML read from the email doc.LoadXml(xmlString); // Save the xml to the filesystem doc.Save("test.xml"); } }