コード例 #1
0
 private void WriteAttachedItem(ItemAttachment itemAttachment)
 {
     using (Item item = itemAttachment.GetItem(InternalSchema.ContentConversionProperties))
     {
         this.limitsTracker.StartEmbeddedMessage();
         using (MsgStorageWriter embeddedMessageWriter = this.PropertyWriter.GetEmbeddedMessageWriter())
         {
             OutboundMsgConverter outboundMsgConverter = new OutboundMsgConverter(this.options);
             outboundMsgConverter.InternalConvertItemToMsgStorage(item, embeddedMessageWriter, this.limitsTracker);
         }
         this.limitsTracker.EndEmbeddedMessage();
     }
 }
コード例 #2
0
        internal void ConvertItemToMsgStorage(Item item, Stream outStream)
        {
            MsgStorageWriter msgStorageWriter = null;

            try
            {
                msgStorageWriter = new MsgStorageWriter(outStream);
                ConversionLimitsTracker conversionLimitsTracker = new ConversionLimitsTracker(this.options.Limits);
                conversionLimitsTracker.CountMessageBody();
                this.InternalConvertItemToMsgStorage(item, msgStorageWriter, conversionLimitsTracker);
            }
            finally
            {
                if (msgStorageWriter != null)
                {
                    msgStorageWriter.Dispose();
                }
            }
        }
コード例 #3
0
        private void InternalConvertItemToMsgStorage(Item item, MsgStorageWriter writer, ConversionLimitsTracker limitsTracker)
        {
            this.item          = item;
            this.writer        = writer;
            this.limitsTracker = limitsTracker;
            this.addressCache  = new OutboundAddressCache(this.options, limitsTracker);
            ExTimeZone exTimeZone = this.item.PropertyBag.ExTimeZone;

            this.item.PropertyBag.ExTimeZone = ExTimeZone.UtcTimeZone;
            try
            {
                this.addressCache.CopyDataFromItem(this.item);
                this.WriteMessageProperties();
                this.WriteRecipientTable();
                this.WriteAttachments();
                this.writer.Flush();
            }
            finally
            {
                this.item.PropertyBag.ExTimeZone = exTimeZone;
            }
        }