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()

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)

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 を呼び出してください。 それ以外の場合、使用しているリソースは解放されないため、ガベージ コレクターはメモリを再利用できます。

適用対象