Desenvolvimento - C#
Envio de email utilizando C#
Todos nós sabemos da importância de permitir que você se comunique com as pessoas que acessam o seu site. Neste artigo vamos aprender como enviar email usando a linguagem C#.
por Fernanda SallaiNeste 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.