Artigo .net Magazine 55 - Enviando e-mails com ASP.NET
Neste artigo veremos os conceitos de envio de e-mail, como enviar e-mail através do .NET e como criar uma interface de teste para envio.
Continuando a sessão Easy .Net, hoje vamos ver como enviar e-mail através do ASP.NET com algumas dicas de abordagem durante o desenvolvimento de aplicações ASP.NET.
O envio de e-mail através de uma aplicação hoje em dia tornou-se primordial. Seja através de um formulário “fale conosco” de um web site, seja para enviar avisos aos usuários de um sistema ou até enviar relatórios por e-mail. Isto sem contar sistemas de CRM, e-mail marketing, entre inúmeros outros casos o e-mail tornou-se uma ferramenta indispensável e de conhecimento obrigatório para qualquer desenvolvedor.
O .NET possui uma biblioteca bastante completa para o envio de e-mail e a partir da versão 2.0 ficou ainda mais fácil. Neste artigo da sessão Easy .Net vamos aprender como enviar e-mails utilizando o namespace System.Net.Mail. Neste namespace contamos com diversas classes, enumerações e delegates que nos auxiliam no envio de e-mail.
Conhecendo o namespace System.Net.Mail
O System.Net.Mail é o namespace que contém as classes utilizadas para envio de e-mail utilizando o SMTP (Simple Mail Transfer Protocol). Na Tabela 1, podemos visualizar uma descrição das classes do namespace. Em linhas gerais nós temos classes que tratam a mensagem que será enviada. Este trabalho é realizado pela classe MailMessage. Os anexos são tratados pela classe Attachment, que pode ter uma coleção, tratada pela classe AttachmentCollection. O remetente e os destinatários são tratados pela classe MailAddress.
A conexão com o servidor pode ser feita através da classe SmtpClient, que fará o envio do e-mail. Normalmente um servidor requisita autenticação por usuário e senha, e para isso podemos contar com a classe System.Net.NetworkCredential. Esta encapsula todo o trabalho de autenticação.
No exemplo, veremos como fazer com que estas classes trabalhem em conjunto para que o e-mail seja enviado com sucesso.
| Classes | Descrição |
|---|---|
| AlternateView | Representa o formato para visualização da mensagem |
| AlternateViewCollection | Representa uma coleção de AlternateView |
| Attachment | Representa o arquivo anexo |
| AttachmentBase | Classe que representa um anexo de e-mail. As classes Attachment, AlternateView, and LinkedResource são derivadas desta classe. |
| AttachmentCollection | Coleção que armazena os anexos que serão enviados neste e-mail |
| LinkedResource | Representa um recurso externo em um anexo do e-mail, como uma imagem em um HMTL. |
| LinkedResourceCollection | Armazena recursos vinculados a ser enviado como parte da mensagem do e-mail |
| MailAddress | Representa o endereço de e-mail do remetente ou destinatário |
| MailAddressCollection | Armazena um endereço de e-mail associado à mensagem |
| MailMessage | Representa a mensagem a ser enviada pelo SmtpClient |
| SmtpClient | Permite a aplicação enviar e-mail utilizando o SMTP |
| SmtpException | Representa a exceção quando o servidor não consegue enviar a mensagem |
| SmtpFailedRecipientException | Representa a exceção quando o servidor não consegue enviar para um determinado destinatário |
| SmtpFailedRecipientsException | Exceção de infra-estrutura, quando um e-mail é enviado e não consegue chegar a todos os destinatários. |
| SmtpPermission | Controle de acesso do SMTP |
| SmtpPermissionAttribute | Atributos do controle de acesso do SMTP |
| Delegate | |
| SendCompletedEventHandler | Representa o método que trata o evento de envio do e-mail |
| Enumerações | |
| DeliveryNotificationOptions | Descreve as opções de envio para o e-mail |
| MailPriority | Especifica a prioridade da mensagem |
| SmtpAccess | Especifica o nível de acesso permitido do SMTP |
| SmtpDeliveryMethod | Especifica como as mensagens do e-mail serão entregues |
| SmtpStatusCode | Especifica o resultado do envio de e-mail usando a classe SmtpClient. |
Criando uma classe de envio de e-mail
Na Listagem 1 vamos criar uma classe de envio de e-mails utilizando o System.Net.Mail. O ASP.NET permite que você configure o envio de e-mail diretamente no arquivo de configuração " [...] continue lendo...
Artigos relacionados
-
Artigo
-
Artigo
-
Artigo
-
Artigo
-
Artigo