Criando e definindo conteúdos de E‑mails

Criar Nova Mensagem de Email

A classe MailMessage representa uma mensagem de e‑mail e permite que desenvolvedores criem novas mensagens. Propriedades básicas de e‑mail como From, To, Subject e body podem ser facilmente definidas na mensagem recém‑criada. Da mesma forma, podemos salvar a mensagem em diferentes formatos como EML, MSG e MHTML.

  • Crie uma instância da classe MailMessage.
  • Defina as propriedades da mensagem de e‑mail.
  • Salve a mensagem de e‑mail em diferentes formatos.

O trecho de código a seguir mostra como criar um novo e‑mail com diferentes propriedades.

Especificando Múltiplos Destinatários

O MailMessage representa uma mensagem de e‑mail. Instâncias da classe MailMessage são usadas para construir mensagens que são transmitidas a um servidor SMTP usando a classe SmtpClient. Este tópico demonstra como especificar mais de um endereço de e‑mail. Endereços de e‑mail podem ser especificados usando a classe MailMessage. Os endereços de e‑mail usados na classe MailMessage são:

  • To - Endereços de destinatários podem ser especificados no campo ‘To’. Os destinatários do campo ‘To’ são o público principal da mensagem. Pode haver mais de um endereço de destinatário.
  • Cc - CC significa "cópia carbono" ou "cópia de cortesia", e permite adicionar destinatários de email que precisam ver a mensagem, mas que não são necessariamente esperados para agir sobre ela. Gerentes, por exemplo, ou membros da sua equipe que precisam estar cientes de uma conversa. Com Aspose.Email, endereços CC podem ser especificados em seu código. Dessa forma, emails automáticos, ou todos os emails para um endereço específico, podem ser copiados para o pessoal relevante.
  • Bcc - Bcc, cópia oculta, permite que você envie um email para um destinatário que fica oculto aos outros destinatários. Onde um CC aparece nas informações do email que os destinatários principais veem, um Bcc não aparece. Destina‑se a notificações ocultas. 

Para especificar múltiplos endereços de email em uma mensagem, siga estas etapas:

  1. Crie uma instância da classe MailMessage.
  2. Especifique o remetente (From) e múltiplos endereços To, Cc e Bcc usando a instância MailMessage.
  3. Crie uma instância da classe SmtpClient e envie o email usando o método Send.

O exemplo de código abaixo mostra como múltiplos endereços To, CC e BCC podem ser especificados.

Alterando endereços de email para um nome amigável

Os exemplos de programação abaixo demonstram como alterar endereços de e‑mail para nomes amigáveis em uma mensagem de e‑mail. Um nome amigável é um nome mais legível que o endereço de e‑mail, por exemplo John Smith em vez de js346@domain.com. Ao enviar um e‑mail, podemos associar um nome amigável a um endereço de e‑mail no construtor da classe MailMessage.

Para mudar endereços de email para nomes amigáveis em uma mensagem, siga estas etapas:

  • Crie uma instância da classe MailMessage e especifique endereços de email nos campos To e From junto com nomes amigáveis.
  • Especifique os endereços de email Cc e Bcc junto com nomes amigáveis chamando o construtor da classe MailMessage na instância MailMessage.
  • Crie uma instância da classe SmtpClient e envie o email usando o método Send.

O trecho de código a seguir mostra como exibir Nomes para endereços de email.

Definir Corpo do Email

A classe MailMessage representa uma mensagem de e‑mail. Instâncias da classe MailMessage são usadas para construir mensagens que são transmitidas a um servidor SMTP para entrega usando a classe SmtpClient. Um corpo de e‑mail pode ser especificado usando a classe MailMessage. Um e‑mail pode ter múltiplos corpos. Existem dois tipos de corpos de e‑mail na classe MailMessage:

  • Corpo HTML
  • Corpo de texto

Além de HtmlBody e TextBody, Aspose.Email tem mais duas propriedades somente leitura relacionadas ao corpo do e‑mail:

  • IsBodyText: indica ao usuário se o corpo é texto.
  • IsBodyHtml: indica ao usuário se o corpo é HTML ou texto simples.

Este artigo mostra como definir texto simples ou HTML no corpo, definir texto alternativo e codificar o corpo do e‑mail.

Definindo o Corpo HTML

HtmlBody é usado para especificar o conteúdo HTML do corpo da mensagem. HtmlBody deve estar entre as tags . O trecho de código a seguir mostra como definir o corpo HTML.

Definindo Texto Alternativo

Use a classe AlternateView para especificar cópias de uma mensagem de e‑mail em formatos diferentes. Por exemplo, se você enviar uma mensagem em HTML, também pode fornecer uma versão em texto simples caso alguns destinatários usem leitores que não exibem conteúdo HTML. Esta classe possui duas propriedades, LinkedResources e BaseUri, que são usadas para resolver URLs dentro do conteúdo do e‑mail.

  • LinkedResources é uma coleção de objetos LinkedResources. Quando renderizado, URLs dentro do conteúdo do e‑mail são primeiro comparadas com as URLs no Content Link de cada objeto LinkedResources na coleção LinkedResources, e resolvidas.
  • BaseUri é usado pelo leitor de email para resolver URLs relativas dentro do corpo, e também para resolver URLs de Content Link relativos, na coleção LinkedResources.

O trecho de código a seguir mostra como definir texto alternativo.

Recursos do MailMessage

MailMessage classe representa o conteúdo de uma mensagem de e‑mail. Instâncias da MailMessage classe são usadas para construir uma mensagem de e‑mail que é transmitida a um servidor SMTP para entrega usando o SmtpClient classe. Este artigo mostra como usar MailMessage funcionalidades utilitárias da classe para controlar os seguintes recursos de e‑mail:

  • Date and time - Através do MailMessage propriedade Date da classe que permite obter ou definir a data e hora de um e‑mail.
  • Prioridade da mensagem - A MailPriority classe especifica níveis de prioridade para o envio de uma mensagem de email. Pode ser baixa, normal ou alta. A prioridade influencia a velocidade de transmissão e a entrega.
  • Sensibilidade da mensagem - A MailSensitivity classe especifica cinco níveis de sensibilidade.
  • Notificação de entrega - Notificações de entrega permitem que os remetentes saibam que o email que enviaram foi entregue na caixa de entrada do destinatário.

Por padrão, a data é a data real em que a mensagem foi enviada, e a hora é o horário em que foi enviada, conforme exibido pelo Microsoft Outlook. No entanto, o horário real de entrega do e‑mail é adicionado pelo próprio servidor SMTP no cabeçalho da mensagem. Por exemplo, abaixo está um cabeçalho de e‑mail comum, onde Date define o campo Date.

O trecho de código abaixo ilustra como cada recurso discutido acima pode ser usado.

Solicitando um Recibo de Leitura

Os exemplos de programação abaixo mostram como você pode solicitar um recibo de leitura. O MailMessage classe DeliveryNotificationOptions A propriedade de enumeração descreve as opções de notificação de entrega para um e‑mail. Para solicitar um recibo de leitura após enviar um e‑mail, siga estas etapas:

  1. Crie uma instância do MailMessage classe.
  2. Especifique o remetente, o receptor e o corpo HTML para o e‑mail no MailMessage instância.
  3. Especifique o DeliveryNotificationOptions em outro MailMessage instâncias.
  4. Crie uma instância do SmtpClient classe e envie o e‑mail usando o método Send.

Pedidos de confirmação de leitura podem não ser sempre atendidos porque:

  • Um cliente de email pode não implementar essa funcionalidade.
  • O usuário final pode ter essa funcionalidade desativada.
  • O usuário final pode optar por não enviar uma.

O trecho de código a seguir mostra como solicitar uma confirmação de leitura.

Definir Cabeçalhos de E‑mail

Os cabeçalhos de e‑mail representam um padrão da Internet e o RFC define campos de cabeçalho que são incluídos nas mensagens de e‑mail da Internet. Um cabeçalho de e‑mail pode ser especificado usando a classe MailMessage. Tipos comuns de cabeçalhos são definidos na classe HeaderType. É uma classe selada que funciona como uma enumeração normal.

Normalmente, um cabeçalho de e‑mail contém estes campos:

  • To: Endereços dos destinatários podem ser especificados no campo To. Os destinatários do campo To são o público principal da mensagem. Pode haver mais de um endereço de destinatário.
  • From: Este campo apresenta o endereço de e‑mail do remetente da mensagem.
  • Cc: Permite aos usuários enviar uma mensagem como "Cópia Carbono" ou "Cópia de Cortesia". Ou seja, o receptor não precisa responder ou agir. Normalmente, o pessoal de supervisão é notificado com CC.
  • Bcc: Significa Blind Carbon Copy (cópia oculta); refere-se à prática de enviar uma mensagem a vários destinatários de modo que o que eles recebem não contenha a lista completa de destinatários. Destina‑se a notificações ocultas.
  • ReplyTo: Este campo de cabeçalho indica para onde o remetente deseja que as respostas sejam enviadas.
  • Subject: Título, cabeçalho, assunto. Frequentemente usado como indicador de thread para mensagens que respondem ou comentam outras mensagens.
  • Date: Este cabeçalho especifica uma data (e hora). Normalmente, é a data em que a mensagem foi composta e enviada.
  • XMailer: Informação sobre o software cliente do remetente. Exemplo: X-Mailer: Aspose.Email XMailer é usado por clientes de e‑mail. Diferentes clientes de e‑mail terão valores diferentes de XMailer. O valor XMailer do MS Outlook é Microsoft Office Outlook, Build 11.0.5510. Ele é ignorado pelo receptor ou leitor de e‑mail.

Normalmente, um cabeçalho de e‑mail tem a seguinte aparência:


 Reply-To: reply@reply.com

From: sender@sender.com

To: guangzhou@guangzhoo.com

Subject: test mail

Date: 6 Mar 2006 8:2:2 +0800

X-Mailer: Aspose.Email

Para personalizar um cabeçalho de e‑mail, siga estas etapas:

  • Crie uma instância do MailMessage classe.
  • Especifique To, From, CC, Bcc, ReplyTo, Subject, Date e XMailer usando uma instância da MailMessage.
  • Crie uma instância do MimeHeader classe e especifique o cabeçalho secreto.
  • Adicione o cabeçalho secreto ao MailMessage instância.

O trecho de código a seguir mostra como definir cabeçalhos de e‑mail.

O trecho de código acima gera um cabeçalho de e‑mail no formato seguinte. Isso pode ser observado ao abrir o arquivo resultante "MsgHeaders.msg" no Microsoft Outlook e então visualizar as Propriedades.


 Reply-To: reply@reply.com

From: sender@sender.com

To: receiver1@receiver.com

CC: receiver2@receiver.com

BCC: receiver3@receiver.com

Subject: test mail

Date: 6 Mar 2006 8:2:2 +0800

X-Mailer: Aspose.Email

secret-header: mystery

Inserir Cabeçalho em Local Específico

Adicionar método de HeadersCollection classe insere o cabeçalho no final da coleção. Contudo, às vezes pode ser necessário inserir um cabeçalho em um local específico. Nesse caso, o Adicionar método não será útil. Para conseguir isso, use o Insert método do HeadersCollection. Se a coleção contiver cabeçalhos com o mesmo nome, este cabeçalho será inserido antes de outros cabeçalhos com o mesmo nome. O trecho de código a seguir mostra como inserir um cabeçalho em um local específico.

Adicionando Cabeçalhos Personalizados ao E‑mail

Os exemplos de programação abaixo demonstram como especificar um cabeçalho personalizado em uma mensagem de e‑mail. Um cabeçalho de e‑mail pode ser especificado usando o MailMessage classe. Para especificar um cabeçalho personalizado em uma mensagem de e‑mail, siga estas etapas:

  1. Crie uma instância do MailMessage classe.
  2. Especifique os valores de to, from e subject usando a instância MailMessage.
  3. Adicione o cabeçalho secreto ao MailMessage instância.
  4. Crie uma instância da classe SmtpClient e envie o email usando o método Send.

O trecho de código a seguir mostra como adicionar cabeçalhos personalizados ao e‑mail.