SmtpClient.Dispose メソッド

定義

QUIT メッセージを SMTP サーバーに送信し、TCP 接続を適切に終了して、SmtpClient クラスの現在のインスタンスで使用されているすべてのリソースを解放します。

オーバーロード

Dispose()

QUIT メッセージを SMTP サーバーに送信し、TCP 接続を適切に終了して、SmtpClient クラスの現在のインスタンスで使用されているすべてのリソースを解放します。

Dispose(Boolean)

QUIT メッセージを SMTP サーバーに送信し、TCP 接続を適切に終了して、SmtpClient クラスの現在のインスタンスで使用されているすべてのリソースを解放します。オプションでマネージド リソースも破棄します。

注釈

アプリケーションが同じ SMTP サーバーに複数のメッセージを SmtpClient 送信する場合は、 クラスの現在のインスタンスによって SMTP サーバーへの接続が確立された接続を再利用できます。 これは、認証または暗号化を使用して SMTP サーバーへの接続を確立する場合に特に便利です。 TLS セッションを認証して確立するプロセスは、コストのかかる操作になる可能性があります。 同じ SMTP サーバーに大量の電子メールを送信するときに、各メッセージの接続を再確立する必要があると、パフォーマンスに大きな影響を与える可能性があります。 電子メールの状態の更新、ニュースレターの配布、または電子メールアラートを送信する大量の電子メール アプリケーションが多数あります。 また、多くの電子メール クライアント アプリケーションでは、SMTP サーバーへの接続が確立されたときに後で送信される多くの電子メール メッセージをユーザーが作成できるオフライン モードがサポートされています。 電子メール クライアントでは、(インターネット サービス プロバイダーによって提供される) 特定の SMTP サーバーにすべての SMTP メッセージを送信し、この電子メールを他の SMTP サーバーに転送するのが一般的です。

クラス実装では SmtpClient SMTP 接続がプールされるため、同じサーバーへのすべてのメッセージの接続を再確立するオーバーヘッドを回避できます。 アプリケーションは、同じオブジェクトを再利用して、同じ SmtpClient SMTP サーバーとさまざまな SMTP サーバーに多数の異なる電子メールを送信できます。 その結果、 オブジェクトを使用してアプリケーションがいつ終了し、クリーンアップする必要があるかを SmtpClient 判断する方法はありません。

SMTP セッションが終了し、クライアントが接続を終了する場合は、サーバーに QUIT メッセージを送信して、送信するメッセージがないことを示す必要があります。 これにより、サーバーはクライアントから接続に関連付けられているリソースを解放し、クライアントによって送信されたメッセージを処理できます。

メソッドは Dispose 、確立されたすべての接続を反復処理し、各 SMTP サーバーに QUIT メッセージを送信し、その後に TCP 接続を正常に終了します。 これらのメソッドは、 によって Socket 使用されるアンマネージド リソースも解放し、必要に応じてマネージド リソースを破棄します。

Dispose()

ソース:
SmtpClient.cs
ソース:
SmtpClient.cs
ソース:
SmtpClient.cs

QUIT メッセージを SMTP サーバーに送信し、TCP 接続を適切に終了して、SmtpClient クラスの現在のインスタンスで使用されているすべてのリソースを解放します。

public:
 virtual void Dispose();
public void Dispose ();
abstract member Dispose : unit -> unit
override this.Dispose : unit -> unit
Public Sub Dispose ()

実装

注釈

アプリケーションが同じ SMTP サーバーに複数のメッセージを SmtpClient 送信する場合は、 クラスの現在のインスタンスによって SMTP サーバーへの接続が確立された接続を再利用できます。 これは、認証または暗号化を使用して SMTP サーバーへの接続を確立する場合に特に便利です。 TLS セッションを認証して確立するプロセスは、コストのかかる操作になる可能性があります。 同じ SMTP サーバーに大量の電子メールを送信するときに、各メッセージの接続を再確立する必要があると、パフォーマンスに大きな影響を与える可能性があります。 電子メールの状態の更新、ニュースレターの配布、または電子メールアラートを送信する大量の電子メール アプリケーションが多数あります。 また、多くの電子メール クライアント アプリケーションでは、SMTP サーバーへの接続が確立されたときに後で送信される多くの電子メール メッセージをユーザーが作成できるオフライン モードがサポートされています。 電子メール クライアントでは、(インターネット サービス プロバイダーによって提供される) 特定の SMTP サーバーにすべての SMTP メッセージを送信し、この電子メールを他の SMTP サーバーに転送するのが一般的です。

クラス実装では SmtpClient SMTP 接続がプールされるため、同じサーバーへのすべてのメッセージの接続を再確立するオーバーヘッドを回避できます。 アプリケーションは、同じオブジェクトを再利用して、同じ SmtpClient SMTP サーバーとさまざまな SMTP サーバーに多数の異なる電子メールを送信できます。 その結果、 オブジェクトを使用してアプリケーションがいつ終了し、クリーンアップする必要があるかを SmtpClient 判断する方法はありません。

SMTP セッションが終了し、クライアントが接続を終了する場合は、サーバーに QUIT メッセージを送信して、送信するメッセージがないことを示す必要があります。 これにより、サーバーはクライアントから接続に関連付けられているリソースを解放し、クライアントによって送信されたメッセージを処理できます。

非同期操作をDispose実行しているオブジェクトで SmtpClient メソッドを呼び出すと、メソッドが呼び出されたかのようにSendAsyncCancel送信操作が取り消SendAsyncされます。

クラスには SmtpClient メソッドがありません Finalize 。 そのため、アプリケーションは を呼び出 Dispose して、リソースを明示的に解放する必要があります。

メソッドは Dispose 、 プロパティで指定された SMTP サーバーへの確立されたすべての接続を Host 反復処理し、QUIT メッセージを送信し、その後に TCP 接続を正常に終了します。 メソッドは、 Dispose 基になる Socketによって使用されるアンマネージ リソースも解放します。

Dispose を使い終わったら SmtpClient を呼び出します。 Disposeメソッドによって、SmtpClient は使用不可の状態になります。 Dispose呼び出し後は、SmtpClientによって占有されていたメモリをガベージ コレクターがクリアできるよう、SmtpClient へのすべての参照を解放する必要があります。

詳細については、アンマネージ リソースのクリーンアップおよびDispose メソッドの実装を参照してください。

注意

Dispose への最後の参照を解放する前に、必ず SmtpClient を呼び出してください。 そうしないと、使用しているリソースは解放されないため、ガベージ コレクターはメモリを再利用できます。

適用対象

Dispose(Boolean)

ソース:
SmtpClient.cs
ソース:
SmtpClient.cs
ソース:
SmtpClient.cs

QUIT メッセージを SMTP サーバーに送信し、TCP 接続を適切に終了して、SmtpClient クラスの現在のインスタンスで使用されているすべてのリソースを解放します。オプションでマネージド リソースも破棄します。

protected:
 virtual void Dispose(bool disposing);
protected virtual void Dispose (bool disposing);
abstract member Dispose : bool -> unit
override this.Dispose : bool -> unit
Protected Overridable Sub Dispose (disposing As Boolean)

パラメーター

disposing
Boolean

マネージド リソースとアンマネージド リソースの両方を解放する場合は true。アンマネージド リソースだけを解放する場合は false

注釈

アプリケーションが同じ SMTP サーバーに複数のメッセージを SmtpClient 送信する場合は、 クラスの現在のインスタンスによって SMTP サーバーへの接続が確立された接続を再利用できます。 これは、認証または暗号化を使用して SMTP サーバーへの接続を確立する場合に特に便利です。 TLS セッションを認証して確立するプロセスは、コストのかかる操作になる可能性があります。 同じ SMTP サーバーに大量の電子メールを送信するときに、各メッセージの接続を再確立する必要があると、パフォーマンスに大きな影響を与える可能性があります。 電子メールの状態の更新、ニュースレターの配布、または電子メールアラートを送信する大量の電子メール アプリケーションが多数あります。 また、多くの電子メール クライアント アプリケーションでは、SMTP サーバーへの接続が確立されたときに後で送信される多くの電子メール メッセージをユーザーが作成できるオフライン モードがサポートされています。 電子メール クライアントでは、(インターネット サービス プロバイダーによって提供される) 特定の SMTP サーバーにすべての SMTP メッセージを送信し、この電子メールを他の SMTP サーバーに転送するのが一般的です。

クラス実装では SmtpClient SMTP 接続がプールされるため、同じサーバーへのすべてのメッセージの接続を再確立するオーバーヘッドを回避できます。 アプリケーションは、同じオブジェクトを再利用して、同じ SmtpClient SMTP サーバーとさまざまな SMTP サーバーに多数の異なる電子メールを送信できます。 その結果、 オブジェクトを使用してアプリケーションがいつ終了し、クリーンアップする必要があるかを SmtpClient 判断する方法はありません。

SMTP セッションが終了し、クライアントが接続を終了する場合は、サーバーに QUIT メッセージを送信して、送信するメッセージがないことを示す必要があります。 これにより、サーバーはクライアントから接続に関連付けられているリソースを解放し、クライアントによって送信されたメッセージを処理できます。

非同期操作をDispose実行しているオブジェクトで SmtpClient メソッドを呼び出すと、メソッドが呼び出されたかのようにSendAsyncCancel送信操作が取り消SendAsyncされます。

クラスには SmtpClient メソッドがありません Finalize 。 そのため、アプリケーションは を呼び出 Dispose して、リソースを明示的に解放する必要があります。

メソッドは Dispose 、 プロパティで指定された SMTP サーバーへの確立されたすべての接続を Host 反復処理し、QUIT メッセージを送信し、その後に TCP 接続を正常に終了します。 メソッドは Dispose 、 によって Socket 使用されるアンマネージ リソースも解放し、必要に応じてマネージド リソースを破棄します。

Dispose を使い終わったら SmtpClient を呼び出します。 Disposeメソッドによって、SmtpClient は使用不可の状態になります。 Dispose呼び出し後は、SmtpClientによって占有されていたメモリをガベージ コレクターがクリアできるよう、SmtpClient へのすべての参照を解放する必要があります。

詳細については、アンマネージ リソースのクリーンアップおよびDispose メソッドの実装を参照してください。

注意

Dispose への最後の参照を解放する前に、必ず SmtpClient を呼び出してください。 そうしないと、使用しているリソースは解放されないため、ガベージ コレクターはメモリを再利用できます。

適用対象