MailMessage Classe
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Representa uma mensagem de email que pode ser enviada usando a classe SmtpClient.
public ref class MailMessage : IDisposable
public class MailMessage : IDisposable
type MailMessage = class
interface IDisposable
Public Class MailMessage
Implements IDisposable
- Herança
-
MailMessage
- Implementações
Exemplos
O exemplo de código a seguir demonstra como criar e enviar uma mensagem de email que inclui um anexo.
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
Comentários
As instâncias da MailMessage classe são usadas para construir mensagens de email transmitidas para um servidor SMTP para entrega usando a SmtpClient classe .
O remetente, o destinatário, o assunto e o corpo de uma mensagem de email podem ser especificados como parâmetros quando um MailMessage é usado para inicializar um MailMessage objeto. Esses parâmetros também podem ser definidos ou acessados usando propriedades no MailMessage objeto .
Os principais cabeçalhos e elementos de mensagem de email para a mensagem podem ser definidos usando as propriedades a seguir da MailMessage classe .
Cabeçalho ou parte do email | Propriedade |
---|---|
Anexos | Attachments |
Cópias cegas de carbono (CCO) | Bcc |
Cópias de carbono (CC) | CC |
Tipo de conteúdo | BodyEncoding |
Codificação para cabeçalhos personalizados | HeadersEncoding |
Corpo da mensagem | Body |
Prioridade | Priority |
Destinatário | To |
Reply-To | ReplyToList |
Remetente | From |
Assunto | Subject |
A MailMessage classe também permite que um aplicativo acesse a coleção de cabeçalhos da mensagem usando a Headers propriedade . Embora essa coleção seja somente leitura (uma nova coleção não pode ser definida), cabeçalhos personalizados podem ser adicionados ou excluídos dessa coleção. Todos os cabeçalhos personalizados adicionados serão incluídos quando a MailMessage instância for enviada. Antes que uma mensagem seja enviada, somente os cabeçalhos adicionados especificamente a essa coleção na Headers propriedade são incluídos na coleção. Depois que uma MailMessage instância for enviada, a Headers propriedade também incluirá cabeçalhos que são definidos usando as propriedades associadas da MailMessage classe ou parâmetros passados quando um MailMessage é usado para inicializar um MailMessage objeto.
Se alguns cabeçalhos de email estiverem malformados, eles poderão fazer com que a mensagem de email fique corrompida. Portanto, qualquer cabeçalho de email na coleção de cabeçalhos que possa ser definido usando uma propriedade na MailMessage classe só deve ser definido usando a MailMessage propriedade de classe ou como um parâmetro passado quando um MailMessage inicializa um MailMessage objeto. A seguinte lista de cabeçalhos de email não deve ser adicionada usando a Headers propriedade e quaisquer valores definidos para esses cabeçalhos usando a Headers propriedade serão descartados ou substituídos quando a mensagem for enviada:
Cco
Cc
ID de conteúdo
Local do conteúdo
Codificação de transferência de conteúdo
Tipo de conteúdo
Data
De
Importância
MIME-Version
Prioridade
Reply-To
Remetente
Para
Prioridade X
Se o aplicativo não especificar um cabeçalho X-Sender usando a Headers propriedade , a MailMessage classe criará um quando a mensagem for enviada.
Use a AlternateViews propriedade para especificar cópias de uma mensagem de email em formatos diferentes. Por exemplo, se você enviar uma mensagem em HTML, talvez também queira fornecer uma versão de texto sem formatação caso alguns dos destinatários usem leitores de email que não podem exibir conteúdo HTML. Para obter um exemplo que demonstra como criar uma mensagem com exibições alternativas, consulte AlternateViews.
Use a Attachments propriedade para adicionar anexos a uma mensagem de email. Para obter um exemplo que demonstra como criar uma mensagem com um anexo, consulte Attachments. Chamar Dispose no MailMessage também chama Dispose em cada Anexo referenciado.
Depois de montar sua mensagem de email, você pode enviá-la usando os Send métodos ou SendAsync .
Construtores
MailMessage() |
Inicializa uma instância vazia da classe MailMessage. |
MailMessage(MailAddress, MailAddress) |
Inicializa uma nova instância da classe MailMessage usando os objetos de classe MailAddress especificados. |
MailMessage(String, String) |
Inicializa uma nova instância da classe MailMessage usando os objetos de classe String especificados. |
MailMessage(String, String, String, String) |
Inicializa uma nova instância da classe MailMessage. |
Propriedades
AlternateViews |
Obtém a coleção de anexos usada para armazenar formas alternativas do corpo da mensagem. |
Attachments |
Obtém a coleção de anexos usada para armazenar dados anexados a esta mensagem de email. |
Bcc |
Obtém a coleção de endereços que contém os destinatários CCO (com cópia oculta) desta mensagem de email. |
Body |
Obtém ou define o corpo da mensagem. |
BodyEncoding |
Obtém ou define a codificação usada para codificar o corpo da mensagem. |
BodyTransferEncoding |
Obtém ou define a codificação de transferência usada para codificar o corpo da mensagem. |
CC |
Obtém a coleção de endereços que contém os destinatários CC (com cópia carbono) desta mensagem de email. |
DeliveryNotificationOptions |
Obtém ou define as notificações de entrega para esta mensagem de email. |
From |
Obtém ou define o endereço desta mensagem de email. |
Headers |
Obtém os cabeçalhos de email que são transmitidos com essa mensagem de email. |
HeadersEncoding |
Obtém ou define a codificação usada para os cabeçalhos personalizados definidos pelo usuário dessa mensagem de email. |
IsBodyHtml |
Obtém ou define um valor que indica se o corpo da mensagem de email está em HTML. |
Priority |
Obtém ou define a prioridade desta mensagem de email. |
ReplyTo |
Obsoleto.
Obsoleto.
Obsoleto.
Obtém ou define o endereço ReplyTo da mensagem de email. |
ReplyToList |
Obtém a lista de endereços a responder para a mensagem de correio. |
Sender |
Obtém ou define o endereço do remetente desta mensagem de email. |
Subject |
Obtém ou define a linha do assunto para esta mensagem de email. |
SubjectEncoding |
Obtém ou define a codificação usada para o conteúdo do assunto dessa mensagem de email. |
To |
Obtém a coleção de endereços que contém os destinatários desta mensagem de email. |
Métodos
Dispose() |
Libera todos os recursos usados pelo MailMessage. |
Dispose(Boolean) |
Libera os recursos não gerenciados usados pelo MailMessage e opcionalmente libera os recursos gerenciados. |
Equals(Object) |
Determina se o objeto especificado é igual ao objeto atual. (Herdado de Object) |
GetHashCode() |
Serve como a função de hash padrão. (Herdado de Object) |
GetType() |
Obtém o Type da instância atual. (Herdado de Object) |
MemberwiseClone() |
Cria uma cópia superficial do Object atual. (Herdado de Object) |
ToString() |
Retorna uma cadeia de caracteres que representa o objeto atual. (Herdado de Object) |