Exportar (0) Imprimir
Expandir todo
Este tema aún no ha recibido ninguna valoración - Valorar este tema

SmtpClient (Clase)

Actualización: noviembre 2007

Permite a las aplicaciones enviar mensajes de correo electrónico mediante el protocolo SMTP (Protocolo simple de transferencia de correo).

Espacio de nombres:  System.Net.Mail
Ensamblado:  System (en System.dll)
public class SmtpClient
public class SmtpClient
public class SmtpClient

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 las propiedades Host y Port.

  • 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.

4971yhhc.alert_note(es-es,VS.90).gifNota:

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.

TopicLocation
Cómo: Instalar y configurar servidores virtuales SMTP en IISConfigurar aplicaciones Web ASP .NET
Cómo: Instalar y configurar servidores virtuales SMTP en IIS 6.0Generar aplicaciones Web ASP .NET en Visual Studio

En el siguiente ejemplo de código se muestra cómo enviar un mensaje de correo electrónico de forma asincrónica.


using System;
using System.Net;
using System.Net.Mail;
using System.Net.Mime;
using System.Threading;
using System.ComponentModel;
namespace Examples.SmptExamples.Async
{
    public class SimpleAsynchronousExample
    {
        static bool mailSent = false;
        private static void SendCompletedCallback(object sender, AsyncCompletedEventArgs e)
        {
            // Get the unique identifier for this asynchronous operation.
             String token = (string) e.UserState;

            if (e.Cancelled)
            {
                 Console.WriteLine("[{0}] Send canceled.", token);
            }
            if (e.Error != null)
            {
                 Console.WriteLine("[{0}] {1}", token, e.Error.ToString());
            } else
            {
                Console.WriteLine("Message sent.");
            }
            mailSent = true;
        }
        public static void Main(string[] args)
        {
            // Command line argument must the the SMTP host.
            SmtpClient client = new SmtpClient(args[0]);
            // Specify the e-mail sender.
            // Create a mailing address that includes a UTF8 character
            // in the display name.
            MailAddress from = new MailAddress("jane@contoso.com", 
               "Jane " + (char)0xD8+ " Clayton", 
            System.Text.Encoding.UTF8);
            // Set destinations for the e-mail message.
            MailAddress to = new MailAddress("ben@contoso.com");
            // Specify the message content.
            MailMessage message = new MailMessage(from, to);
            message.Body = "This is a test e-mail message sent by an application. ";
            // Include some non-ASCII characters in body and subject.
            string someArrows = new string(new char[] {'\u2190', '\u2191', '\u2192', '\u2193'});
            message.Body += Environment.NewLine + someArrows;
            message.BodyEncoding =  System.Text.Encoding.UTF8;
            message.Subject = "test message 1" + someArrows;
            message.SubjectEncoding = System.Text.Encoding.UTF8;
            // Set the method that is called back when the send operation ends.
            client.SendCompleted += new 
            SendCompletedEventHandler(SendCompletedCallback);
            // The userState can be any object that allows your callback 
            // method to identify this send operation.
            // For this example, the userToken is a string constant.
            string userState = "test message1";
            client.SendAsync(message, userState);
            Console.WriteLine("Sending message... press c to cancel mail. Press any other key to exit.");
            string answer = Console.ReadLine();
            // If the user canceled the send, and mail hasn't been sent yet,
            // then cancel the pending operation.
            if (answer.StartsWith("c") && mailSent == false)
            {
                client.SendAsyncCancel();
            }
            // Clean up.
            message.Dispose();
            Console.WriteLine("Goodbye.");
        }
    }
}


System.Object
  System.Net.Mail.SmtpClient
Todos los miembros static (Shared en Visual Basic) públicos de este tipo son seguros para la ejecución de subprocesos. No se garantiza que los miembros de instancias sean seguros para la ejecución de subprocesos.

Windows Vista, Windows XP SP2, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP Starter Edition, Windows Server 2003, Windows Server 2000 SP4, Windows Millennium Edition, Windows 98

.NET Framework y .NET Compact Framework no admiten todas las versiones de cada plataforma. Para obtener una lista de las versiones compatibles, vea Requisitos de sistema de .NET Framework.

.NET Framework

Compatible con: 3.5, 3.0, 2.0
¿Te ha resultado útil?
(Caracteres restantes: 1500)
Gracias por sus comentarios

Adiciones de comunidad

AGREGAR
Mostrar:
© 2014 Microsoft. Reservados todos los derechos.