ASP .NET  -  Enviando Emails (Web Forms)


 

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

 

Depois é só você configurar os métodos e propriedades do objeto que você vai instanciar a partir da classe. As principais são :

 

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

Vou mostrar primeiro um exemplo básico e padrão : um formulário que depois de preenchido envia um email para o endereço informado. O aspecto do formulário deverá ser o seguinte:

O código do formulário acima é o seguinte :

<%@ Page Language="vb" AutoEventWireup="false"%>
<%@Import NameSpace="System.Web.Mail" %>

<script runat="server">

Sub EnviaEmail(Source as Object, E as EventArgs)

Dim sMsg as String

 sMsg+="Aqui esta a informação que foi informada no formulário." & vbcrlf
 sMsg+="Nome : " & txtNome.Text & vbcrlf
 sMsg+="Endereco : " & txtEndereco.Text & vbcrlf

 Dim objEmail as New MailMessage

 objEmail.To=txtEmail.text
 objEmail.BCC="
macoratti@yahoo.com"
 objEmail.FROM="
macoratti@pop.com.br"
 objEmail.SUBJECT="Assunto :"
 objEmail.BODY=sMsg
 objEmail.BodyFormat = MailFormat.Text
 SmtpMail.SmtpServer ="smtp2.seuservidor.com.br"

 SmtpMail.Send(objEmail)

End Sub
</script>

<html>
<body bgcolor="aqua">
<h1>Preencha o formulário</h1>
<Form id="form1" runat="server">
<table>
<tr>
<td align="right">Nome :</td>
<td><asp:TextBox id="txtNome" maxlength="40" Text="" runat="server" />
<asp:RequiredFieldValidator id="nomeValido" ControlToValidate="txtNome" Display="Static" InitialValue="" runat="server">Informe um nome ! </asp:RequiredFieldValidator>
</td>
</tr>
<tr>
<td align="right">Endereco: </td>
<td><asp:TextBox id="txtEndereco" maxlength="40" runat="server" />
<asp:RequiredFieldValidator id="EnderecoValido" ControlToValidate="txtEndereco" Display="Static" InitialValue="" runat="server">Informe um endereco ! </asp:RequiredFieldValidator>
</td>
</tr>
<tr>
<td align="right">Email : </td>
<td><asp:TextBox id="txtEmail" runat="server" />
<asp:RequiredFieldValidator id="EmailValido" ControlToValidate="txtEmail" Display="Static" InitialValue="" runat="server">Informe um Email ! </asp:RequiredFieldValidator>
</td>
</tr>
<td align="right"><asp:Button id="btnEmail" Text="Enviar email" onclick="EnviaEmail" runat="server" /></td>
</table>
</Form>
</body>
</html>

Neste exemplo eu estou enviando apenas um email sem anexos , sendo que a mensagem já esta criada. Poderia ter incluído uma caixa de texto que permitisse ao usuário digitar a mensagem.

Eu estou usando o controle de validação - RequiredFieldValidator - que obriga o preenchimento de todos os campos do formulário.

Para maiores detalhes sobre o assunto leia o artigo : Trabalhando com Controles e Web Forms - II.

Eu estou usando o serviço do meu servidor SMTP , na linha de código  SmtpMail.SmtpServer ="smtp2.seuservidor.com.br" , você deve alterar para o nome do seu servidor.

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.( Veja o site www.aspemail.com)

Em outro artigo veremos como enviar anexos com email no ASP.NET, até lá....

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

Quer migrar para o VB .NET ?

Quer aprender C# ??

Quer aprender os conceitos da Programação Orientada a objetos ?

Quer aprender o gerar relatórios com o ReportViewer no VS 2013 ?

Quer aprender a criar aplicações Web Dinâmicas usando a ASP .NET MVC 5 ?


  Gostou
?   Compartilhe no Facebook   Compartilhe no Twitter

 

Referências:


José Carlos Macoratti