La clase SmtpClient se utiliza para enviar correo electrónico a un servidor SMTP para su entrega. Las clases que se muestran en la siguiente tabla se utilizan para crear mensajes de correo electrónico que pueden enviarse mediante SmtpClient.
| Clase | Descripción |
| Attachment | Representa los archivos adjuntos. Esta clase le permite adjuntar archivos, secuencias o texto a un mensaje de correo electrónico. |
| MailAddress | Representa la dirección de correo electrónico del remitente y los destinatarios. |
| MailMessage | Representa un mensaje de correo electrónico. |
Para crear y enviar un mensaje de correo electrónico mediante SmtpClient, deberá especificar la siguiente información:
-
El servidor host SMTP que utiliza para enviar los mensajes de correo electrónico. Vea Host y Portproperties.
-
Las credenciales para la autenticación, en caso de que el servidor SMTP las requiera. Vea la propiedad Credentials.
-
La dirección de correo electrónico del remitente. Vea los métodos Send y SendAsync que toman un parámetro from. Vea también la propiedad MailMessage.From.
-
La dirección o las direcciones de correo electrónico de los destinatarios. Vea los métodos Send y SendAsync que toman un parámetro recipient. Vea también la propiedad MailMessage.To.
-
El contenido del mensaje. Vea los métodos Send y SendAsync que toman un parámetro body. Vea también la propiedad MailMessage.Body.
Para incluir datos adjuntos a un mensaje de correo electrónico, deberá crear primero los datos adjuntos mediante la clase Attachment y, a continuación, agregarlos al mensaje mediante la propiedad MailMessage.Attachments. En función del lector del correo electrónico utilizado por los destinatarios y del tipo de archivo de los datos adjuntos, es posible que algunos destinatarios no puedan leer los datos adjuntos. Para los clientes que no puedan mostrar los datos adjuntos en su formato original, podrá especificar vistas alternativas mediante la propiedad MailMessage.AlternateViews.
Puede utilizar la aplicación o los archivos de configuración del equipo para especificar el host predeterminado, el puerto y los valores de las credenciales de todos los objetos SmtpClient. Para obtener más información, vea mailSettings (Elemento, Configuración de red).
Para enviar el mensaje de correo electrónico y efectuar un bloqueo mientas espera a que el correo electrónico se trasmita al servidor SMTP, utilice uno de los métodos Send sincrónicos. Para permitir que el subproceso principal de su programa siga ejecutándose mientras se transmite el correo electrónico, utilice uno de los métodos SendAsync asincrónicos. Cuando una operación SendAsync finaliza, se provoca el evento SendCompleted. Para recibir este evento, deberá agregar un delegado SendCompletedEventHandler al evento SendCompleted. El delegado SendCompletedEventHandler deberá hacer referencia a un método de devolución de llamada que controle la notificación de eventos SendCompleted. Para cancelar una transmisión de correo electrónico asincrónica, utilice el método SendAsyncCancel.
Nota |
|---|
| Si hay una transmisión de correo electrónico en curso y vuelve a llamar a SendAsync o Send, recibirá una excepción InvalidOperationException. |
El protocolo SMTP se define en el documento RFC 2821, que está disponible en http://www.ietf.org.