Neste artigo você aprenderá como enviar email utilizando a
linguagem C#.
Criaremos com o Visual Studio uma aplicação simples para o
melhor entendimento do código necessário para o envio de email.
Vamos começar?!
Criando um projeto
Criaremos um projeto usando o Visual Studio clicando no menu
File (arquivo) – New (novo) – Project (projeto), em Project Types (Tipos de
projeto) escolha Visual C# e em Templates escolha ASP.NET Web Application, digite
o nome e o local que salvará sua aplicação e clique em OK. Para ver detalhes
observe a Figura 1.

Figura 1. Criando um projeto web
Incluindo no Web.Config
Criaremos uma chave que irá conter o email do remetente. Essa chave terá
um nome e um valor e será inserida dentro da tag <appSettings>.
Incluiremos também o smtp, o nome e a senha do usuário do email remetente
dentro das tags <system.net><mailSettings>. O conteúdo incluído no
Web.Config segue na Listagem1.
Listagem 1. Conteúdo do web.config
<?xml version="1.0"?>
<configuration>
<appSettings>
<add key="emailRemetente" value="emaildoremetente"/>
</appSettings>
<system.net>
<mailSettings>
<network host="smtpdoemaildoremetente"
port="25" userName="emaildoremetente" password="senhadoemaildoremetente"/>
</mailSettings>
</system.net>
</configuration>
Criando a classe de email
Para isso clique no ícone do projeto em Solution Explorer com o botão
direito do mouse, escolha Add Class. Nomeie seu novo arquivo e clique em add.
Os detalhes dessa operação podem ser vistos nas Figuras 2 e 3 e
seu conteúdo na Listagem 2.

Figura 2. Adicionando uma classe ao projeto

Figura 3. Criando uma classe
Listagem 2. Conteúdo da classe email
using System;
using
System.Collections.Generic;
using System.Linq;
using System.Web;
using
System.Configuration;
using System.Net.Mail;
namespace Email
{
public
class email
{
/// <summary>
/// Método para enviar email
/// </summary>
/// <param
name="emailDestinatario">Email do
destinatário</param>
/// <param
name="assunto">Assunto do email</param>
/// <param
name="mensagem">mensagem do email</param>
public static void EnviarEmail(string
emailDestinatario, string assunto, string mensagem)
{
//Cria o
objeto que envia o e-mail
SmtpClient
client = new SmtpClient();
//Cria o
endereço de email do remetente
MailAddress de = new
MailAddress(ConfigurationSettings.AppSettings["emailRemetente"]);
//Cria o
endereço de email do destinatário -->
MailAddress para = new
MailAddress(emailDestinatario);
MailMessage
mensagem = new MailMessage(de,
para);
mensagem.IsBodyHtml = true;
//Assunto do
email
mensagem.Subject = assunto;
//Conteúdo do
email
mensagem.Body = mensagem;
try
{
//Envia o
email
client.Send(mensagem);
}
catch
{
}
}
}
}
Criando página para o envio do email
Para isso clique no ícone do projeto em Solution Explorer com o botão
direito do mouse, escolha Add New Item. Na janela que se abre selecione o ícone
Web Form. Nomeie seu novo arquivo e clique em add. Os detalhes dessa operação
podem ser vistos nas Figuras 4 e 5.

Figura 4. Adicionando um novo ítem ao projeto

Figura 5. Criando um Web Form
A página terá o modelo conforme a Figura 6 e seu conteúdo segue
nas listagens 3 e 4.

Figura 6. Criando uma página
Listagem 3. Conteúdo da página aspx
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Email.aspx.cs" Inherits="Email.Email" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
>
<head id="Head1" runat="server">
<title>Enviando email</title>
</head>
<body>
<form id="frmAspNet"
runat="server">
<div>
<table style="width: 33%;">
<tr>
<td>Email do Destinatário:</td>
<td>
<asp:TextBox ID="txtEmail"
runat="server"
Width="200px"></asp:TextBox>
</td>
</tr>
<tr>
<td>Assunto:</td>
<td>
<asp:TextBox ID="txtAssunto"
runat="server"
Width="200px"></asp:TextBox>
</td>
</tr>
<tr>
<td>Mensagem:</td>
<td>
<asp:TextBox ID="txtMensagem" TextMode="MultiLine" runat="server" Width="200px"></asp:TextBox>
</td>
</tr>
<tr>
<td colspan="2" align="right">
<asp:Button ID="Button1"
runat="server"
Text="Enviar"
/>
</td>
</tr>
</table>
<asp:Label ID="lblErro"
runat="server"></asp:Label>
</div>
</form>
</body>
</html>
Listagem 4. Conteúdo da página aspx.cs
using System;
using
System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using
System.Web.UI.WebControls;
namespace Email
{
public
partial class Email : System.Web.UI.Page
{
protected void
Page_Load(object sender, EventArgs e)
{
}
protected void
Button1_Click(object sender, EventArgs e)
{
if (CamposPreenchidos())
{
//Chama o
método de envio de email.
//Passando
o endereço do email destinatário, assunto e mensagem.
email.EnviarEmail(txtEmail.Text,
txtAssunto.Text, txtMensagem.Text);
}
}
/// <summary>
/// Método para verificar se todos os campos estão preenchidos
/// </summary>
/// <param
name="emailDestinatario">Email do
destinatário</param>
/// <param
name="assunto">Assunto do email</param>
/// <param
name="mensagem">mensagem do email</param>
private bool
CamposPreenchidos()
{
bool preenchidos = true;
if (txtEmail.Text == string.Empty)
{
lblErro.Text = "O email do destinatário é obrigatório.";
preenchidos = false;
return
(preenchidos);
}
if
(txtAssunto.Text == string.Empty)
{
lblErro.Text = "O assunto do email é obrigatório.";
preenchidos = false;
return
(preenchidos);
}
if
(txtMensagem.Text == string.Empty)
{
lblErro.Text = "A mensagem do email é obrigatória.";
preenchidos = false;
return
(preenchidos);
}
return
(preenchidos);
}
}
}
Conclusão
Esse artigo abordou de forma prática e simples o envio de email através
da linguagem C#.
Espero que tenham gostado do artigo e fiquem a vontade para fazer suas
implementações como, por exemplo, incluir um anexo.
Obrigada e até a próxima.