ASP .NET - Enviando Emails : HTML e anexos


 

O envio de e-mail é feito por intermédio do - SMTP - (Simple Mail Transfer Protocol) , porta 25 . Você pode configurar o serviço SMTP no seu IIS - Internet Information Server - , ou se desejar , pode usar um componente de terceiros ; dê uma olhada no link - https://www.infoq.com/research/dotnet-web-components

 

Pode usar também o componente CDONTs (Collaboration Data Objects for WIndows NT Server)  ou um servidor SMTP válido.

 

Para enviar emails no ASP.NET você tem que importar a classe que contém os métodos e propriedades que fazem este serviço. Estou falando da classe : System.Web.Mail

Nota: A classe System.Web.Mail não suporta autenticação segura do servidor SMTP. Portanto se o seu servidor SMTP requerer autenticação o exemplo acima não vai funcionar.

Você vai ter que usar um componente de terceiros. Obs:  Veja o site http://www.aspemail.com .

Para lembrar abaixo temos os principais métodos e propriedades da classe que iremos usar:

 

Métodos/Propriedades Descrição
Body Corpo do e-mail
BodyFormat formato do e-mail
Cc Enviar uma cópia para
Attachments Anexar arquivos
From origem do e-mail
Subject Assunto
To destino do e-mail
Priority nível de prioridade
SMTPServer o dominio do servidor SMTP usado

Enviando um  Email simples

No artigo - Enviando Emails - eu mostrei a forma mais simples de enviar um email , neste artigo iremos ver como enviar um email no formato HTML e com anexos. Abaixo temos um novo exemplo de envio de email simples usando o servidor SMTP do IIS.

<% @Page Language="VB" %>
<% @Import Namespace="System.Web.Mail" %>
<%

Dim strPara As String
Dim strDe As String
Dim strtexto As String

strPara = "macoratti@yahoo.com"
strDe = "webmaster@visualbasic.mat.br"
strTexto = "Ola , Macoratti"

SmtpMail.Send(strDe, strPara, strTexto,"Esta eh uma mensagem de teste de envio de email")

Response.Write("Email foi enviado !!!")
%>
- Este simples script é tudo o que você precisa para enviar um email usando o Serviço SMTP do IIS.

- Estou usando o namespace : "System.Web.Mail"  onde encontramos a classe StmpMail , cujo método estático Send pode aceitar até quatro parâmetros:

SmtpMail.Send(From, To, Subject, BodyText);

Enviando Email no formato HTML

Vamos então avançar um pouco. A classe MailMessage  permite a definição do formato na método - BodyFormat - . A variável string strBody contém as tags HTML com a mensagem a ser enviada.

<%@ Page Language="VB" clienttarget=uplevel %>
<% @Import Namespace="System.Web.Mail" %>
<%

Dim strBody As String

Dim msgMail As new MailMessage()

msgMail.To = "macoratti@yahoo.com"
msgMail.Cc = "webmaster@visuabasic.mat.br"
msgMail.From = "webmaster@visuabasic.mat.br"
msgMail.Subject = "OLá, Macoratti , ai vai outro email..."

msgMail.BodyFormat = MailFormat.Html;

strBody = "<html><body><b>Olá, Pessoal</b> , <font color=blue> uma abraço do Macoratti</font></body></html>"

msgMail.Body = strBody

SmtpMail.Send(msgMail)

Response.Write("Email enviado no formato HTML !")
%>

Nota: Estamos usando o método Send sobrecarregado que não esta retornando valores após o envio da mensagem de email. Como estamos usando o serviço SMTP do IIS os emails que falharem irão ser enviados para a pasta BadMail.

Enviando Email com anexos

<%@ Page Language="VB" clienttarget=uplevel %>
<% @Import Namespace="System.Web.Mail" %>
<%

Dim strBody As String

Dim msgMail As new MailMessage()

msgMail.To = "macoratti@yahoo.com"
msgMail.Cc = "webmaster@visuabasic.mat.br"
msgMail.From = "webmaster@visuabasic.mat.br"
msgMail.Subject = "OLá, Macoratti , ai vai outro email..."

msgMail.BodyFormat = MailFormat.Text;

strBody = "Este é mais um teste de envio de email com anexo usando o STMP do IIS"

msgMail.Body = strBody

msgMail.Attachments.Add(New MailAttachment("d:\teste\teste.txt"))

SmtpMail.Send(msgMail)

Response.Write("Email enviado com anexo !")
%>

A unica diferença aqui é linha :

msgMail.Attachments.Add(New MailAttachment("d:\teste\teste.txt"))

que podemos também usar da seguinte forma:

MailAttachment mAnexo = new MailAttachment("c:\teste\teste.pdf");
IList msgAttachments = msgMail.Attachments;
msgAttachments.Add(mAnexo);

Aqui os anexos são tratados através da interface IList (encontrada no namespace System.Collections) que fornece um  método Add com o qual incluimos o anexo.

Simples não é mesmo , até mais ver ....

Veja os Destaques e novidades do SUPER DVD Visual Basic (sempre atualizado) : clique e confira !

Quer migrar para o VB .NET ?

Quer aprender C# ??

 

             Gostou ?   Compartilhe no Facebook   Compartilhe no Twitter
 

Referências:


José Carlos Macoratti