MailMessage Classe

Definição

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 a criação e o envio de 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 que são 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 cabeçalhos e elementos de mensagem de email primários 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 de carbono cegas (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 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 propriedade e todos os Headers 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 a criação de 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 a criação de 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)

Aplica-se a