Пример #1
0
 protected CDO.Message ReadMessage(byte[] buffer)
 {
     ADODB.Stream stream = new ADODB.Stream();
     stream.Type = ADODB.StreamTypeEnum.adTypeBinary;
     //stream.Open(Type.Missing, ADODB.ConnectModeEnum.adModeUnknown, ADODB.StreamOpenOptionsEnum.adOpenStreamUnspecified, String.Empty, String.Empty);
     stream.Open();
     stream.Write(buffer);
     stream.Flush();
     return(ReadMessage(stream));
 }
        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();
        }
Пример #3
0
 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();
 }