MailMessage MailMessage MailMessage MailMessage Class

Definición

Representa un mensaje de correo electrónico que se puede enviar con la clase SmtpClient.Represents an email message that can be sent using the SmtpClient class.

public ref class MailMessage : IDisposable
public class MailMessage : IDisposable
type MailMessage = class
    interface IDisposable
Public Class MailMessage
Implements IDisposable
Herencia
MailMessageMailMessageMailMessageMailMessage
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.The following code example demonstrates creating and sending an email message that includes an attachment.

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();
  }

Comentarios

Las instancias de MailMessage la clase se usan para crear mensajes de correo electrónico que se transmiten a un servidor SMTP SmtpClient para su entrega mediante la clase.Instances of the MailMessage class are used to construct email messages that are transmitted to an SMTP server for delivery using the SmtpClient class.

El remitente, el destinatario, el asunto y el cuerpo de un mensaje de correo electrónico se pueden especificar como MailMessage parámetros cuando se usa para MailMessage inicializar un objeto.The sender, recipient, subject, and body of an email message may be specified as parameters when a MailMessage is used to initialize a MailMessage object. Estos parámetros también se pueden establecer o tener acceso a ellos mediante las MailMessage propiedades del objeto.These parameters may also be set or accessed using properties on the MailMessage object.

Los elementos y los encabezados de los mensajes de correo principales del mensaje se pueden establecer utilizando las siguientes propiedades MailMessage de la clase.The primary mail message headers and elements for the message may be set using the following properties of the MailMessage class.

Encabezado o elemento de correoMail header or part Propiedad.Property
Datos adjuntosAttachments Attachments
Copias ocultas (CCO)Blind carbon copies (BCC) Bcc
Copias carbón (CC)Carbon copies (CC) CC
Content-TypeContent-Type BodyEncoding
Codificación para encabezados personalizadosEncoding for custom headers HeadersEncoding
Cuerpo del mensajeMessage body Body
PrioridadPriority Priority
BeneficiaRecipient To
Responder aReply-To ReplyToList
SenderSender From
ContenidoSubject Subject

La MailMessage clase también permite a una aplicación tener acceso a la colección de encabezados del mensaje utilizando Headers la propiedad.The MailMessage class also allows an application to access the headers collection for the message using the Headers property. 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.While this collection is read-only (a new collection can not be set), custom headers can be added to or deleted from this collection. Cuando se envíe la MailMessage instancia, se incluirán todos los encabezados personalizados agregados.Any custom headers added will be included when the MailMessage instance is sent. Antes de enviar un mensaje, solo se incluyen en la colección los encabezados agregados Headers específicamente a esta colección en la propiedad.Before a message is sent, only headers specifically added to this collection in the Headers property are included in the collection. Después de enviar MailMessage la instancia, la Headers propiedad también incluirá los encabezados que se establecen mediante las propiedades asociadas de la MailMessage clase o los parámetros que se pasan MailMessage cuando se utiliza una para MailMessage inicializar un objeto.After a the MailMessage instance is sent, the Headers property will also include headers that are set using the associated properties of the MailMessage class or parameters passed when a MailMessage is used to initialize a MailMessage object.

Si algún encabezado de correo tiene un formato incorrecto, podría provocar que el mensaje de correo electrónico estuviera dañado.If some mail headers are malformed, they could cause the email message to become corrupted. Por lo tanto, cualquier encabezado de correo en la colección de encabezados que se puede establecer mediante MailMessage una propiedad en la clase solo se MailMessage debe establecer mediante la propiedad de clase o como MailMessage un parámetro que MailMessage se pasa cuando Inicializa un objeto.So any mail header in the headers collection that can be set using a property on the MailMessage class should only be set using the MailMessage class property or as a parameter passed when a MailMessage initializes a MailMessage object. La siguiente lista de encabezados de correo no debe agregarse con la Headers propiedad y los valores establecidos para estos encabezados mediante la Headers propiedad se descartarán o se sobrescribirán cuando se envíe el mensaje:The following list of mail headers should not be added using the Headers property and any values set for these headers using the Headers property will be discarded or overwritten when the message is sent:

  • BCCBcc

  • CcCc

  • IDENTIFICADOR de contenidoContent-ID

  • Ubicación del contenidoContent-Location

  • Codificación de transferencia de contenidoContent-Transfer-Encoding

  • Content-TypeContent-Type

  • FechaDate

  • DeFrom

  • ImportanciaImportance

  • Versión de MIMEMIME-Version

  • PrioridadPriority

  • Responder aReply-To

  • SenderSender

  • EnTo

  • Prioridad XX-Priority

Si la aplicación no especifica un encabezado de remitente X mediante la Headers propiedad, la MailMessage clase creará una cuando se envíe el mensaje.If the application does not specify an X-Sender header using the Headers property, the MailMessage class will create one when the message is sent.

Utilice la AlternateViews propiedad para especificar copias de un mensaje de correo electrónico en formatos diferentes.Use the AlternateViews property to specify copies of an email message in different formats. 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.For example, if you send a message in HTML, you might also want to provide a plain text version in case some of the recipients use email readers that cannot display HTML content. Para obtener un ejemplo en el que se muestra cómo crear un mensaje AlternateViewscon vistas alternativas, vea.For an example that demonstrates creating a message with alternate views, see AlternateViews.

Utilice la Attachments propiedad para agregar datos adjuntos a un mensaje de correo electrónico.Use the Attachments property to add attachments to an email message. Para obtener un ejemplo en el que se muestra cómo crear un mensaje Attachmentscon datos adjuntos, vea.For an example that demonstrates creating a message with an attachment, see Attachments. La llamada a Dispose en el MailMessage también llama a Dispose en cada archivo adjunto al que se hace referencia.Calling Dispose on the MailMessage also calls Dispose on each referenced Attachment.

Después de ensamblar el mensaje de correo electrónico, puede enviarlo Send mediante SendAsync los métodos o.After assembling your email message, you can send it by using the Send or SendAsync methods.

Constructores

MailMessage() MailMessage() MailMessage() MailMessage()

Inicializa una instancia vacía de la clase MailMessage.Initializes an empty instance of the MailMessage class.

MailMessage(MailAddress, MailAddress) MailMessage(MailAddress, MailAddress) MailMessage(MailAddress, MailAddress) MailMessage(MailAddress, MailAddress)

Inicializa una nueva instancia de la clase MailMessage utilizando los objetos especificados de clase MailAddress.Initializes a new instance of the MailMessage class by using the specified MailAddress class objects.

MailMessage(String, String) MailMessage(String, String) MailMessage(String, String) MailMessage(String, String)

Inicializa una nueva instancia de la clase MailMessage utilizando los objetos especificados de clase String.Initializes a new instance of the MailMessage class by using the specified String class objects.

MailMessage(String, String, String, String) MailMessage(String, String, String, String) MailMessage(String, String, String, String) MailMessage(String, String, String, String)

Inicializa una nueva instancia de la clase MailMessage.Initializes a new instance of the MailMessage class.

Propiedades

AlternateViews AlternateViews AlternateViews AlternateViews

Obtiene la colección de datos adjuntos que se utiliza para almacenar formatos alternativos del cuerpo del mensaje.Gets the attachment collection used to store alternate forms of the message body.

Attachments Attachments Attachments Attachments

Obtiene la colección de datos adjuntos usados para almacenar datos adjuntos a este mensaje de correo electrónico.Gets the attachment collection used to store data attached to this email message.

Bcc Bcc Bcc Bcc

Obtiene la colección de direcciones que contiene los destinatarios de copia carbón oculta (CCO) de este mensaje de correo electrónico.Gets the address collection that contains the blind carbon copy (BCC) recipients for this email message.

Body Body Body Body

Obtiene o establece el cuerpo del mensaje.Gets or sets the message body.

BodyEncoding BodyEncoding BodyEncoding BodyEncoding

Obtiene o establece la codificación que se utiliza para codificar el cuerpo del mensaje.Gets or sets the encoding used to encode the message body.

BodyTransferEncoding BodyTransferEncoding BodyTransferEncoding BodyTransferEncoding

Obtiene o establece la codificación de transferencia que se utiliza para codificar el cuerpo del mensaje.Gets or sets the transfer encoding used to encode the message body.

CC CC CC CC

Obtiene la colección de direcciones que contiene los destinatarios de copia carbón (CC) de este mensaje de correo electrónico.Gets the address collection that contains the carbon copy (CC) recipients for this email message.

DeliveryNotificationOptions DeliveryNotificationOptions DeliveryNotificationOptions DeliveryNotificationOptions

Obtiene o establece las notificaciones de entrega de este mensaje de correo electrónico.Gets or sets the delivery notifications for this email message.

From From From From

Obtiene o establece la dirección del remitente de este mensaje de correo electrónico.Gets or sets the from address for this email message.

Headers Headers Headers Headers

Obtiene los encabezados de correo electrónico que se transmiten con este mensaje de correo electrónico.Gets the email headers that are transmitted with this email message.

HeadersEncoding HeadersEncoding HeadersEncoding HeadersEncoding

Obtiene o establece la codificación usada para los encabezados personalizados definidos por el usuario para este mensaje de correo electrónico.Gets or sets the encoding used for the user-defined custom headers for this email message.

IsBodyHtml IsBodyHtml IsBodyHtml IsBodyHtml

Obtiene o establece un valor que indica si el cuerpo del mensaje de correo está en HTML.Gets or sets a value indicating whether the mail message body is in HTML.

Priority Priority Priority Priority

Obtiene o establece la prioridad de este mensaje de correo electrónico.Gets or sets the priority of this email message.

ReplyTo ReplyTo ReplyTo ReplyTo

Obtiene o establece la dirección de origen o de respuesta del mensaje de correo.Gets or sets the ReplyTo address for the mail message.

ReplyToList ReplyToList ReplyToList ReplyToList

Obtiene la lista de direcciones a las que se va a enviar una respuesta al mensaje de correo.Gets the list of addresses to reply to for the mail message.

Sender Sender Sender Sender

Obtiene o establece la dirección del remitente de este mensaje de correo electrónico.Gets or sets the sender's address for this email message.

Subject Subject Subject Subject

Obtiene o establece la línea de asunto de este mensaje de correo electrónico.Gets or sets the subject line for this email message.

SubjectEncoding SubjectEncoding SubjectEncoding SubjectEncoding

Obtiene o establece la codificación usada para el contenido del asunto de este mensaje de correo electrónico.Gets or sets the encoding used for the subject content for this email message.

To To To To

Obtiene la colección de direcciones que contiene los destinatarios de este mensaje de correo electrónico.Gets the address collection that contains the recipients of this email message.

Métodos

Dispose() Dispose() Dispose() Dispose()

Libera todos los recursos que usa MailMessage.Releases all resources used by the MailMessage.

Dispose(Boolean) Dispose(Boolean) Dispose(Boolean) Dispose(Boolean)

Libera los recursos no administrados que usa MailMessage y, de forma opcional, libera los recursos administrados.Releases the unmanaged resources used by the MailMessage and optionally releases the managed resources.

Equals(Object) Equals(Object) Equals(Object) Equals(Object)

Determina si el objeto especificado es igual al objeto actual.Determines whether the specified object is equal to the current object.

(Inherited from Object)
GetHashCode() GetHashCode() GetHashCode() GetHashCode()

Sirve como la función hash predeterminada.Serves as the default hash function.

(Inherited from Object)
GetType() GetType() GetType() GetType()

Obtiene el Type de la instancia actual.Gets the Type of the current instance.

(Inherited from Object)
MemberwiseClone() MemberwiseClone() MemberwiseClone() MemberwiseClone()

Crea una copia superficial del objeto Object actual.Creates a shallow copy of the current Object.

(Inherited from Object)
ToString() ToString() ToString() ToString()

Devuelve una cadena que representa el objeto actual.Returns a string that represents the current object.

(Inherited from Object)

Se aplica a