private static void SendToCollectionCompleted(IAsyncResult result)
{
if (!result.CompletedSynchronously)
{
SendMailAsyncResult asyncState = (SendMailAsyncResult)result.AsyncState;
try
{
string str;
if (!RecipientCommand.EndSend(result, out str))
{
asyncState.failedRecipientExceptions.Add(new SmtpFailedRecipientException(asyncState.connection.Reader.StatusCode, asyncState.toCollection[asyncState.toIndex - 1].SmtpAddress, str));
if (asyncState.failedRecipientExceptions.Count == asyncState.toCollection.Count)
{
SmtpFailedRecipientException exception = null;
if (asyncState.toCollection.Count == 1)
{
exception = (SmtpFailedRecipientException)asyncState.failedRecipientExceptions[0];
}
else
{
exception = new SmtpFailedRecipientsException(asyncState.failedRecipientExceptions, true);
}
exception.fatal = true;
asyncState.InvokeCallback(exception);
return;
}
}
if (asyncState.SendToCollection())
{
asyncState.SendData();
}
}
catch (Exception exception2)
{
asyncState.InvokeCallback(exception2);
}
}
}