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); }
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()); }
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()); }
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; } }
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()); }
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); }
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()); }
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); }
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); }
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); }
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); }
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()); }
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()); }
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); }
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); }
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); }