MailMessage Clase

Definición

Representa un mensaje de correo electrónico que se puede enviar con la clase SmtpClient.

public ref class MailMessage : IDisposable
public class MailMessage : IDisposable
type MailMessage = class
    interface IDisposable
Public Class MailMessage
Implements IDisposable
Herencia
MailMessage
Implementaciones

Ejemplos

En el ejemplo de código siguiente se muestra cómo crear y enviar un mensaje de correo electrónico que incluye datos adjuntos.

static void CreateMessageWithAttachment( String^ server )
{
   
   // Specify the file to be attached and sent.
   // This example assumes that a file named Data.xls exists in the
   // current working directory.
   String^ file = L"data.xls";
   
   // Create a message and set up the recipients.
   MailMessage^ message = gcnew MailMessage( L"jane@contoso.com",L"ben@contoso.com",L"Quarterly data report.",L"See the attached spreadsheet." );
   
   // Create  the file attachment for this email message.
   Attachment^ data = gcnew Attachment(file, MediaTypeNames::Application::Octet);
   
   // Add time stamp information for the file.
   ContentDisposition^ disposition = data->ContentDisposition;
   disposition->CreationDate = System::IO::File::GetCreationTime( file );
   disposition->ModificationDate = System::IO::File::GetLastWriteTime( file );
   disposition->ReadDate = System::IO::File::GetLastAccessTime( file );
   
   // Add the file attachment to this email message.
   message->Attachments->Add( data );
   
   //Send the message.
   SmtpClient^ client = gcnew SmtpClient( server );
   
   // Add credentials if the SMTP server requires them.
   client->Credentials = CredentialCache::DefaultNetworkCredentials;
   client->Send( message );
   
   // Display the values in the ContentDisposition for the attachment.
   ContentDisposition^ cd = data->ContentDisposition;
   Console::WriteLine( L"Content disposition" );
   Console::WriteLine( cd );
   Console::WriteLine( L"File {0}", cd->FileName );
   Console::WriteLine( L"Size {0}", cd->Size );
   Console::WriteLine( L"Creation {0}", cd->CreationDate );
   Console::WriteLine( L"Modification {0}", cd->ModificationDate );
   Console::WriteLine( L"Read {0}", cd->ReadDate );
   Console::WriteLine( L"Inline {0}", cd->Inline );
   Console::WriteLine( L"Parameters: {0}", cd->Parameters->Count );
   IEnumerator^ myEnum1 = cd->Parameters->GetEnumerator();
   while ( myEnum1->MoveNext() )
   {
      DictionaryEntry^ d = safe_cast<DictionaryEntry^>(myEnum1->Current);
      Console::WriteLine( L"{0} = {1}", d->Key, d->Value );
   }

   data->~Attachment();
   client->~SmtpClient();
}
public static void CreateMessageWithAttachment(string server)
{
    // Specify the file to be attached and sent.
    // This example assumes that a file named Data.xls exists in the
    // current working directory.
    string file = "data.xls";
    // Create a message and set up the recipients.
    MailMessage message = new MailMessage(
        "jane@contoso.com",
        "ben@contoso.com",
        "Quarterly data report.",
        "See the attached spreadsheet.");

    // Create  the file attachment for this email message.
    Attachment data = new Attachment(file, MediaTypeNames.Application.Octet);
    // Add time stamp information for the file.
    ContentDisposition disposition = data.ContentDisposition;
    disposition.CreationDate = System.IO.File.GetCreationTime(file);
    disposition.ModificationDate = System.IO.File.GetLastWriteTime(file);
    disposition.ReadDate = System.IO.File.GetLastAccessTime(file);
    // Add the file attachment to this email message.
    message.Attachments.Add(data);

    //Send the message.
    SmtpClient client = new SmtpClient(server);
    // Add credentials if the SMTP server requires them.
    client.Credentials = CredentialCache.DefaultNetworkCredentials;

    try
    {
        client.Send(message);
    }
    catch (Exception ex)
    {
        Console.WriteLine("Exception caught in CreateMessageWithAttachment(): {0}",
            ex.ToString());
    }
    // Display the values in the ContentDisposition for the attachment.
    ContentDisposition cd = data.ContentDisposition;
    Console.WriteLine("Content disposition");
    Console.WriteLine(cd.ToString());
    Console.WriteLine("File {0}", cd.FileName);
    Console.WriteLine("Size {0}", cd.Size);
    Console.WriteLine("Creation {0}", cd.CreationDate);
    Console.WriteLine("Modification {0}", cd.ModificationDate);
    Console.WriteLine("Read {0}", cd.ReadDate);
    Console.WriteLine("Inline {0}", cd.Inline);
    Console.WriteLine("Parameters: {0}", cd.Parameters.Count);
    foreach (DictionaryEntry d in cd.Parameters)
    {
        Console.WriteLine("{0} = {1}", d.Key, d.Value);
    }
    data.Dispose();
}
Public Shared Sub CreateMessageWithAttachment(ByVal server As String)
    ' Specify the file to be attached And sent.
    ' This example assumes that a file named Data.xls exists in the
    ' current working directory.
    Dim file As String = "data.xls"
    ' Create a message and set up the recipients.
    Dim message As MailMessage = New MailMessage(
        "jane@contoso.com",
        "ben@contoso.com",
        "Quarterly data report.",
        "See the attached spreadsheet.")

    ' Create  the file attachment for this email message.
    Dim data As Attachment = New Attachment(file, MediaTypeNames.Application.Octet)
    ' Add time stamp information for the file.
    Dim disposition As ContentDisposition = data.ContentDisposition
    disposition.CreationDate = System.IO.File.GetCreationTime(file)
    disposition.ModificationDate = System.IO.File.GetLastWriteTime(file)
    disposition.ReadDate = System.IO.File.GetLastAccessTime(file)
    ' Add the file attachment to this email message.
    message.Attachments.Add(data)

    ' Send the message
    Dim client As SmtpClient = New SmtpClient(server)
    ' Add credentials if the SMTP server requires them.
    client.Credentials = CredentialCache.DefaultNetworkCredentials

    Try
        client.Send(message)
    Catch ex As Exception
        Console.WriteLine("Exception caught in CreateMessageWithAttachment(): {0}", ex.ToString())
    End Try

    ' Display the values in the ContentDisposition for the attachment.
    Dim cd As ContentDisposition = data.ContentDisposition
    Console.WriteLine("Content disposition")
    Console.WriteLine(cd.ToString())
    Console.WriteLine("File {0}", cd.FileName)
    Console.WriteLine("Size {0}", cd.Size)
    Console.WriteLine("Creation {0}", cd.CreationDate)
    Console.WriteLine("Modification {0}", cd.ModificationDate)
    Console.WriteLine("Read {0}", cd.ReadDate)
    Console.WriteLine("Inline {0}", cd.Inline)
    Console.WriteLine("Parameters: {0}", cd.Parameters.Count)

    For Each d As DictionaryEntry In cd.Parameters
        Console.WriteLine("{0} = {1}", d.Key, d.Value)
    Next

    data.Dispose()
End Sub

Comentarios

Las instancias de la MailMessage clase se usan para construir mensajes de correo electrónico que se transmiten a un servidor SMTP para su entrega mediante la SmtpClient clase .

El remitente, el destinatario, el asunto y el cuerpo de un mensaje de correo electrónico se pueden especificar como parámetros cuando se usa para MailMessage inicializar un MailMessage objeto. Estos parámetros también se pueden establecer o tener acceso a ellos mediante propiedades en el MailMessage objeto .

Los encabezados y elementos principales del mensaje de correo pueden establecerse con las siguientes propiedades de la MailMessage clase .

Encabezado o parte de correo Propiedad.
Datos adjuntos Attachments
Copias de carbono ciegas (CCO) Bcc
Copias de carbono (CC) CC
Content-Type BodyEncoding
Codificación para encabezados personalizados HeadersEncoding
Cuerpo del mensaje Body
Priority Priority
Recipient To
Reply-To ReplyToList
Remitente From
Asunto Subject

La MailMessage clase también permite que una aplicación tenga acceso a la colección de encabezados del mensaje mediante la Headers propiedad . Aunque esta colección es de solo lectura (no se puede establecer una nueva colección), los encabezados personalizados se pueden agregar o eliminar de esta colección. Los encabezados personalizados agregados se incluirán cuando se envíe la MailMessage instancia. Antes de enviar un mensaje, solo se incluyen en la colección los encabezados agregados específicamente a esta colección en la Headers propiedad . Después de enviar una MailMessage instancia de , la Headers propiedad también incluirá encabezados que se establecen mediante las propiedades asociadas de la MailMessage clase o los parámetros pasados cuando MailMessage se usa para inicializar un MailMessage objeto .

Si algunos encabezados de correo tienen un formato incorrecto, podrían hacer que el mensaje de correo electrónico se dañara. Por lo tanto, cualquier encabezado de correo de la colección de encabezados que se pueda establecer mediante una propiedad en la MailMessage clase solo debe establecerse mediante la MailMessage propiedad class o como parámetro pasado cuando inicializa MailMessage un MailMessage objeto . La siguiente lista de encabezados de correo no se debe agregar mediante la Headers propiedad y los valores establecidos para estos encabezados mediante la Headers propiedad se descartarán o sobrescribirán cuando se envíe el mensaje:

  • CCO

  • CC

  • Content-ID

  • Content-Location

  • Codificación de transferencia de contenido

  • Content-Type

  • Date

  • Desde

  • Importancia

  • MIME-Version

  • Priority

  • Reply-To

  • Remitente

  • En

  • Prioridad X

Si la aplicación no especifica un encabezado X-Sender mediante la Headers propiedad , la MailMessage clase creará una cuando se envíe el mensaje.

Utilice la AlternateViews propiedad para especificar copias de un mensaje de correo electrónico en diferentes formatos. Por ejemplo, si envía un mensaje en HTML, es posible que también desee proporcionar una versión de texto sin formato en caso de que algunos de los destinatarios usen lectores de correo electrónico que no puedan mostrar contenido HTML. Para ver un ejemplo que muestra cómo crear un mensaje con vistas alternativas, vea AlternateViews.

Use la Attachments propiedad para agregar datos adjuntos a un mensaje de correo electrónico. Para obtener un ejemplo que muestra cómo crear un mensaje con datos adjuntos, vea Attachments. Al llamar a Dispose en MailMessage también se llama a Dispose en cada archivo adjunto al que se hace referencia.

Después de ensamblar el mensaje de correo electrónico, puede enviarlo mediante los Send métodos o SendAsync .

Constructores

MailMessage()

Inicializa una instancia vacía de la clase MailMessage.

MailMessage(MailAddress, MailAddress)

Inicializa una nueva instancia de la clase MailMessage utilizando los objetos especificados de clase MailAddress.

MailMessage(String, String)

Inicializa una nueva instancia de la clase MailMessage utilizando los objetos especificados de clase String.

MailMessage(String, String, String, String)

Inicializa una nueva instancia de la clase MailMessage.

Propiedades

AlternateViews

Obtiene la colección de datos adjuntos que se utiliza para almacenar formatos alternativos del cuerpo del mensaje.

Attachments

Obtiene la colección de datos adjuntos usados para almacenar datos adjuntos a este mensaje de correo electrónico.

Bcc

Obtiene la colección de direcciones que contiene los destinatarios de copia carbón oculta (CCO) de este mensaje de correo electrónico.

Body

Obtiene o establece el cuerpo del mensaje.

BodyEncoding

Obtiene o establece la codificación que se utiliza para codificar el cuerpo del mensaje.

BodyTransferEncoding

Obtiene o establece la codificación de transferencia que se utiliza para codificar el cuerpo del mensaje.

CC

Obtiene la colección de direcciones que contiene los destinatarios de copia carbón (CC) de este mensaje de correo electrónico.

DeliveryNotificationOptions

Obtiene o establece las notificaciones de entrega de este mensaje de correo electrónico.

From

Obtiene o establece la dirección del remitente de este mensaje de correo electrónico.

Headers

Obtiene los encabezados de correo electrónico que se transmiten con este mensaje de correo electrónico.

HeadersEncoding

Obtiene o establece la codificación usada para los encabezados personalizados definidos por el usuario para este mensaje de correo electrónico.

IsBodyHtml

Obtiene o establece un valor que indica si el cuerpo del mensaje de correo está en HTML.

Priority

Obtiene o establece la prioridad de este mensaje de correo electrónico.

ReplyTo
Obsoletos.
Obsoletos.
Obsoletos.

Obtiene o establece la dirección de origen o de respuesta del mensaje de correo.

ReplyToList

Obtiene la lista de direcciones a las que se va a enviar una respuesta al mensaje de correo.

Sender

Obtiene o establece la dirección del remitente de este mensaje de correo electrónico.

Subject

Obtiene o establece la línea de asunto de este mensaje de correo electrónico.

SubjectEncoding

Obtiene o establece la codificación usada para el contenido del asunto de este mensaje de correo electrónico.

To

Obtiene la colección de direcciones que contiene los destinatarios de este mensaje de correo electrónico.

Métodos

Dispose()

Libera todos los recursos que usa MailMessage.

Dispose(Boolean)

Libera los recursos no administrados que usa MailMessage y, de forma opcional, libera los recursos administrados.

Equals(Object)

Determina si el objeto especificado es igual que el objeto actual.

(Heredado de Object)
GetHashCode()

Sirve como la función hash predeterminada.

(Heredado de Object)
GetType()

Obtiene el Type de la instancia actual.

(Heredado de Object)
MemberwiseClone()

Crea una copia superficial del Object actual.

(Heredado de Object)
ToString()

Devuelve una cadena que representa el objeto actual.

(Heredado de Object)

Se aplica a