BeginSend() private method

private BeginSend ( System.Net.Mime.BaseWriter writer, bool sendEnvelope, bool allowUnicode, AsyncCallback callback, object state ) : IAsyncResult
writer System.Net.Mime.BaseWriter
sendEnvelope bool
allowUnicode bool
callback AsyncCallback
state object
return IAsyncResult
示例#1
0
 void SendMailCallback(IAsyncResult result)
 {
     GlobalLog.Enter("SmtpClient#" + ValidationHelper.HashString(this) + "::SendMailCallback");
     try {
         writer = transport.EndSendMail(result);
         // If some recipients failed but not others, send the e-mail anyways, but then return the
         // "Non-fatal" exception reporting the failures.  The sync code path does it this way.
         // Fatal exceptions would have thrown above at transport.EndSendMail(...)
         SendMailAsyncResult sendResult = (SendMailAsyncResult)result;
         // Save these and throw them later in SendMessageCallback, after the message has sent.
         failedRecipientException = sendResult.GetFailedRecipientException();
     }
     catch (Exception e)
     {
         Complete(e, result);
         GlobalLog.Leave("SmtpClient#" + ValidationHelper.HashString(this) + "::SendMailCallback");
         return;
     }
     try {
         if (cancelled)
         {
             Complete(null, result);
         }
         else
         {
             message.BeginSend(writer, DeliveryMethod != SmtpDeliveryMethod.Network,
                               ServerSupportsEai, new AsyncCallback(SendMessageCallback), result.AsyncState);
         }
     }
     catch (Exception e) {
         Complete(e, result);
     }
     GlobalLog.Leave("SmtpClient#" + ValidationHelper.HashString(this) + "::SendMailCallback");
 }
示例#2
0
        private void SendMailCallback(IAsyncResult result)
        {
            if (NetEventSource.IsEnabled)
            {
                NetEventSource.Enter(this);
            }
            try
            {
                _writer = _transport.EndSendMail(result);
                // If some recipients failed but not others, send the e-mail anyways, but then return the
                // "Non-fatal" exception reporting the failures.  The sync code path does it this way.
                // Fatal exceptions would have thrown above at transport.EndSendMail(...)
                SendMailAsyncResult sendResult = (SendMailAsyncResult)result;
                // Save these and throw them later in SendMessageCallback, after the message has sent.
                _failedRecipientException = sendResult.GetFailedRecipientException();
            }
            catch (Exception e)
            {
                Complete(e, result);
                if (NetEventSource.IsEnabled)
                {
                    NetEventSource.Exit(this);
                }
                return;
            }

            try
            {
                if (_cancelled)
                {
                    Complete(null, result);
                }
                else
                {
                    _message.BeginSend(_writer, DeliveryMethod != SmtpDeliveryMethod.Network,
                                       IsUnicodeSupported(), new AsyncCallback(SendMessageCallback), result.AsyncState);
                }
            }
            catch (Exception e)
            {
                Complete(e, result);
            }
            finally
            {
                if (NetEventSource.IsEnabled)
                {
                    NetEventSource.Exit(this);
                }
            }
        }