SmtpException Class

定義

SmtpClientSend 操作または SendAsync 操作を完了できない場合にスローされる例外を表します。 Represents the exception that is thrown when the SmtpClient is not able to complete a Send or SendAsync operation.

public class SmtpException : Exception
継承
SmtpException
派生

次のコード例で、エラー メッセージを表示、SmtpException例外がスローされます。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 email 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 email 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();
   }
}


public static void RetryIfBusy(string server)
{
	MailAddress from = new MailAddress("ben@contoso.com");
	MailAddress to = new MailAddress("jane@contoso.com");
	MailMessage message = new MailMessage(from, to);
	// message.Subject = "Using the SmtpClient class.";
	message.Subject = "Using the SmtpClient class.";
	message.Body = @"Using this feature, you can send an email message from an application very easily.";
	// Add a carbon copy recipient.
	MailAddress copy = new MailAddress("Notifications@contoso.com");
	message.CC.Add(copy);
	SmtpClient client = new SmtpClient(server);
	// Include credentials if the server requires them.
	client.Credentials = (ICredentialsByHost)CredentialCache.DefaultNetworkCredentials;
	Console.WriteLine("Sending an email 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("Delivery failed - retrying in 5 seconds.");
				System.Threading.Thread.Sleep(5000);
				client.Send(message);
			}
			else
			{
				Console.WriteLine("Failed to deliver message to {0}", 
				    ex.InnerExceptions[i].FailedRecipient);
			}
		}
	}
          catch (Exception ex)
          {
              Console.WriteLine("Exception caught in RetryIfBusy(): {0}", 
                      ex.ToString() );
          }
      }

注釈

StatusCodeプロパティには、SMTP サーバーによって返されるステータス コードが含まれています。The StatusCode property contains the status code returned by the SMTP server.

コンストラクター

SmtpException()

SmtpException クラスの新しいインスタンスを初期化します。 Initializes a new instance of the SmtpException class.

SmtpException(SerializationInfo, StreamingContext)

SmtpException クラスと SerializationInfo クラスの指定したインスタンスから、StreamingContext クラスの新しいインスタンスを初期化します。 Initializes a new instance of the SmtpException class from the specified instances of the SerializationInfo and StreamingContext classes.

SmtpException(SmtpStatusCode)

ステータス コードを指定して、SmtpException クラスの新しいインスタンスを初期化します。 Initializes a new instance of the SmtpException class with the specified status code.

SmtpException(SmtpStatusCode, String)

指定したステータス コードとエラー メッセージを使用して、SmtpException クラスの新しいインスタンスを初期化します。 Initializes a new instance of the SmtpException class with the specified status code and error message.

SmtpException(String)

指定されたエラー メッセージで SmtpException クラスの新しいインスタンスを初期化します。 Initializes a new instance of the SmtpException class with the specified error message.

SmtpException(String, Exception)

指定したエラー メッセージと内部例外を使用して、SmtpException クラスの新しいインスタンスを初期化します。 Initializes a new instance of the SmtpException class with the specified error message and inner exception.

プロパティ

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

特定の例外に割り当てられているコード化数値である HRESULT を取得または設定します。 Gets or sets HRESULT, a coded numerical value that is assigned to a specific exception.

(Inherited from Exception)
InnerException

現在の例外の原因となる Exception インスタンスを取得します。 Gets the Exception instance that caused the current exception.

(Inherited from Exception)
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

電子メール メッセージが送信されたときに SMTP サーバーによって返されるステータス コードを取得します。 Gets the status code returned by an SMTP server when an email message is transmitted.

TargetSite

現在の例外がスローされたメソッドを取得します。 Gets the method that throws the current exception.

(Inherited from Exception)

方法

Equals(Object)

指定したオブジェクトが、現在のオブジェクトと等しいかどうかを判断します。 Determines whether the specified object is equal to the current object.

(Inherited from Object)
GetBaseException()

派生クラスでオーバーライドされた場合、それ以後に発生する 1 つ以上の例外の主要な原因である Exception を返します。 When overridden in a derived class, returns the Exception that is the root cause of one or more subsequent exceptions.

(Inherited from Exception)
GetHashCode()

既定のハッシュ関数として機能します。 Serves as the default hash function.

(Inherited from Object)
GetObjectData(SerializationInfo, StreamingContext)

SerializationInfo インスタンスに、SmtpException をシリアル化するために必要なデータを設定します。 Populates a SerializationInfo instance with the data needed to serialize the SmtpException.

GetType()

現在のインスタンスのランタイム型を取得します。 Gets the runtime type of the current instance.

(Inherited from Exception)
MemberwiseClone()

現在の Object の簡易コピーを作成します。 Creates a shallow copy of the current Object.

(Inherited from Object)
ToString()

現在の例外の文字列形式を作成して返します。 Creates and returns a string representation of the current exception.

(Inherited from Exception)

明示的なインターフェイスの実装

ISerializable.GetObjectData(SerializationInfo, StreamingContext)

SerializationInfo インスタンスに、SmtpException をシリアル化するために必要なデータを設定します。 Populates a SerializationInfo instance with the data needed to serialize the SmtpException.

イベント

SerializeObjectState

例外がシリアル化され、例外に関するシリアル化されたデータを含む例外状態オブジェクトが作成されたときに発生します。 Occurs when an exception is serialized to create an exception state object that contains serialized data about the exception.

(Inherited from Exception)

適用対象