Esempio n. 1
0
        public void TestThatCssFileGetsParsed()
        {
            Assert.IsNotNull(m_Stream);
            var reader = new MailReader();

            MIMER.IEndCriteriaStrategy endofmessage = new BasicEndOfMessageStrategy();
            var message = reader.ReadMimeMessage(ref m_Stream, endofmessage);

            Assert.That(message.Attachments.Count(a => a.Type.Equals("text") && a.SubType.Equals("css")), Iz.EqualTo(1));
        }
Esempio n. 2
0
        static void Main(string[] args)
        {
            string path = ".";

            if (args.Count() > 0)
            {
                path = args[0];
            }
            var          files   = Directory.GetFiles(path, "*.doc");
            FileStream   csvFile = new FileStream("output.csv", FileMode.Create);
            StreamWriter sw      = new StreamWriter(csvFile, Encoding.Unicode);

            foreach (var file in files)
            {
                string content = File.ReadAllText(file);
                content = content.Replace("\n", "\r\n");
                Stream fs = new MemoryStream(Encoding.ASCII.GetBytes(content));

                var reader = new MailReader();
                MIMER.IEndCriteriaStrategy endofmessage = new BasicEndOfMessageStrategy();
                //MIMER.IEndCriteriaStrategy endofmessage = new EndOfLineStrategy();
                var message = reader.ReadMimeMessage(ref fs, endofmessage);
                //reader.Read(ref fs, endofmessage);
                var html = message.Body.FirstOrDefault <KeyValuePair <string, string> >().Value;


                var htmldoc = new HtmlAgilityPack.HtmlDocument();
                htmldoc.LoadHtml(html);

                //var nodes = htmldoc.DocumentNode.SelectNodes("//td");
                //foreach (var node in nodes)
                //{
                //    if (node.InnerText == "15021991585" || node.InnerText.Contains("丁曹凯"))
                //    {
                //        Console.WriteLine(node.InnerText + " " + node.XPath);
                //    }
                //}
                //var node = htmldoc.DocumentNode.SelectNodes("//a");
                var email = htmldoc.DocumentNode.SelectSingleNode("/html[1]/body[1]/table[2]/tr[1]/td[1]/html[1]/body[1]/table[1]/tr[1]/td[1]/table[1]/tr[1]/td[2]/table[1]/tr[2]/td[3]/table[1]/tr[1]/td[2]/a[1]");
                var name  = htmldoc.DocumentNode.SelectSingleNode("/html[1]/body[1]/table[2]/tr[1]/td[1]/html[1]/body[1]/table[1]/tr[1]/td[1]/table[1]/tr[1]/td[2]");
                var phone = htmldoc.DocumentNode.SelectSingleNode("/html[1]/body[1]/table[2]/tr[1]/td[1]/html[1]/body[1]/table[1]/tr[1]/td[1]/table[1]/tr[1]/td[2]/table[1]/tr[2]/td[2]/table[1]/tr[1]/td[2]");
                //Console.WriteLine(email.InnerText + " " + name.InnerText + " " + phone.InnerText);
                int    start = name.InnerText.IndexOf("&nbsp;") + 6;
                int    end   = name.InnerText.IndexOf("流程");
                string line  = name.InnerText.Substring(start, end - start).Replace("&nbsp", "").Trim() + "," + phone.InnerText + "," + email.InnerText;

                sw.WriteLine(line);
            }
            sw.Close();
            csvFile.Close();
        }
Esempio n. 3
0
        public void DecodeBase64()
        {
            var reader = new MailReader();

            MIMER.IEndCriteriaStrategy endofmessage = new BasicEndOfMessageStrategy();
            var stream = (Stream)File.Open("purchase-order.mhtml", FileMode.Open);

            var message = reader.ReadMimeMessage(ref stream, endofmessage);

            stream.Close();

            Assert.Equal(2, message.Attachments.Count);
            Assert.Equal("html", message.Attachments[0].SubType);
        }
Esempio n. 4
0
        public void TestParse()
        {
            Assert.IsNotNull(m_Stream);
            MIMER.RFC2045.MailReader   m            = new MailReader();
            MIMER.IEndCriteriaStrategy endofmessage = new BasicEndOfMessageStrategy();

            MIMER.RFC2045.IMimeMailMessage message = m.ReadMimeMessage(ref m_Stream, endofmessage);
            Assert.AreEqual("*****@*****.**", message.To[0].Address);
            Assert.AreEqual("*****@*****.**", message.CarbonCopy[0].Address);
            Assert.AreEqual("Testing the .eml format", message.Subject);
            Assert.AreEqual(3, message.Attachments.Count);
            Assert.That(message.Attachments.Count(x => x.Name != null && x.Name.Equals("cp_bg_black800.gif")), Iz.EqualTo(1));
            System.Net.Mail.MailMessage mailmessage = message.ToMailMessage();
            Assert.IsNull(mailmessage.From);
            Assert.AreEqual("*****@*****.**", mailmessage.CC[0].Address);
            Assert.AreEqual(message.TextMessage, mailmessage.Body);
            Assert.AreEqual(message.Attachments.Count, mailmessage.Attachments.Count);
        }
        string ExtractHtml(byte[] input)
        {
            var reader = new MailReader();

            MIMER.IEndCriteriaStrategy endofmessage = new BasicEndOfMessageStrategy();
            var stream = (Stream) new MemoryStream(input);

            var message = reader.ReadMimeMessage(ref stream, endofmessage);

            stream.Close();

            foreach (var attachment in message.Attachments)
            {
                if (attachment.Type == "text" && attachment.SubType.StartsWith("htm"))
                {
                    return(Encoding.UTF8.GetString(attachment.Data));
                }
            }

            return(null);
        }
Esempio n. 6
0
        public void TestRead()
        {
            IMimeMailMessage message = m_Reader.ReadMimeMessage(ref m_Stream, m_EndOfMessageStrategy);

            Assert.AreEqual("*****@*****.**", message.From[0].Address);
            Assert.AreEqual("*****@*****.**", message.To[0].Address);
            Assert.AreEqual(2, message.Body.Count);
            Assert.AreEqual("Mailbox.se - Gratis dataspel...", message.Subject);
            StringAssert.Contains("Syftet med detta kunskapsspel", message.TextMessage);
            Assert.IsFalse(message.IsNull());
        }