Esempio n. 1
0
        public void TestOne()
        {
            EmailMessage emailmessage = new EmailMessage();

            emailmessage.FromAddress = TestAddressHelper.GetFromAddress();

            emailmessage.AddToAddress(TestAddressHelper.GetToAddress());

            emailmessage.Subject = "Missed you";

            emailmessage.TextPart = new TextAttachment("Just checking where " +
                                                       "you were last night.\r\nSend me a note!\r\n\r\n-Charles");

            emailmessage.HtmlPart = new HtmlAttachment("<html><body>" +
                                                       "<p>Just checking up on where you were last night.</p>\r\n" +
                                                       "<p>Send me a note!</p>\r\n\r\n" +
                                                       "<p>-Charles</p></body></html>");

            SmtpServer smtpserver = TestAddressHelper.GetSmtpServer();

            //smtpserver.CaptureSmtpConversation=true;

            try
            {
                emailmessage.Send(smtpserver);
            }
            finally
            {
                //log.Debug(smtpserver.GetSmtpConversation());
                //Assert.IsNotNull(smtpserver.GetSmtpConversation());
                //smtpserver.CaptureSmtpConversation=false;
            }
        }
Esempio n. 2
0
        public void TestTwo()
        {
            EmailMessage emailmessage = new EmailMessage();

            emailmessage.FromAddress = TestAddressHelper.GetFromAddress();

            emailmessage.AddToAddress(TestAddressHelper.GetToAddress());

            emailmessage.Subject = "A photo of hawthornes";

            emailmessage.TextPart = new TextAttachment("This photo requires a better email reader.");
            emailmessage.HtmlPart = new HtmlAttachment("<html><body>" +
                                                       "<p>Note to self: look at this photo again in 30 years.</p>" +
                                                       "<p><img src=\"cid:hawthornes\" alt=\"Hawthorne bush\"/></p>" +
                                                       "<p>-Marcel</p>");

            FileInfo relatedfileinfo = new FileInfo(@"..\..\TestFiles\grover.jpg");

            FileAttachment relatedfileattachment = new FileAttachment(relatedfileinfo, "hawthornes");

            relatedfileattachment.ContentType = "image/jpeg";

            emailmessage.AddRelatedAttachment(relatedfileattachment);

            SmtpServer smtpserver = TestAddressHelper.GetSmtpServer();

            emailmessage.Send(smtpserver);
            //Assert.IsNull(smtpserver.GetSmtpConversation());
        }
Esempio n. 3
0
        public void TestThree()
        {
            EmailMessage emailmessage = new EmailMessage();

            emailmessage.FromAddress = TestAddressHelper.GetFromAddress();

            emailmessage.AddToAddress(TestAddressHelper.GetToAddress());

            emailmessage.Subject = "Something has come up";

            emailmessage.TextPart = new TextAttachment("I regret that something has " +
                                                       "come up unexpectedly,\r\n" +
                                                       "and I must postpone our meeting.\r\n\r\n" +
                                                       "Please read the 20 pages of my thoughts on this in the attached\r\n" +
                                                       "PDF file.\r\n\r\n-Marcel");

            emailmessage.HtmlPart = new HtmlAttachment("<p>I regret that something " +
                                                       "has come up unexpectedly,\r\n" +
                                                       "and I must postpone our meeting.</p>\r\n" +
                                                       "<p>Please read the 20 pages of my thoughts on this in the attached\r\n" +
                                                       "PDF file.</p>\r\n<p>-Marcel</p>");

            FileAttachment fileattachment = new FileAttachment(new FileInfo(@"..\..\TestFiles\grover.jpg"));

            fileattachment.ContentType = "image/jpeg";

            emailmessage.AddMixedAttachment(fileattachment);

            emailmessage.Send(TestAddressHelper.GetSmtpServer());
        }
Esempio n. 4
0
        public void TestSend()
        {
            EmailMessage emailmessage = new EmailMessage();

            emailmessage.FromAddress = TestAddressHelper.GetFromAddress();
            //emailmessage.FromAddress=new EmailAddress("*****@*****.**", "Bridge, Mike");
            //emailmessage.FromAddress=new EmailAddress("*****@*****.**", "<Mike Bridge>");

            emailmessage.AddToAddress(TestAddressHelper.GetToAddress());
            emailmessage.Subject  = "EmailMessageTests Test HTML and Text";
            emailmessage.TextPart = new TextAttachment("This\r\nis the\r\ntext\r\npart.");
            emailmessage.HtmlPart = new HtmlAttachment("<html><body>This<br>\r\nis the<br>\r\n<strong>HTML</strong><br>\r\npart.</body></html>");

            emailmessage.BodyText = "This is a test";

            emailmessage.AddCustomHeader("X-MyHeader1", "my header number one");
            //emailmessage.AddCustomHeader("Sender", TestAddressHelper.GetToAddress().ToString());

            Log4netLogger logger = new Log4netLogger();

            _smtpserver.LogSmtpWrite     += (new SmtpServer.LogHandler(logger.Log));
            _smtpserver.LogSmtpReceive   += (new SmtpServer.LogHandler(logger.Log));
            _smtpserver.LogSmtpCompleted += (new SmtpServer.LogHandler(logger.Log));

            emailmessage.Send(_smtpserver);
        }
Esempio n. 5
0
        public void TestFileFromString()
        {
            EmailMessage emailmessage = new EmailMessage();

            emailmessage.FromAddress = TestAddressHelper.GetFromAddress();

            emailmessage.AddToAddress(TestAddressHelper.GetToAddress());

            emailmessage.Subject = "Here's your license";

            emailmessage.TextPart = new TextAttachment("This is a license.\r\n\r\n" +
                                                       "We will spend your money on a new plasma TV.");

            emailmessage.HtmlPart = new HtmlAttachment("<html><body>" +
                                                       "<p>This is a license.</p>\r\n" +
                                                       "<p>We will spend your money on a new <i>plasma TV</i>.</p>\r\n" +
                                                       "</body></html>");

            String content = "This is String Line 1\r\nThis is String Line 2";

            FileAttachment fileAttachment = new FileAttachment(content);

            //fileAttachment.ContentType
            fileAttachment.FileName    = "License.txt";
            fileAttachment.CharSet     = System.Text.Encoding.ASCII;
            fileAttachment.ContentType = "text/plain";
            fileAttachment.Encoding    = DotNetOpenMail.Encoding.EncodingType.SevenBit;
            emailmessage.AddMixedAttachment(fileAttachment);

            //emailmessage.Send(TestAddressHelper.GetSmtpServer());
        }
Esempio n. 6
0
        public void TestBasicSend()
        {
            EmailMessage emailmessage = new EmailMessage();

            emailmessage.FromAddress = TestAddressHelper.GetFromAddress();
            emailmessage.AddToAddress(TestAddressHelper.GetToAddress());
            emailmessage.Subject             = "EmailMessageTests TestBasicSend";
            emailmessage.TextPart            = new TextAttachment("This\r\nis the\r\ntext\r\npart.");
            emailmessage.HtmlPart            = new HtmlAttachment("<html><body>This<br>\r\nis the<br>\r\n<strong>HTML</strong><br>\r\npart.</body></html>");
            emailmessage.EnvelopeFromAddress = new EmailAddress("*****@*****.**");
            emailmessage.Send(_smtpserver);
            // this doesn't test anything yet
        }
        public void TestRawEmail()
        {
            FileInfo contentfile = new FileInfo(@"..\..\TestFiles\ImportedEmail.txt");

            Assert.IsTrue(contentfile.Exists);
            StreamReader sr = new StreamReader(contentfile.OpenRead());

            RawEmailMessage message = new RawEmailMessage();

            message.Content = sr.ReadToEnd();
            message.AddRcptToAddress(TestAddressHelper.GetToAddress());
            message.MailFrom = TestAddressHelper.GetFromAddress();
            message.Send(_smtpserver);
        }
        private EmailMessage GetBasicMessage()
        {
            EmailMessage emailmessage = new EmailMessage();

            emailmessage.FromAddress = TestAddressHelper.GetFromAddress();

            emailmessage.AddToAddress(TestAddressHelper.GetToAddress());

            emailmessage.Subject = "PDF Test";

            emailmessage.TextPart = new TextAttachment("This a PDF File");

            emailmessage.HtmlPart = new HtmlAttachment("<p>This is a PDF File</p>\r\n");

            return(emailmessage);
        }
Esempio n. 9
0
        public void TestEmailWithDot()
        {
            //SmtpServer smtpserver=TestAddressHelper.GetSmtpServer();

            EmailMessage emailmessage = new EmailMessage();

            emailmessage.FromAddress = TestAddressHelper.GetFromAddress();
            emailmessage.AddToAddress(TestAddressHelper.GetToAddress());
            emailmessage.Subject  = "EmailMessageTests Test Dot";
            emailmessage.TextPart = new TextAttachment("This\r\n.is the\r\n..text\r\n...part.");
            emailmessage.HtmlPart = new HtmlAttachment("<html><body>This<br>\r\n..is the<br>\r\n..<strong>HTML</strong><br>\r\npart.</body></html>");
            emailmessage.Send(_smtpserver);

            // this doesn't test anything yet
            //log.Debug("MESSAGE: "+emailmessage.ToDataString());
        }
Esempio n. 10
0
        public void TestLongSubjectEncoded()
        {
            EmailMessage emailmessage = new EmailMessage();

            emailmessage.FromAddress = TestAddressHelper.GetFromAddress();
            emailmessage.AddToAddress(TestAddressHelper.GetToAddress());
            emailmessage.AddCcAddress(TestAddressHelper.GetToAddress());
            emailmessage.AddBccAddress(TestAddressHelper.GetToAddress());
            emailmessage.Subject        = "Join our Group's Fundraising Efforts é test test test Gulf Little League";
            emailmessage.HeaderEncoding = DotNetOpenMail.Encoding.EncodingType.QuotedPrintable;
            emailmessage.XMailer        = "NUnit Test Mailer";
            emailmessage.TextPart       = new TextAttachment("This\r\nis the\r\ntext\r\npart.");
            emailmessage.HtmlPart       = new HtmlAttachment("<html><body>This<br>\r\nis the<br>\r\n<strong>HTML</strong><br>\r\npart.</body></html>");

            String content = emailmessage.ToDataString();

            emailmessage.Send(_smtpserver);
        }
Esempio n. 11
0
        public void TestWindows1251()
        {
            EmailMessage emailmessage = new EmailMessage();

            emailmessage.FromAddress = TestAddressHelper.GetFromAddress();
            emailmessage.AddToAddress(TestAddressHelper.GetToAddress());

            emailmessage.Subject       = "ошибочка?";
            emailmessage.HeaderCharSet = System.Text.Encoding.GetEncoding("windows-1251");

            TextAttachment ta = new TextAttachment("\r\nнесколько строк по русски");

            ta.CharSet            = System.Text.Encoding.GetEncoding("windows-1251");
            emailmessage.TextPart = ta;
            emailmessage.Send(TestAddressHelper.GetSmtpServer());
            Assert.IsTrue(emailmessage.ToDataString().IndexOf("Subject: =?windows-1251") > 0, "Missing windows-1251 in subject");
            Assert.IsTrue(emailmessage.ToDataString().IndexOf("koi8-r") < 0);
        }
Esempio n. 12
0
        public void TestExtraHeader()
        {
            EmailMessage emailmessage = new EmailMessage();

            emailmessage.FromAddress = TestAddressHelper.GetFromAddress();
            emailmessage.AddToAddress(TestAddressHelper.GetToAddress());
            emailmessage.AddCcAddress(TestAddressHelper.GetToAddress());
            emailmessage.AddBccAddress(TestAddressHelper.GetToAddress());
            emailmessage.Subject        = "Extra Header";
            emailmessage.HeaderEncoding = DotNetOpenMail.Encoding.EncodingType.QuotedPrintable;
            emailmessage.XMailer        = "NUnit Test Mailer";
            emailmessage.AddCustomHeader("MyHeader", "Value");
            emailmessage.TextPart = new TextAttachment("This\r\nis the\r\ntext\r\npart.");
            emailmessage.HtmlPart = new HtmlAttachment("<html><body>This<br>\r\nis the<br>\r\n<strong>HTML</strong><br>\r\npart.</body></html>");

            String content = emailmessage.ToDataString();

            emailmessage.Send(_smtpserver);
        }
Esempio n. 13
0
        public void TestLargerBinaryFileFromStream()
        {
            String filename = "casingTheJoint.jpg";

            EmailMessage emailmessage = new EmailMessage();

            emailmessage.FromAddress = TestAddressHelper.GetFromAddress();

            emailmessage.AddToAddress(TestAddressHelper.GetToAddress());

            emailmessage.Subject = "Here's your file";

            emailmessage.TextPart = new TextAttachment("This a zip file.");

            emailmessage.HtmlPart = new HtmlAttachment("<html><body>" +
                                                       "<p>This a zip file.</p>\r\n");

            FileInfo   fileinfo   = new FileInfo(@"..\..\TestFiles\" + filename);
            FileStream filestream = fileinfo.OpenRead();

            MemoryStream stream = new MemoryStream();

            StreamWriter sw = new StreamWriter(stream);

            sw.Flush();

            //BinaryReader br=new BinaryReader(stream);

            BinaryReader br = new BinaryReader(filestream);

            byte[] bytes = br.ReadBytes((int)fileinfo.Length);
            br.Close();

            FileAttachment fileAttachment = new FileAttachment(bytes);

            //fileAttachment.ContentType
            fileAttachment.FileName    = filename;
            fileAttachment.ContentType = "application/zip";
            emailmessage.AddMixedAttachment(fileAttachment);

            emailmessage.Send(TestAddressHelper.GetSmtpServer());
        }
Esempio n. 14
0
        public void TestFileFromStream()
        {
            EmailMessage emailmessage = new EmailMessage();

            emailmessage.FromAddress = TestAddressHelper.GetFromAddress();

            emailmessage.AddToAddress(TestAddressHelper.GetToAddress());

            emailmessage.Subject = "Here's your license";

            emailmessage.TextPart = new TextAttachment("This is a license.\r\n\r\n" +
                                                       "We will spend your money on a new plasma TV.");

            emailmessage.HtmlPart = new HtmlAttachment("<html><body>" +
                                                       "<p>This is a license.</p>\r\n" +
                                                       "<p>We will spend your money on a new <i>plasma TV</i>.</p>\r\n" +
                                                       "</body></html>");

            MemoryStream stream = new MemoryStream();
            StreamWriter sw     = new StreamWriter(stream);

            sw.WriteLine("this is some test data 1");
            sw.WriteLine("this is some test data 2");
            sw.WriteLine("this is some test data 3");
            sw.WriteLine("this is some test data 4");
            sw.Flush();
            stream.Seek(0, SeekOrigin.Begin);

            //BinaryReader br=new BinaryReader(stream);

            FileAttachment fileAttachment = new FileAttachment(new StreamReader(stream));

            //fileAttachment.ContentType
            fileAttachment.FileName    = "License.txt";
            fileAttachment.CharSet     = System.Text.Encoding.ASCII;
            fileAttachment.ContentType = "text/plain";
            emailmessage.AddMixedAttachment(fileAttachment);

            //emailmessage.Send(TestAddressHelper.GetSmtpServer());
        }
Esempio n. 15
0
        public void TestDocFile()
        {
            EmailMessage mail = new EmailMessage();

            FileInfo fileinfo = new FileInfo(@"..\..\TestFiles\TestWord.doc");

            Assert.IsTrue(fileinfo.Exists);

            FileAttachment fileAttachment = new FileAttachment(fileinfo);

            fileAttachment.ContentType = "application/msword";

            //EmailAddress emailAddress = new EmailAddress(emailAddressParam);
            mail.TextPart = new TextAttachment("Here is your file");
            mail.AddMixedAttachment(fileAttachment);

            mail.FromAddress = TestAddressHelper.GetFromAddress();
            mail.AddToAddress("*****@*****.**");

            SmtpServer smtpServer = TestAddressHelper.GetSmtpServer();

            mail.Send(smtpServer);
        }
Esempio n. 16
0
        public void TestHtmlAndText()
        {
            EmailMessage emailmessage = new EmailMessage();

            emailmessage.FromAddress = TestAddressHelper.GetFromAddress();
            emailmessage.AddToAddress(TestAddressHelper.GetToAddress());
            emailmessage.Subject  = "EmailMessageTests Test HTML and Text";
            emailmessage.TextPart = new TextAttachment("This\r\nis the\r\ntext\r\npart.");
            emailmessage.HtmlPart = new HtmlAttachment("<html><body>This<br>\r\nis the<br>\r\n<strong>HTML</strong><br>\r\npart.</body></html>");

            emailmessage.AddCustomHeader("X-MyHeader1", "my header number one");
            emailmessage.AddCustomHeader("X-MyHeader2", "my header number two");

            emailmessage.Send(_smtpserver);

            String       content = emailmessage.ToDataString();
            StringReader sr      = new StringReader(content);

            log.Debug(content);

            int    i                       = 0;
            String line                    = null;
            bool   hasToHeader             = false;
            bool   hasFromHeader           = false;
            bool   hasSubjectHeader        = false;
            bool   hasMimeVersion          = false;
            bool   hasMultipartAlternative = false;
            bool   hasPlainText            = false;
            bool   hasHtmlText             = false;
            bool   hasDefaultXMailerHeader = false;
            bool   hasCustomHeader1        = false;
            bool   hasCustomHeader2        = false;
            int    quotedPrintableParts    = 0;

            String expectedToAddress = TestAddressHelper.GetToAddress().Name + " <" + TestAddressHelper.GetToAddress().Email + ">";

            while ((line = sr.ReadLine()) != null)
            {
                i++;
                if (line.IndexOf("To: " + expectedToAddress) == 0)
                {
                    hasToHeader = true;
                }
                if (line.IndexOf("From: " + emailmessage.FromAddress.ToString()) == 0)
                {
                    hasFromHeader = true;
                }
                if (line.IndexOf("Subject: " + emailmessage.Subject) == 0)
                {
                    hasSubjectHeader = true;
                }
                if (line.IndexOf("MIME-Version: 1.0") == 0)
                {
                    hasMimeVersion = true;
                }
                if (line.IndexOf("Content-Type: multipart/alternative;") == 0)
                {
                    hasMultipartAlternative = true;
                }
                if (line.IndexOf("Content-Type: text/html") == 0)
                {
                    hasHtmlText = true;
                }
                if (line.IndexOf("Content-Type: text/plain") == 0)
                {
                    hasPlainText = true;
                }
                if (line.IndexOf("Content-Transfer-Encoding: quoted-printable") == 0)
                {
                    quotedPrintableParts++;
                }
                if (line.IndexOf("X-Mailer: DotNetOpenMail") == 0)
                {
                    hasDefaultXMailerHeader = true;
                }
                if (line.IndexOf("X-MyHeader1: my header number one") == 0)
                {
                    hasCustomHeader1 = true;
                }
                if (line.IndexOf("X-MyHeader2: my header number two") == 0)
                {
                    hasCustomHeader2 = true;
                }

                // log.Debug("Line "+i+": "+line);
            }
            Assert.IsTrue(hasToHeader, "Missing TO Header");
            Assert.IsTrue(hasFromHeader, "Missing FROM Header");
            Assert.IsTrue(hasSubjectHeader, "Missing Subject Header");
            Assert.IsTrue(hasMimeVersion, "Missing Mime Version header");
            Assert.IsTrue(hasMultipartAlternative, "Missing Mime Multipart/Alternative setting");
            Assert.IsTrue(hasPlainText, "Missing Plain Text");
            Assert.IsTrue(hasHtmlText, "Missing HTML");
            Assert.IsTrue(hasDefaultXMailerHeader, "Missing X-Mailer Header");
            Assert.IsTrue(hasCustomHeader1, "Missing Custom Header 1");
            Assert.IsTrue(hasCustomHeader2, "Missing Custom Header 2");
            Assert.AreEqual(2, quotedPrintableParts, "Expected 2 quoted printable declarations, found " + quotedPrintableParts);
        }
Esempio n. 17
0
        public void TestHeaders()
        {
            EmailMessage emailmessage = new EmailMessage();

            emailmessage.FromAddress = TestAddressHelper.GetFromAddress();
            emailmessage.AddToAddress(TestAddressHelper.GetToAddress());
            emailmessage.AddToAddress(TestAddressHelper.GetToAddress());
            emailmessage.AddCcAddress(TestAddressHelper.GetToAddress());
            emailmessage.AddCcAddress(TestAddressHelper.GetToAddress());
            emailmessage.AddBccAddress(TestAddressHelper.GetToAddress());
            emailmessage.AddBccAddress(TestAddressHelper.GetToAddress());
            emailmessage.Subject  = "Test Headers";
            emailmessage.XMailer  = "NUnit Test Mailer";
            emailmessage.TextPart = new TextAttachment("This\r\nis the\r\ntext\r\npart.");
            emailmessage.HtmlPart = new HtmlAttachment("<html><body>This<br>\r\nis the<br>\r\n<strong>HTML</strong><br>\r\npart.</body></html>");

            String       content = emailmessage.ToDataString();
            StringReader sr      = new StringReader(content);

            int    i                = 0;
            String line             = null;
            bool   hasToHeader      = false;
            bool   hasFromHeader    = false;
            bool   hasSubjectHeader = false;
            bool   hasBccHeader     = false;
            bool   hasCcHeader      = false;
            bool   hasXMailerHeader = false;

            String expectedToAddress = TestAddressHelper.GetToAddress().Name + " <" + TestAddressHelper.GetToAddress().Email + ">";


            while ((line = sr.ReadLine()) != null)
            {
                i++;
                if (line.IndexOf("To: " + expectedToAddress + ", " + expectedToAddress) == 0)
                {
                    hasToHeader = true;
                }
                if (line.IndexOf("Cc: " + expectedToAddress + ", " + expectedToAddress) == 0)
                {
                    hasCcHeader = true;
                }
                if (line.IndexOf("Bcc: " + expectedToAddress + ", " + expectedToAddress) == 0)
                {
                    hasBccHeader = true;
                }

                if (line.IndexOf("From: " + emailmessage.FromAddress.ToString()) == 0)
                {
                    hasFromHeader = true;
                }
                if (line.IndexOf("Subject: " + emailmessage.Subject) == 0)
                {
                    hasSubjectHeader = true;
                }
                if (line.IndexOf("X-Mailer: NUnit Test Mailer") == 0)
                {
                    hasXMailerHeader = true;
                }
            }
            Assert.IsTrue(hasToHeader, "Missing TO Header");
            Assert.IsTrue(hasFromHeader, "Missing FROM Header");
            Assert.IsTrue(hasSubjectHeader, "Missing Subject Header");
            Assert.IsTrue(hasCcHeader, "Missing Cc Header");
            Assert.IsFalse(hasBccHeader, "Bcc Header Shouldn't appear");
            Assert.IsTrue(hasXMailerHeader, "Missing XMailer Header");
            //emailmessage.Send(_smtpserver);
        }
Esempio n. 18
0
        public void TestRelatedAttachments()
        {
            EmailMessage emailmessage = new EmailMessage();

            emailmessage.FromAddress = TestAddressHelper.GetFromAddress();
            emailmessage.AddToAddress(TestAddressHelper.GetToAddress());
            emailmessage.Subject  = "EmailMessageTests Test Related Graphic";
            emailmessage.TextPart = new TextAttachment("This\r\nis the\r\ntext\r\npart.");
            emailmessage.HtmlPart = new HtmlAttachment("<html><body>This<br>\r\nis the<br><img src=\"cid:mycontentid\">\r\n<strong>HTML</strong><br>\r\npart.</body></html>");
            FileInfo relatedfileinfo = new FileInfo(@"..\..\TestFiles\grover.jpg");

            Assert.IsTrue(relatedfileinfo.Exists);
            FileAttachment relatedfileattachment = new FileAttachment(relatedfileinfo, "mycontentid");

            relatedfileattachment.ContentType = "image/jpeg";
            emailmessage.AddRelatedAttachment(relatedfileattachment);
            //emailmessage.Send(_smtpserver);
            String       content = emailmessage.ToDataString();
            StringReader sr      = new StringReader(content);

            int    i                       = 0;
            String line                    = null;
            bool   hasMimeVersion          = false;
            bool   hasMixedHeader          = false;
            bool   relatedHeaderComesFirst = false;
            bool   hasMultipartAlternative = false;
            bool   hasPlainText            = false;
            bool   hasHtmlText             = false;
            bool   hasAttachment           = false;
            bool   hasRelatedHeader        = false;
            int    quotedPrintableParts    = 0;

            String expectedToAddress = TestAddressHelper.GetToAddress().Name + " <" + TestAddressHelper.GetToAddress().Email + ">";

            //log.Debug("To Address is "+expectedToAddress);
            while ((line = sr.ReadLine()) != null)
            {
                i++;
                if (line.IndexOf("Content-Type: multipart/mixed") == 0)
                {
                    hasMixedHeader = true;
                }

                if (line.IndexOf("MIME-Version: 1.0") == 0)
                {
                    hasMimeVersion = true;
                }
                if (line.IndexOf("Content-Type: multipart/alternative;") == 0)
                {
                    hasMultipartAlternative = true;
                }
                if (line.IndexOf("Content-Type: text/html") == 0)
                {
                    hasHtmlText = true;
                }
                if (line.IndexOf("Content-Type: text/plain") == 0)
                {
                    hasPlainText = true;
                }
                if (line.IndexOf("Content-Type: image/jpeg") == 0)
                {
                    hasAttachment = true;
                }
                if (line.IndexOf("Content-Transfer-Encoding: quoted-printable") == 0)
                {
                    quotedPrintableParts++;
                }
                if (line.IndexOf("/9j/4AAQSkZJRgABAQEASABIAAD/") == 0)
                {
                    hasAttachment = true;
                }
                if (line.IndexOf("Content-Type: multipart/related") >= 0)
                {
                    hasRelatedHeader = true;
                    if (!hasMultipartAlternative && !hasMixedHeader)
                    {
                        relatedHeaderComesFirst = true;
                    }
                }
                //log.Debug("Line "+i+": "+line);
            }
            Assert.IsFalse(hasMixedHeader, "Should not have a  multipart/mixed header");
            Assert.IsTrue(hasMimeVersion, "Missing Mime Version header");
            Assert.IsTrue(relatedHeaderComesFirst, "The related header should come first");
            Assert.IsTrue(hasMultipartAlternative, "Missing Mime Multipart/Alternative setting");
            Assert.IsTrue(hasPlainText, "Missing Plain Text");
            Assert.IsTrue(hasHtmlText, "Missing HTML");
            Assert.IsTrue(hasAttachment, "Missing the base64 Attachment");
            Assert.IsTrue(hasRelatedHeader, "Missing the related header.");
            Assert.AreEqual(2, quotedPrintableParts, "Expected 2 quoted printable declarations, found " + quotedPrintableParts);
        }
        public void TestJapaneseHtmlAndTextQPEncoding()
        {
            //SmtpServer smtpserver=TestAddressHelper.GetSmtpServer();
            System.Text.Encoding encoding = System.Text.Encoding.GetEncoding("Shift_JIS");

            EmailAddress japanesefromaddress = new EmailAddress(TestAddressHelper.GetFromAddress().Email, "日本語", EncodingType.QuotedPrintable, encoding);
            EmailAddress japanesetoaddress   = new EmailAddress(TestAddressHelper.GetToAddress().Email, "日本語", EncodingType.QuotedPrintable, encoding);
            EmailMessage emailmessage        = new EmailMessage();

            emailmessage.HeaderEncoding = DotNetOpenMail.Encoding.EncodingType.QuotedPrintable;
            System.Text.Encoding jencoding = System.Text.Encoding.GetEncoding("iso-2022-jp");
            //emailmessage.HeaderCharSet=System.Text.Encoding.GetEncoding("Shift_JIS");
            emailmessage.HeaderCharSet = jencoding;

            log.Debug("ENCODING IS " + jencoding.EncodingName);
            log.Debug("IN HEADER:" + jencoding.HeaderName);
            log.Debug("IN BODY:" + jencoding.BodyName);
            log.Debug("CODE PAGE:" + jencoding.CodePage);
            log.Debug("WebName:" + jencoding.WebName);
            log.Debug("WINDOWS CODE PAGE:" + jencoding.WindowsCodePage);
            emailmessage.FromAddress = japanesefromaddress;
            emailmessage.AddToAddress(japanesetoaddress);
            emailmessage.Subject  = "日本語 - Quoted Printable";
            emailmessage.TextPart = new TextAttachment("東京、日本語");
            //emailmessage.TextPart.CharSet+AD0AIg-Shift_JIS+ACIAOw-
            emailmessage.TextPart.CharSet  = jencoding;
            emailmessage.TextPart.Encoding = DotNetOpenMail.Encoding.EncodingType.QuotedPrintable;
            emailmessage.HtmlPart          = new HtmlAttachment("<html><body>東京、日本語</body></html>");
            //emailmessage.HtmlPart.CharSet+AD0AIg-Shift_JIS+ACIAOw-
            emailmessage.HtmlPart.CharSet  = jencoding;
            emailmessage.HtmlPart.Encoding = DotNetOpenMail.Encoding.EncodingType.QuotedPrintable;

            emailmessage.Send(_smtpserver);

            String       content = emailmessage.ToDataString();
            StringReader sr      = new StringReader(content);

            log.Debug(content);

            int    i    = 0;
            String line = null;


            bool toHeaderEncoded      = false;
            bool fromHeaderEncoded    = false;
            bool subjectHeaderEncoded = false;
            bool htmlEncoded          = false;
            bool textEncoded          = false;
            bool hasPlainText         = false;
            bool hasHtmlText          = false;



            while ((line = sr.ReadLine()) != null)
            {
                i++;
                //log.Debug("FOUND +ACIAKw-line);
                if (line.IndexOf("To: =?iso-2022-jp?Q?=93=FA=96{=8C=EA?= <" + japanesetoaddress.Email + ">") == 0)
                {
                    toHeaderEncoded = true;
                }
                if (line.IndexOf("From") == 0)
                {
                    String expectedfrom = "From: =?iso-2022-jp?Q?=93=FA=96{=8C=EA?= <" + japanesefromaddress.Email + ">";

                    if (line.IndexOf(expectedfrom) == 0)
                    {
                        fromHeaderEncoded = true;
                    }
                }
                if (line.IndexOf("Subject: =?iso-2022-jp?Q?=1B$BF|K\\8l=1B(B=20-=20Quoted=20Printable?=") == 0)
                {
                    subjectHeaderEncoded = true;
                }
                if (line.IndexOf("<html><body>=1B$BEl5~!\"F|K\\8l=1B(B</body></html>") == 0)
                {
                    //<html><body>=67=71=4E=AC=30=01=65=E5=67=2C=8A=9E</body></html>

                    htmlEncoded = true;
                }
                if (line.IndexOf("=1B$BEl5~!\"F|K\\8l=1B(B") == 0)
                {
                    textEncoded = true;
                }
                if (line.IndexOf("Content-Type: text/plain") == 0)
                {
                    hasPlainText = true;
                }
                if (line.IndexOf("Content-Type: text/html") == 0)
                {
                    hasHtmlText = true;
                }
                if (line.IndexOf("X-Mailer: DotNetOpenMail " + VersionInfo.GetInstance().ToString()) == 0)
                {
                    //hasDefaultXMailerHeader=true;
                }
                if (line.IndexOf("X-MyHeader1: my header number one") == 0)
                {
                    //hasCustomHeader1=true;
                }
                if (line.IndexOf("X-MyHeader2: my header number two") == 0)
                {
                    //hasCustomHeader2=true;
                }

                // log.Debug("Line +ACIAKw-i+-": +ACIAKw-line);
            }
            Assert.IsTrue(toHeaderEncoded, "To Header not encoded");
            Assert.IsTrue(fromHeaderEncoded, "From Header not encoded");
            Assert.IsTrue(subjectHeaderEncoded, "Subject Header not encoded");
            //Assert.IsTrue(hasSubjectHeader, "Missing Subject Header");
            //Assert.IsTrue(hasMimeVersion, "Missing Mime Version header");
            //Assert.IsTrue(hasMultipartAlternative, "Missing Mime Multipart/Alternative setting");
            Assert.IsTrue(hasPlainText, "Missing Plain Text");
            Assert.IsTrue(hasHtmlText, "Missing HTML");
            Assert.IsTrue(htmlEncoded, "HTML Not encoded");
            Assert.IsTrue(textEncoded, "Text Not encoded");
            //Assert.IsTrue(hasDefaultXMailerHeader, "Missing X-Mailer Header");
            //Assert.IsTrue(hasCustomHeader1, "Missing Custom Header 1");
            //Assert.IsTrue(hasCustomHeader2, "Missing Custom Header 2");
            //Assert.AreEqual(2, quotedPrintableParts, "Expected 2 quoted printable declarations, found +ACIAKw-quotedPrintableParts);
        }
        public void TestJapaneseHtmlAndTextB64Encoding()
        {
            //SmtpServer smtpserver=TestAddressHelper.GetSmtpServer();
            System.Text.Encoding encoding = System.Text.Encoding.GetEncoding("Shift_JIS");

            EmailAddress japanesefromaddress = new EmailAddress(TestAddressHelper.GetFromAddress().Email, "日本語", EncodingType.Base64, encoding);
            EmailAddress japanesetoaddress   = new EmailAddress(TestAddressHelper.GetToAddress().Email, "日本語", EncodingType.Base64, encoding);
            EmailMessage emailmessage        = new EmailMessage();

            emailmessage.HeaderEncoding = DotNetOpenMail.Encoding.EncodingType.Base64;
            emailmessage.HeaderCharSet  = System.Text.Encoding.GetEncoding("Shift_JIS");

            emailmessage.FromAddress = japanesefromaddress;
            emailmessage.AddToAddress(japanesetoaddress);
            emailmessage.Subject  = "日本語 - Base 64";
            emailmessage.TextPart = new TextAttachment("東京、日本語");

            emailmessage.TextPart.CharSet  = System.Text.Encoding.GetEncoding("Shift_JIS");
            emailmessage.TextPart.Encoding = DotNetOpenMail.Encoding.EncodingType.Base64;
            emailmessage.HtmlPart          = new HtmlAttachment("<html><body>東京、日本語</body></html>");

            emailmessage.HtmlPart.CharSet  = System.Text.Encoding.GetEncoding("Shift_JIS");
            emailmessage.HtmlPart.Encoding = DotNetOpenMail.Encoding.EncodingType.Base64;

            emailmessage.Send(_smtpserver);

            String       content = emailmessage.ToDataString();
            StringReader sr      = new StringReader(content);

            log.Debug(content);

            int    i    = 0;
            String line = null;


            bool toHeaderEncoded      = false;
            bool fromHeaderEncoded    = false;
            bool subjectHeaderEncoded = false;
            //bool htmlEncoded=false;
            //bool textEncoded=false;
            bool hasPlainText = false;
            bool hasHtmlText  = false;



            while ((line = sr.ReadLine()) != null)
            {
                i++;
                //log.Debug("FOUND +ACIAKw-line);
                if (line.IndexOf("To: =?iso-2022-jp?B?k/qWe4zq?= <" + japanesetoaddress.Email + ">") == 0)
                {
                    toHeaderEncoded = true;
                }
                if (line.IndexOf("From") == 0)
                {
                    String expectedfrom = "From: =?iso-2022-jp?B?k/qWe4zq?= <" + japanesefromaddress.Email + ">";
                    if (line.IndexOf(expectedfrom) == 0)
                    {
                        fromHeaderEncoded = true;
                    }
                }
                if (line.IndexOf("Subject: =?iso-2022-jp?B?k/qWe4zqIC0gQmFzZSA2NA==?=") == 0)
                {
                    subjectHeaderEncoded = true;
                }
                if (line.IndexOf("Content-Type: multipart/alternative") == 0)
                {
                    //htmlEncoded=true;
                }
                if (line.IndexOf("Content-Type: text/html") == 0)
                {
                    hasHtmlText = true;
                }
                if (line.IndexOf("Content-Type: text/plain") == 0)
                {
                    hasPlainText = true;
                }
                if (line.IndexOf("X-Mailer: DotNetOpenMail " + VersionInfo.GetInstance().ToString()) == 0)
                {
                    //hasDefaultXMailerHeader=true;
                }
                if (line.IndexOf("X-MyHeader1: my header number one") == 0)
                {
                    //hasCustomHeader1=true;
                }
                if (line.IndexOf("X-MyHeader2: my header number two") == 0)
                {
                    //hasCustomHeader2=true;
                }

                // log.Debug("Line +ACIAKw-i+-": +ACIAKw-line);
            }
            Assert.IsTrue(toHeaderEncoded, "To Header not encoded");
            Assert.IsTrue(fromHeaderEncoded, "From Header not encoded");
            Assert.IsTrue(subjectHeaderEncoded, "Subject Header not encoded");
            //Assert.IsTrue(hasSubjectHeader, "Missing Subject Header");
            //Assert.IsTrue(hasMimeVersion, "Missing Mime Version header");
            //Assert.IsTrue(hasMultipartAlternative, "Missing Mime Multipart/Alternative setting");
            Assert.IsTrue(hasPlainText, "Missing Plain Text");
            Assert.IsTrue(hasHtmlText, "Missing HTML");
            //Assert.IsTrue(htmlEncoded, "HTML Not encoded");
            //Assert.IsTrue(textEncoded, "Text Not encoded");
            //Assert.IsTrue(hasDefaultXMailerHeader, "Missing X-Mailer Header");
            //Assert.IsTrue(hasCustomHeader1, "Missing Custom Header 1");
            //Assert.IsTrue(hasCustomHeader2, "Missing Custom Header 2");
            //Assert.AreEqual(2, quotedPrintableParts, "Expected 2 quoted printable declarations, found +ACIAKw-quotedPrintableParts);
        }