SmtpClient.Dispose Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Envía un mensaje QUIT al servidor SMTP, finaliza correctamente la conexión TCP y libera todos los recursos usados por la instancia actual de la clase SmtpClient.
Sobrecargas
Dispose() |
Envía un mensaje QUIT al servidor SMTP, finaliza correctamente la conexión TCP y libera todos los recursos usados por la instancia actual de la clase SmtpClient. |
Dispose(Boolean) |
Envía un mensaje QUIT al servidor SMTP, finaliza correctamente la conexión TCP, libera todos los recursos usados por la instancia actual de la clase SmtpClient y opcionalmente elimina los recursos administrados. |
Comentarios
La conexión establecida por la instancia actual de la SmtpClient clase al servidor SMTP se puede volver a usar si una aplicación desea enviar varios mensajes al mismo servidor SMTP. Esto resulta especialmente útil cuando se usa la autenticación o el cifrado para establecer una conexión con el servidor SMTP. El proceso de autenticación y establecimiento de una sesión tls puede ser operaciones costosas. Un requisito para volver a establecer una conexión para cada mensaje al enviar una gran cantidad de correo electrónico al mismo servidor SMTP podría tener un impacto significativo en el rendimiento. Hay una serie de aplicaciones de correo electrónico de gran volumen que envían actualizaciones de estado de correo electrónico, distribuciones de boletines o alertas por correo electrónico. Además, muchas aplicaciones cliente de correo electrónico admiten un modo fuera de línea donde los usuarios pueden redactar muchos mensajes de correo electrónico que se envían más adelante cuando se establece una conexión con el servidor SMTP. Es habitual que un cliente de correo electrónico envíe todos los mensajes SMTP a un servidor SMTP específico (proporcionado por el proveedor de servicios de Internet) que reenvía este correo electrónico a otros servidores SMTP.
La SmtpClient implementación de clase agrupa conexiones SMTP para que pueda evitar la sobrecarga de restablecer una conexión para cada mensaje al mismo servidor. Una aplicación puede volver a usar el mismo SmtpClient objeto para enviar muchos correos electrónicos diferentes al mismo servidor SMTP y a muchos servidores SMTP diferentes. Como resultado, no hay ninguna manera de determinar cuándo una aplicación ha terminado de usar el SmtpClient objeto y se debe limpiar.
Cuando finaliza una sesión SMTP y el cliente desea finalizar la conexión, debe enviar un mensaje QUIT al servidor para indicar que no tiene más mensajes que enviar. Esto permite al servidor liberar recursos asociados a la conexión del cliente y procesar los mensajes enviados por el cliente.
Los Dispose métodos recorren en iteración todas las conexiones establecidas y envían un mensaje QUIT a cada servidor SMTP, seguido de finalizar correctamente la conexión TCP. Estos métodos también liberan los recursos no administrados utilizados por Socket y, opcionalmente, eliminan los recursos administrados.
Dispose()
- Source:
- SmtpClient.cs
- Source:
- SmtpClient.cs
- Source:
- SmtpClient.cs
Envía un mensaje QUIT al servidor SMTP, finaliza correctamente la conexión TCP y libera todos los recursos usados por la instancia actual de la clase SmtpClient.
public:
virtual void Dispose();
public void Dispose ();
abstract member Dispose : unit -> unit
override this.Dispose : unit -> unit
Public Sub Dispose ()
Implementaciones
Comentarios
La conexión establecida por la instancia actual de la SmtpClient clase al servidor SMTP se puede volver a usar si una aplicación desea enviar varios mensajes al mismo servidor SMTP. Esto resulta especialmente útil cuando se usa la autenticación o el cifrado para establecer una conexión con el servidor SMTP. El proceso de autenticación y establecimiento de una sesión tls puede ser operaciones costosas. Un requisito para volver a establecer una conexión para cada mensaje al enviar una gran cantidad de correo electrónico al mismo servidor SMTP podría tener un impacto significativo en el rendimiento. Hay una serie de aplicaciones de correo electrónico de gran volumen que envían actualizaciones de estado de correo electrónico, distribuciones de boletines o alertas por correo electrónico. Además, muchas aplicaciones cliente de correo electrónico admiten un modo fuera de línea donde los usuarios pueden redactar muchos mensajes de correo electrónico que se envían más adelante cuando se establece una conexión con el servidor SMTP. Es habitual que un cliente de correo electrónico envíe todos los mensajes SMTP a un servidor SMTP específico (proporcionado por el proveedor de servicios de Internet) que reenvía este correo electrónico a otros servidores SMTP.
La SmtpClient implementación de clase agrupa conexiones SMTP para que pueda evitar la sobrecarga de restablecer una conexión para cada mensaje al mismo servidor. Una aplicación puede volver a usar el mismo SmtpClient objeto para enviar muchos correos electrónicos diferentes al mismo servidor SMTP y a muchos servidores SMTP diferentes. Como resultado, no hay ninguna manera de determinar cuándo una aplicación ha terminado de usar el SmtpClient objeto y se debe limpiar.
Cuando finaliza una sesión SMTP y el cliente desea finalizar la conexión, debe enviar un mensaje QUIT al servidor para indicar que no tiene más mensajes que enviar. Esto permite al servidor liberar recursos asociados a la conexión del cliente y procesar los mensajes enviados por el cliente.
Al llamar al Dispose método en un SmtpClient objeto que ejecuta una operación asincrónica SendAsync , se cancelará la operación de envío como si se hubiera llamado al SendAsyncCancel método .
La SmtpClient clase no tiene ningún Finalize
método. Por lo tanto, una aplicación debe llamar Dispose para liberar explícitamente los recursos.
El Dispose método recorre en iteración todas las conexiones establecidas al servidor SMTP especificado en la Host propiedad y envía un mensaje QUIT seguido de finalizar correctamente la conexión TCP. El Dispose método también libera los recursos no administrados usados por el subyacente Socket.
Llame a Dispose cuando haya terminado de usar SmtpClient. El método Dispose deja el SmtpClient en un estado no utilizable. Después de llamar a Dispose, debe liberar todas las referencias a SmtpClient para que el recolector de elementos no utilizados pueda reclamar la memoria que SmtpClient estaba ocupando.
Para obtener más información, vea Limpieza de recursos no administrados e Implementación de un método Dispose.
Nota
Realice siempre una llamada a Dispose antes de liberar la última referencia al objeto SmtpClient. De lo contrario, los recursos que está usando no se liberarán para que el recolector de elementos no utilizados pueda reclamar la memoria.
Se aplica a
Dispose(Boolean)
- Source:
- SmtpClient.cs
- Source:
- SmtpClient.cs
- Source:
- SmtpClient.cs
Envía un mensaje QUIT al servidor SMTP, finaliza correctamente la conexión TCP, libera todos los recursos usados por la instancia actual de la clase SmtpClient y opcionalmente elimina los recursos administrados.
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)
Parámetros
- disposing
- Boolean
Es true
para liberar los recursos administrados y no administrados; es false
para liberar sólo los recursos no administrados.
Comentarios
La conexión establecida por la instancia actual de la SmtpClient clase al servidor SMTP se puede volver a usar si una aplicación desea enviar varios mensajes al mismo servidor SMTP. Esto resulta especialmente útil cuando se usa la autenticación o el cifrado para establecer una conexión con el servidor SMTP. El proceso de autenticación y establecimiento de una sesión tls puede ser operaciones costosas. Un requisito para volver a establecer una conexión para cada mensaje al enviar una gran cantidad de correo electrónico al mismo servidor SMTP podría tener un impacto significativo en el rendimiento. Hay una serie de aplicaciones de correo electrónico de gran volumen que envían actualizaciones de estado de correo electrónico, distribuciones de boletines o alertas por correo electrónico. Además, muchas aplicaciones cliente de correo electrónico admiten un modo fuera de línea donde los usuarios pueden redactar muchos mensajes de correo electrónico que se envían más adelante cuando se establece una conexión con el servidor SMTP. Es habitual que un cliente de correo electrónico envíe todos los mensajes SMTP a un servidor SMTP específico (proporcionado por el proveedor de servicios de Internet) que reenvía este correo electrónico a otros servidores SMTP.
La SmtpClient implementación de clase agrupa conexiones SMTP para que pueda evitar la sobrecarga de restablecer una conexión para cada mensaje al mismo servidor. Una aplicación puede volver a usar el mismo SmtpClient objeto para enviar muchos correos electrónicos diferentes al mismo servidor SMTP y a muchos servidores SMTP diferentes. Como resultado, no hay ninguna manera de determinar cuándo una aplicación ha terminado de usar el SmtpClient objeto y se debe limpiar.
Cuando finaliza una sesión SMTP y el cliente desea finalizar la conexión, debe enviar un mensaje QUIT al servidor para indicar que no tiene más mensajes que enviar. Esto permite al servidor liberar recursos asociados a la conexión del cliente y procesar los mensajes enviados por el cliente.
Al llamar al Dispose método en un SmtpClient objeto que ejecuta una operación asincrónica SendAsync , se cancelará la operación de envío como si se hubiera llamado al SendAsyncCancel método .
La SmtpClient clase no tiene ningún Finalize
método. Por lo tanto, una aplicación debe llamar Dispose para liberar explícitamente los recursos.
El Dispose método recorre en iteración todas las conexiones establecidas al servidor SMTP especificado en la Host propiedad y envía un mensaje QUIT seguido de finalizar correctamente la conexión TCP. El Dispose método también libera los recursos no administrados utilizados por Socket y, opcionalmente, elimina los recursos administrados.
Llame a Dispose cuando haya terminado de usar SmtpClient. El método Dispose deja el SmtpClient en un estado no utilizable. Después de llamar a Dispose, debe liberar todas las referencias a SmtpClient para que el recolector de elementos no utilizados pueda reclamar la memoria que SmtpClient estaba ocupando.
Para obtener más información, vea Limpieza de recursos no administrados e Implementación de un método Dispose.
Nota
Realice siempre una llamada a Dispose antes de liberar la última referencia al objeto SmtpClient. De lo contrario, los recursos que está usando no se liberarán para que el recolector de elementos no utilizados pueda reclamar la memoria.