EndSendMail() private method

private EndSendMail ( IAsyncResult result ) : System.Net.Mail.MailWriter
result IAsyncResult
return System.Net.Mail.MailWriter
Example #1
0
        private void SendMailCallback(IAsyncResult result)
        {
            try
            {
                _writer = _transport.EndSendMail(result);
                // If some recipients failed but not others, send the e-mail anyway, 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);
                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);
            }
        }
Example #2
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");
 }