MailMessage Clase
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
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 del mensaje de correo principal para el mensaje se pueden establecer mediante 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 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 los encabezados agregados específicamente a esta colección en la Headers propiedad se incluyen en la colección. 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 parámetros pasados cuando MailMessage se usa un objeto para inicializar un MailMessage objeto.
Si algunos encabezados de correo tienen un formato incorrecto, podrían hacer que el mensaje de correo electrónico esté dañado. 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 con la MailMessage propiedad class o como parámetro pasado cuando MailMessage inicializa un MailMessage 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:
CCO
CC
Content-ID
Content-Location
Content-Transfer-Encoding
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, también puede 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.
Utilice 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 dato 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) |