Todos nós sabemos da importância de permitir que você se comunique com as pessoas que acessam o seu site. Por isto, irei demonstrar de maneira simples o envio de emails utilizando C#.
Vamos começar !
Web.config
Nosso web.config ficará conforme listagem 1.
<?xml version="1.0"?>
<configuration>
<!-- Incluir uma chave chamada emailFrom contendo o email do remetente dentro da tag appSettings -->
<appSettings>
<add key="emailFrom" value="emailRemetente"/>
</appSettings>
<system.net>
<mailSettings>
<smtp>
<!-- Incluir no host o smtp, no userName o endereço de email do remetente e no password a senha do email do remetente -->
<network host="smtpEmail" port="25" userName="emailRemetente" password="senhaEmailRemetente"/>
</smtp>
</mailSettings>
</system.net>
<system.web>
<compilation debug="true" targetFramework="4.0" />
</system.web>
</configuration>
Listagem 1 - Código no Web.Config.
Classe email
Vamos criar uma classe chamada Email com o código da listagem 2. Para adicionar uma classe clique com o botão direito do mouse em cima do projeto - ADD - Class - nomeie a classe.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
// namespace para o e-mail
using System.Net.Mail;
// namespace do ConfigurationManager
using System.Configuration;
namespace EnviandoEmail
{
public class Email
{
///
/// Enviar e-mail
///
/// Endereço do destinatário
/// Assunto do e-mail
/// Conteúdo do e-mail
public static void EnviarEmail(string email, string assunto, string conteudo)
{
//Cria o objeto que envia o e-mail
SmtpClient client = new SmtpClient();
//Cria o endereço de email do remetente
MailAddress de = new MailAddress(ConfigurationManager.AppSettings["EmailFrom"]);
//Cria o endereço de email do destinatário -->
MailAddress para = new MailAddress(email);
MailMessage message = new MailMessage(de, para);
message.IsBodyHtml = true;
//Assunto do email
message.Subject = assunto;
//Conteúdo do email
message.Body = conteudo;
try
{
//Envia o email
client.Send(message);
}
catch
{
}
}
}
}
Listagem 2 - Codificação da classe de e-mail.
Página EnviandoEmail.aspx
Para adicionar a página clique com o botão direito do mouse em cima do projeto - ADD - New item - Web Form - nomeie para EnviandoEmail.
Na listagem 3 e figura 1 serão exibidos como ficará o layout.
OBS: Este post tem o objetivo de demonstrar o envio de e-mail, então não me preocupei com o layout. Claro que você poderá melhorá-lo.
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="EnviandoEmail.aspx.cs" Inherits="EnviandoEmail.EnviandoEmail" %>
<!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 e=mail</title>
</head>
<body>
<form id="frmAspNet" runat="server">
<br />
<div>
<asp:Label ID="lblEmail" runat="server" Text="E-mail" style="padding-right: 35px"></asp:Label>
<asp:TextBox ID="txtEmail" runat="server"></asp:TextBox>
</div>
<br />
<div>
<asp:Label ID="lblAssunto" runat="server" Text="Assunto" style="padding-right: 25px"></asp:Label>
<asp:TextBox ID="txtAssunto" runat="server"></asp:TextBox>
</div>
<br />
<div>
<asp:Label ID="lblConteudo" runat="server" Text="Conteúdo" style="padding-right: 15px"></asp:Label>
<asp:TextBox ID="txtConteudo" runat="server"></asp:TextBox>
</div>
<asp:Button ID="btnEnviarEmail" runat="server" Text="Enviar" onclick="btnEnviarEmail_Click" />
<asp:Label ID="lblMensagem" runat="server" Text="Label"></asp:Label>
</form>
</body>
</html>
Listagem 3 - Layout.

Figura 1 - Layout.
Página EnviandoEmail.aspx.cs
Na listagem 4 teremos a codificação de nossa página.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
// namespace Regex
using System.Text.RegularExpressions;
namespace EnviandoEmail
{
public partial class EnviandoEmail : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
lblMensagem.Visible = false;
}
protected void btnEnviarEmail_Click(object sender, EventArgs e)
{
// Validar se campos foram preenchidos
if (ValidarCampos())
{
// Esconde a mensagem de validação
lblMensagem.Visible = false;
// Enviar e-mail
Email.EnviarEmail(txtEmail.Text, txtAssunto.Text, txtConteudo.Text);
// Limpar todos os campos
LimparCampos();
// Exibe mensagem de sucesso no envio do e-mail.
Page.ClientScript.RegisterStartupScript(this.GetType(), "mensagem de sucesso", "E-mail enviado com sucesso.");
}
else
{
lblMensagem.Visible = true;
}
}
///
/// Validar preenchimento dos campos
///
/// True/False
private bool ValidarCampos()
{
bool camposPreenchidos = true;
if (txtEmail.Text == string.Empty)
{
lblMensagem.Text = "Preencha o e-mail.";
return camposPreenchidos = false;
}
else
{
if (!IsValidEmail(txtEmail.Text))
{
lblMensagem.Text = "O formato do e-mail é inválido.";
return camposPreenchidos = false;
}
}
if (txtAssunto.Text == string.Empty)
{
lblMensagem.Text = "Preencha o assunto.";
return camposPreenchidos = false;
}
if (txtConteudo.Text == string.Empty)
{
lblMensagem.Text = "Preencha o conteúdo.";
return camposPreenchidos = false;
}
return camposPreenchidos;
}
///
/// Validar o e-mail
///
/// E-mail
///
private bool IsValidEmail(string email)
{
// instancia um regex com a expressão desejada
Regex rg = new Regex(@"^[A-Za-z0-9](([_\.\-]?[a-zA-Z0-9]+)*)@([A-Za-z0-9]+)(([\.\-]?[a-zA-Z0-9]+)*)\.([A-Za-z]{2,})$");
return rg.IsMatch(email);
}
///
/// Limpar os campos
///
private void LimparCampos()
{
txtAssunto.Text = string.Empty;
txtConteudo.Text = string.Empty;
txtEmail.Text = string.Empty;
}
}
}
Listagem 4 - Codificação da página.
Pronto... E agora é só enviar o e-mail.... haha
Até mais =D
Projeto disponível: EnviandoEmail.rar (22,88 kb)