public void ToStream(Stream storeStream)
{
byte[] buf = null;
string mainBoundaryID = "----=_NextPart_" + Guid.NewGuid().ToString().Replace("-","_");
// Write headers
buf = System.Text.Encoding.Default.GetBytes(m_pHeader.ToHeaderString("utf-8"));
storeStream.Write(buf,0,buf.Length);
// Content-Type:
buf = System.Text.Encoding.Default.GetBytes("Content-Type: " + "multipart/mixed;\r\n\tboundary=\"" + mainBoundaryID + "\"\r\n");
storeStream.Write(buf,0,buf.Length);
//
buf = System.Text.Encoding.Default.GetBytes("\r\nThis is a multi-part message in MIME format.\r\n\r\n");
storeStream.Write(buf,0,buf.Length);
string bodyBoundaryID = "----=_NextPart_" + Guid.NewGuid().ToString().Replace("-","_");
buf = System.Text.Encoding.Default.GetBytes("--" + mainBoundaryID + "\r\n");
storeStream.Write(buf,0,buf.Length);
buf = System.Text.Encoding.Default.GetBytes("Content-Type: multipart/alternative;\r\n\tboundary=\"" + bodyBoundaryID + "\"\r\n\r\n");
storeStream.Write(buf,0,buf.Length);
buf = System.Text.Encoding.Default.GetBytes(ConstructBody(bodyBoundaryID));
storeStream.Write(buf,0,buf.Length);
buf = System.Text.Encoding.Default.GetBytes("--" + bodyBoundaryID + "--\r\n");
storeStream.Write(buf,0,buf.Length);
//-- Construct attachments
foreach(Attachment att in m_pAttachments){
buf = System.Text.Encoding.Default.GetBytes("\r\n--" + mainBoundaryID + "\r\n");
storeStream.Write(buf,0,buf.Length);
buf = System.Text.Encoding.Default.GetBytes("Content-Type: application/octet;\r\n\tname=\"" + Core.CanonicalEncode(att.FileName,m_CharSet) + "\"\r\n");
storeStream.Write(buf,0,buf.Length);
buf = System.Text.Encoding.Default.GetBytes("Content-Transfer-Encoding: base64\r\n");
storeStream.Write(buf,0,buf.Length);
buf = System.Text.Encoding.Default.GetBytes("Content-Disposition: attachment;\r\n\tfilename=\"" + Core.CanonicalEncode(att.FileName,m_CharSet) + "\"\r\n\r\n");
storeStream.Write(buf,0,buf.Length);
buf = System.Text.Encoding.Default.GetBytes(SplitString(Convert.ToBase64String(att.FileData)));
storeStream.Write(buf,0,buf.Length);
}
buf = System.Text.Encoding.Default.GetBytes("\r\n");
storeStream.Write(buf,0,buf.Length);
buf = System.Text.Encoding.Default.GetBytes("--" + mainBoundaryID + "--\r\n");
storeStream.Write(buf,0,buf.Length);
}