internal override void Send(BaseWriter writer, bool allowUnicode) { PrepareHeaders(allowUnicode); writer.WriteHeaders(Headers, allowUnicode); Stream outputStream = writer.GetContentStream(); MimeWriter mimeWriter = new MimeWriter(outputStream, ContentType.Boundary); foreach (MimeBasePart part in Parts) { part.Send(mimeWriter, allowUnicode); } mimeWriter.Close(); outputStream.Close(); }
internal override IAsyncResult BeginSend(BaseWriter writer, AsyncCallback callback, bool allowUnicode, object state) { _allowUnicode = allowUnicode; PrepareHeaders(allowUnicode); writer.WriteHeaders(Headers, allowUnicode); MimePartAsyncResult result = new MimePartAsyncResult(this, state, callback); MimePartContext context = new MimePartContext(writer, result, Parts.GetEnumerator()); IAsyncResult contentResult = writer.BeginGetContentStream(new AsyncCallback(ContentStreamCallback), context); if (contentResult.CompletedSynchronously) { ContentStreamCallbackHandler(contentResult); } return(result); }
internal override void Send(BaseWriter writer, bool allowUnicode) { if (Stream != null) { byte[] buffer = new byte[maxBufferSize]; PrepareHeaders(allowUnicode); writer.WriteHeaders(Headers, allowUnicode); Stream outputStream = writer.GetContentStream(); outputStream = GetEncodedStream(outputStream); int read; ResetStream(); _streamUsedOnce = true; while ((read = Stream.Read(buffer, 0, maxBufferSize)) > 0) { outputStream.Write(buffer, 0, read); } outputStream.Close(); } }