| SmtpCommandExceptionErrorCode Property |
Get the error code which may provide additional information.
Namespace: MailKit.Net.SmtpAssembly: MailKit (in MailKit.dll) Version: 4.7.1
Syntax public SmtpErrorCode ErrorCode { get; }
Property Value
SmtpErrorCodeThe status code.
Remarks
The error code can be used to programatically deal with the
exception without necessarily needing to display the raw
exception message to the user.
Example public static void SendMessage (MimeMessage message)
{
using (var client = new SmtpClient ()) {
try {
client.Connect ("smtp.gmail.com", 465, SecureSocketOptions.SslOnConnect);
} catch (SmtpCommandException ex) {
Console.WriteLine ("Error trying to connect: {0}", ex.Message);
Console.WriteLine ("\tStatusCode: {0}", ex.StatusCode);
return;
} catch (SmtpProtocolException ex) {
Console.WriteLine ("Protocol error while trying to connect: {0}", ex.Message);
return;
}
if (client.Capabilities.HasFlag (SmtpCapabilities.Authentication)) {
try {
client.Authenticate ("username", "password");
} catch (AuthenticationException ex) {
Console.WriteLine ("Invalid user name or password.");
return;
} catch (SmtpCommandException ex) {
Console.WriteLine ("Error trying to authenticate: {0}", ex.Message);
Console.WriteLine ("\tStatusCode: {0}", ex.StatusCode);
return;
} catch (SmtpProtocolException ex) {
Console.WriteLine ("Protocol error while trying to authenticate: {0}", ex.Message);
return;
}
}
try {
client.Send (message);
} catch (SmtpCommandException ex) {
Console.WriteLine ("Error sending message: {0}", ex.Message);
Console.WriteLine ("\tStatusCode: {0}", ex.StatusCode);
switch (ex.ErrorCode) {
case SmtpErrorCode.RecipientNotAccepted:
Console.WriteLine ("\tRecipient not accepted: {0}", ex.Mailbox);
break;
case SmtpErrorCode.SenderNotAccepted:
Console.WriteLine ("\tSender not accepted: {0}", ex.Mailbox);
break;
case SmtpErrorCode.MessageNotAccepted:
Console.WriteLine ("\tMessage not accepted.");
break;
}
} catch (SmtpProtocolException ex) {
Console.WriteLine ("Protocol error while sending message: {0}", ex.Message);
}
client.Disconnect (true);
}
}
See Also