Desenvolvimento - ASP. NET

Enviando e-mail com ASP.NET

Muitas vezes precisamos que nosso site envie e-mails para alguem assim que uma ação é realizada. Devido a esta necessidade estarei mostrando neste artigo como enviar um e-mail atrávés do ASP.NET.

por Ícaro C. Bombonato



Olá,

Muitas vezes precisamos que nosso site envie e-mails para alguém assim que uma ação é realizada. Devido a esta necessidade estarei mostrando neste artigo como enviar um e-mail atrávés do ASP.NET. Vamos criar uma rotina, onde após passados os paramêtros básicos de um e-mail, o mesmo é gerado e enviado.

Primeiro precisamos importar o namespace necessário para enviarmos o e-mail:

Imports System.Web.Mail 

Agora vamos criar nossa rotina:

Public Sub spuGerarEmail(ByVal strDe As String, ByVal strPara As String, 
ByVal strAssunto As String, ByVal strMensagem As String, ByVal enumFormato As MailFormat, 
ByVal strSMTP As String, ByVal enumPrioridade As MailPriority, 
Optional ByVal strCaminhoAnexo() As String = Nothing) 
"Utilizamos o bloco try, catch para tratar eventuais erros 
Try 
"Instanciamos uma nova mensagem de e-mail 
Dim oMail As New MailMessage 

"Vamos acrescentar os paramêtros necessarios agora 

"Para quem é o email - strPara 
"Ex: icaro@codificando.net 
"Para passar o nome da pessoa, coloque o nome dela seguido do email entre parenteses 
"Ex: Icaro Bombonato(icaro@codificando.net) 
oMail.To = strPara 

"Quem envia o e-mail - strDe 
"Seguir exemplo do campo "Para" 
oMail.From = strDe 

"O assunto da mensagem - strAssunto 
oMail.Subject = strAssunto 

"A mensagem em si, pode ser texto ou html - strMensagem 
oMail.Body = strMensagem 

"O tipo da mensagem: Texto ou Html - enumFormato 
oMail.BodyFormat = enumFormato 

"Prioridade da mensagem: Low, Normal ou High - enumPrioridade 
oMail.Priority = enumPrioridade 

"Agora verificamos se a mensagem possui anexos - strAnexos 
"Para anexar arquivos, passe um array contendo os caminhos dos arquivos a serem anexados 
"Notem que este parametro é opcional 
If Not IsNothing(strCaminhoAnexo) Then 
"Adicionamos os anexos 1 à 1 
Dim strAnexo As String 

For Each strAnexo In strCaminhoAnexo 
Dim mailAnexo As New MailAttachment(strAnexo) 
oMail.Attachments.Add(mailAnexo) 
Next 
End If 

"Agora definimos o servidor smpt a ser utilizado, verifique isso 
"com o provedor onde seu site está hospedado - strSMTP 
"Geralmente é smtp.provedor.com.br 
SmtpMail.SmtpServer = strSMTP 

"Enfim, enviamos o e-mail 
SmtpMail.Send(oMail) 

Catch ex As Exception 
"Caso ocorra algum erro, exibimos o mesmo na tela. 
"Se quiser, você pode trata-lo da forma que achar melhor. 
Err.Raise(Err.Number, Err.Source, ex.Message) 
End Try 

End Sub 

Agora que criamos a função, podemos chama-la no click de um botao, dentro de um sub ou outra parte do codigo.

Ex:

"Criamos um array com os anexos desejados 
Dim strAnexos(2) As String 
strAnexos(0) = "D:\temp\arquivo1.txt" 
strAnexos(1) = "D:\temp\arquivo2.txt" 
strAnexos(2) = "D:\temp\arquivo3.txt" 

"Crio uma variavel para o texto 
Dim strMensagem As String = "Isso é uma mensagem de teste. " _
	"Você pode deixar o conteudo em html ou texto simples." 

"Agora chamamos a funcao e passamos os parametros necessários 
spuGerarEmail("Seu email(seuemail@provedor.com.br)", _
	"Para alguem(paraalguem@provedor.com.br)", "Exemplo de e-mail", strMensagem, _
	MailFormat.Text, "smtp.seuprovedor.com.br", MailPriority.Normal, strAnexos) 

Este foi apenas um dos modos que você pode enviar email, você pode envia-los tambem através de formularios ou de outro modo que você precise.

Espero que tenham gostado. Qualquer sugestão é só enviar para icaro@codificando.net

Até mais,
Ícaro Bombonato

Ícaro C. Bombonato

Ícaro C. Bombonato - Analista de Sistemas, formado em Criação e desenvolvimento de web sites, atualmente está cursando Pós-Graduação em "Desenvolvimento de software para Web" na UFSCar. Trabalha com .NET desde Agosto de 2002 e tem atuado em diversos projetos de todos os portes.