MailMessage Classe

Definição

Representa uma mensagem de email que pode ser enviada através da SmtpClient aula.

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 seguinte demonstra a criação e envio de uma mensagem de email que inclui um anexo.

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

Observações

Instâncias da MailMessage classe são usadas para construir mensagens de email que são transmitidas para um servidor SMTP para entrega através da SmtpClient classe.

O remetente, destinatário, assunto e corpo de uma mensagem de email podem ser especificados como parâmetros quando a MailMessage é usado para inicializar um MailMessage objeto. Estes parâmetros também podem ser definidos ou acedidos usando propriedades no MailMessage objeto.

Os cabeçalhos e elementos primários das mensagens de correio podem ser definidos usando as seguintes propriedades da MailMessage classe.

Cabeçalho ou parte do correio Property
Attachments Attachments
Cópias cegas (BCC) Bcc
Cópias carbono (CC) CC
Tipo de Conteúdo BodyEncoding
Codificação para cabeçalhos personalizados HeadersEncoding
Corpo da mensagem Body
Prioridade Priority
Recipient To
Responder A ReplyToList
Remetente From
Subject Subject

A MailMessage classe também permite que uma aplicação aceda à coleção de cabeçalhos da mensagem usando a Headers propriedade. Embora esta coleção seja apenas leitura (uma nova coleção não pode ser definida), cabeçalhos personalizados podem ser adicionados ou eliminados desta coleção. Quaisquer cabeçalhos personalizados adicionados serão incluídos quando a MailMessage instância for enviada. Antes de uma mensagem ser enviada, apenas os cabeçalhos especificamente adicionados a esta coleção na Headers propriedade são incluídos na coleção. Depois de a a MailMessage instância ser 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 a MailMessage é usado para inicializar um MailMessage objeto.

Se alguns cabeçalhos de email estiverem malformados, podem causar corrompimento da mensagem. Assim, 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 parâmetro passado quando inicializa MailMessage 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 estes cabeçalhos usando a Headers propriedade serão descartados ou sobrescritos quando a mensagem for enviada:

  • Cco
  • Cc
  • Content-ID
  • Localização do Conteúdo
  • Codificação de Transferência de Conteúdo
  • Tipo de Conteúdo
  • Data
  • De
  • Importância
  • MIME-Version
  • Prioridade
  • Responder A
  • Remetente
  • Para
  • Prioridade X

Se a aplicação 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 diferentes formatos. Por exemplo, se enviar uma mensagem em HTML, poderá também querer fornecer uma versão em texto simples caso alguns dos destinatários usem leitores de email que não consigam mostrar conteúdo HTML. Para um exemplo que demonstre a criação de uma mensagem com vistas alternativas, veja AlternateViews.

Use a Attachments propriedade para adicionar anexos a uma mensagem de email. Para um exemplo que demonstre a criação de uma mensagem com um anexo, veja Attachments. Chamar Dispose no MailMessage também chama Dispose em cada Anexo referenciado.

Depois de montar a sua mensagem de email, pode enviá-la utilizando os Send métodos ou.SendAsync

Construtores

Name Description
MailMessage()

Inicializa uma instância vazia da MailMessage classe.

MailMessage(MailAddress, MailAddress)

Inicializa uma nova instância da MailMessage classe usando os objetos de classe especificados MailAddress .

MailMessage(String, String, String, String)

Inicializa uma nova instância da MailMessage classe.

MailMessage(String, String)

Inicializa uma nova instância da MailMessage classe usando os objetos de classe especificados String .

Propriedades

Name Description
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 de cópia cega (BCC) para esta mensagem de email.

Body

Recebe 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 da cópia carbono (CC) desta mensagem de email.

DeliveryNotificationOptions

Recebe ou define as notificações de entrega para esta mensagem de email.

From

Obtém ou define o endereço de saída para esta mensagem de email.

Headers

Recebe os cabeçalhos de email que são transmitidos com esta mensagem.

HeadersEncoding

Obtém ou define a codificação usada para os cabeçalhos personalizados definidos pelo utilizador para esta mensagem de email.

IsBodyHtml

Recebe ou define um valor que indica se o corpo da mensagem de correio está em HTML.

Priority

Recebe ou define a prioridade desta mensagem de email.

ReplyTo
Obsoleto.
Obsoleto.

Obtém ou define o endereço RespondidoTo para a mensagem de correio.

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 para esta mensagem de email.

Subject

Recebe ou define o assunto desta mensagem de email.

SubjectEncoding

Obtém ou define a codificação usada para o conteúdo do assunto desta mensagem de email.

To

Obtém a coleção de endereços que contém os destinatários desta mensagem de email.

Métodos

Name Description
Dispose()

Liberta todos os recursos utilizados pelo MailMessage.

Dispose(Boolean)

Liberta os recursos não geridos usados pelo MailMessage e opcionalmente liberta os recursos geridos.

Equals(Object)

Determina se o objeto especificado é igual ao objeto atual.

(Herdado de Object)
GetHashCode()

Serve como função de hash predefinida.

(Herdado de Object)
GetType()

Obtém o Type da instância atual.

(Herdado de Object)
MemberwiseClone()

Cria uma cópia superficial do atual Object.

(Herdado de Object)
ToString()

Devolve uma cadeia que representa o objeto atual.

(Herdado de Object)

Aplica-se a