Compartir a través de


MailMessage Clase

Definición

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

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.

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 MailMessage se usa para inicializar un MailMessage objeto. Estos parámetros también se pueden establecer o acceder a ellos mediante propiedades en el MailMessage objeto .

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

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

La MailMessage clase también permite que una aplicación acceda 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, la Headers propiedad también incluirá encabezados que se establecen mediante las propiedades asociadas de la MailMessage clase o los parámetros pasados cuando se usa para MailMessage inicializar un MailMessage objeto.

Si algunos encabezados de correo tienen un formato incorrecto, podrían provocar 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 de la MailMessage clase solo debe establecerse mediante la MailMessage propiedad class o como parámetro pasado cuando inicializa un MailMessageMailMessage objeto . No se debe agregar la siguiente lista de encabezados de correo 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:

  • Bcc
  • CC
  • Content-ID
  • Ubicación del contenido
  • Codificación de Transferencia de Contenido
  • Tipo de contenido
  • Fecha
  • Desde
  • Importancia
  • MIME-Version
  • Priority
  • Reply-To
  • Remitente
  • Para
  • 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.

Use 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

Nombre Description
MailMessage()

Inicializa una instancia vacía de la MailMessage clase .

MailMessage(MailAddress, MailAddress)

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

MailMessage(String, String, String, String)

Inicializa una nueva instancia de la clase MailMessage.

MailMessage(String, String)

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

Propiedades

Nombre Description
AlternateViews

Obtiene la colección de datos adjuntos usada para almacenar formularios alternativos del cuerpo del mensaje.

Attachments

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

Bcc

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

Body

Obtiene o establece el cuerpo del mensaje.

BodyEncoding

Obtiene o establece la codificación utilizada para codificar el cuerpo del mensaje.

BodyTransferEncoding

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

CC

Obtiene la colección de direcciones que contiene los destinatarios de copia de carbono (CC) para 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 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 utilizada 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 ReplyTo del mensaje de correo.

ReplyToList

Obtiene la lista de direcciones a las que responder para el mensaje de correo.

Sender

Obtiene o establece la dirección del remitente para 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 utilizada para el contenido del asunto para 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

Nombre Description
Dispose()

Libera todos los recursos usados por .MailMessage

Dispose(Boolean)

Libera los recursos no administrados utilizados por MailMessage y, opcionalmente, libera los recursos administrados.

Equals(Object)

Determina si el objeto especificado es igual al objeto actual.

(Heredado de Object)
GetHashCode()

Actúa como función hash predeterminada.

(Heredado de Object)
GetType()

Obtiene el Type de la instancia actual.

(Heredado de Object)
MemberwiseClone()

Crea una copia superficial del Objectactual.

(Heredado de Object)
ToString()

Devuelve una cadena que representa el objeto actual.

(Heredado de Object)

Se aplica a