public void TestRelatedAndMixedAttachments() 
		{
			EmailMessage emailmessage=new EmailMessage();

			emailmessage.FromAddress=TestAddressHelper.GetFromAddress();
			emailmessage.AddToAddress(TestAddressHelper.GetToAddress());
			emailmessage.Subject="EmailMessageTests Test HTML+Text+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@rhombus\">  \r\n<strong>HTML</strong><br>\r\npart.</body></html>");
			FileInfo relatedfileinfo=new FileInfo(@"..\..\TestFiles\grover.jpg");
			FileInfo mixedfileinfo=new FileInfo(@"..\..\TestFiles\groverUpsideDown.jpg");
			Assert.IsTrue(relatedfileinfo.Exists);
			Assert.IsTrue(mixedfileinfo.Exists);
			FileAttachment relatedfileattachment=new FileAttachment(relatedfileinfo,"mycontentid@rhombus");
			relatedfileattachment.ContentType="image/jpeg";
			FileAttachment mixedfileattachment=new FileAttachment(mixedfileinfo);
			mixedfileattachment.ContentType="image/jpeg";
			emailmessage.AddRelatedAttachment(relatedfileattachment);
			emailmessage.AddMixedAttachment(mixedfileattachment);
			//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 mixedHeaderComesFirst=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 (!hasMultipartAlternative && !hasRelatedHeader) 
					{
						mixedHeaderComesFirst=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;
				}
				//log.Debug("Line "+i+": "+line);				
			}
			Assert.IsTrue(hasMixedHeader, "Missing multipart/mixed header");
			Assert.IsTrue(hasMimeVersion, "Missing Mime Version header");
			Assert.IsTrue(mixedHeaderComesFirst, "The mixed 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 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 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);
		}
		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 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 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());
	
		}