private void AddAttachement(CDO.Message m, Attachment attachment, bool allowUnicode) { // set message var s = new ADODB.Stream(); s.Charset = "UTF-8"; s.Open(); s.Type = ADODB.StreamTypeEnum.adTypeBinary; int bytesRead; var buffer = new byte[0x4400]; using (var acs = attachment.ContentStream) while ((bytesRead = acs.Read(buffer, 0, 0x4400)) > 0) { if (bytesRead == 0x4400) { s.Write(buffer); } else { Array.Resize(ref buffer, bytesRead); s.Write(buffer); break; } } s.Flush(); s.Position = 0; // var p = m.Attachments.Add(); p.ContentMediaType = attachment.ContentType.ToString(); p.ContentTransferEncoding = "base64"; var ds = p.GetDecodedContentStream(); s.CopyTo(ds); ds.Flush(); }
private void AddAttachement(CDO.Message m, Attachment attachment, bool allowUnicode) { // set message var s = new ADODB.Stream(); s.Charset = "UTF-8"; s.Open(); s.Type = ADODB.StreamTypeEnum.adTypeBinary; int bytesRead; var buffer = new byte[0x4400]; using (var acs = attachment.ContentStream) while ((bytesRead = acs.Read(buffer, 0, 0x4400)) > 0) if (bytesRead == 0x4400) s.Write(buffer); else { Array.Resize(ref buffer, bytesRead); s.Write(buffer); break; } s.Flush(); s.Position = 0; // var p = m.Attachments.Add(); p.ContentMediaType = attachment.ContentType.ToString(); p.ContentTransferEncoding = "base64"; var ds = p.GetDecodedContentStream(); s.CopyTo(ds); ds.Flush(); }