SmtpException Class
Represents the exception that is thrown when the SmtpClient is not able to complete a Send or SendAsync operation.
Assembly: System (in System.dll)
System::Exception
System.Net.Mail::SmtpException
System.Net.Mail::SmtpFailedRecipientException
| Name | Description | |
|---|---|---|
![]() | SmtpException() | Initializes a new instance of the SmtpException class. |
![]() | SmtpException(SerializationInfo^, StreamingContext) | This API supports the product infrastructure and is not intended to be used directly from your code. Initializes a new instance of the SmtpException class from the specified instances of the SerializationInfo and StreamingContext classes. |
![]() | SmtpException(SmtpStatusCode) | Initializes a new instance of the SmtpException class with the specified status code. |
![]() | SmtpException(SmtpStatusCode, String^) | Initializes a new instance of the SmtpException class with the specified status code and error message. |
![]() | SmtpException(String^) | Initializes a new instance of the SmtpException class with the specified error message. |
![]() | SmtpException(String^, Exception^) | Initializes a new instance of the SmtpException class with the specified error message and inner exception. |
| Name | Description | |
|---|---|---|
![]() | Data | Gets a collection of key/value pairs that provide additional user-defined information about the exception.(Inherited from Exception.) |
![]() | HelpLink | Gets or sets a link to the help file associated with this exception.(Inherited from Exception.) |
![]() | HResult | Gets or sets HRESULT, a coded numerical value that is assigned to a specific exception.(Inherited from Exception.) |
![]() | InnerException | |
![]() | Message | Gets a message that describes the current exception.(Inherited from Exception.) |
![]() | Source | Gets or sets the name of the application or the object that causes the error.(Inherited from Exception.) |
![]() | StackTrace | Gets a string representation of the immediate frames on the call stack.(Inherited from Exception.) |
![]() | StatusCode | Gets the status code returned by an SMTP server when an e-mail message is transmitted. |
![]() | TargetSite | Gets the method that throws the current exception.(Inherited from Exception.) |
| Name | Description | |
|---|---|---|
![]() | Equals(Object^) | Determines whether the specified object is equal to the current object.(Inherited from Object.) |
![]() | Finalize() | Allows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection.(Inherited from Object.) |
![]() | GetBaseException() | |
![]() | GetHashCode() | Serves as the default hash function. (Inherited from Object.) |
![]() | GetObjectData(SerializationInfo^, StreamingContext) | Populates a SerializationInfo instance with the data needed to serialize the SmtpException.(Overrides Exception::GetObjectData(SerializationInfo^, StreamingContext).) |
![]() | GetType() | Gets the runtime type of the current instance.(Inherited from Exception.) |
![]() | MemberwiseClone() | |
![]() | ToString() | Creates and returns a string representation of the current exception.(Inherited from Exception.) |
| Name | Description | |
|---|---|---|
![]() | SerializeObjectState | Occurs when an exception is serialized to create an exception state object that contains serialized data about the exception.(Inherited from Exception.) |
| Name | Description | |
|---|---|---|
![]() ![]() | ISerializable::GetObjectData(SerializationInfo^, StreamingContext) | Populates a SerializationInfo instance with the data needed to serialize the SmtpException. |
The StatusCode property contains the status code returned by the SMTP server.
The following code example displays an error message when the SmtpException exception is thrown.
static void RetryIfBusy( String^ server ) { MailAddress^ from = gcnew MailAddress( L"ben@contoso.com" ); MailAddress^ to = gcnew MailAddress( L"jane@contoso.com" ); MailMessage^ message = gcnew MailMessage( from,to ); // message.Subject = "Using the SmtpClient class."; message->Subject = L"Using the SmtpClient class."; message->Body = L"Using this feature, you can send an e-mail message from an application very easily."; // Add a carbon copy recipient. MailAddress^ copy = gcnew MailAddress( L"Notifications@contoso.com" ); message->CC->Add( copy ); SmtpClient^ client = gcnew SmtpClient( server ); // Include credentials if the server requires them. client->Credentials = dynamic_cast<ICredentialsByHost^>(CredentialCache::DefaultNetworkCredentials); Console::WriteLine( L"Sending an e-mail message to {0} using the SMTP host {1}.", to->Address, client->Host ); try { client->Send( message ); } catch ( SmtpFailedRecipientsException^ ex ) { for ( int i = 0; i < ex->InnerExceptions->Length; i++ ) { SmtpStatusCode status = ex->InnerExceptions[ i ]->StatusCode; if ( status == SmtpStatusCode::MailboxBusy || status == SmtpStatusCode::MailboxUnavailable ) { Console::WriteLine( L"Delivery failed - retrying in 5 seconds." ); System::Threading::Thread::Sleep( 5000 ); client->Send( message ); } else { Console::WriteLine( L"Failed to deliver message to {0}", ex->InnerExceptions[ i ] ); } } } catch ( Exception^ ex ) { Console::WriteLine(L"Exception caught in RetryIfBusy(): {0}", ex->ToString() ); } finally { client->~SmtpClient(); } }
Available since 2.0
Any public static ( Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.





