En este post vamos a ver la forma en que podemos crear la funcionalidad de envío de mails para nuestras aplicaciones ASP.NET usando C#.

Empecemos por ver lo que será nuestro formulario de envío.


<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Mail.aspx.cs" Inherits="ASPNETMails.Mail" %>

<!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 runat="server">
    <title></title>
</head>
<body>
    <h1>
        Envio de e-mail con ASP.NET</h1>
    <br />
    <br />
    <form id="form1" runat="server">
    <div>
        Para:<br />
        <asp:TextBox ID="TxtTo" runat="server" Width="335px"></asp:TextBox><br />
        <br />
        Mensaje:<br />
        <asp:TextBox ID="TxtText" runat="server" TextMode="MultiLine" Rows="5" Columns="40">
        </asp:TextBox><br />
        <br />
        <asp:Button ID="BtSend" runat="server" Text="Enviar" OnClick="BtSend_Click" />
    </div>
    </form>
</body>
</html>

C# Code Behind


using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Net.Mail;

namespace ASPNETMails
{
    public partial class Mail : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {

        }

        protected void BtSend_Click(object sender, EventArgs e)
        {
            SendMail();
        }
        //Envió de mail sólo Texto
        private void SendMail()
        {
            SmtpClient smtp = new SmtpClient();
            smtp.Port = 25;//El puerto debe ser correctamente configurado.
            smtp.Timeout = 50;//Tiempo de conexión
            smtp.Host = "smtp.hotmail.com";
            smtp.EnableSsl = true;
            smtp.Credentials =
                new System.Net.NetworkCredential
                {
                    UserName = "elnombredelusuario",//Nombre de usuario de correo
                    Password = "elpassworddelusuario"//password
                };

            //Objeto referente a quién envía el correo
            MailAddress from =
                new MailAddress(
                    "elcorreo@hotmail.com",//Dirección
                    "ElCorreo",//Nombre asociado a la dirección
                    System.Text.Encoding.UTF8
                    );

            var mails = TxtTo.Text.Split(';');

            using (MailMessage message = new MailMessage())
            {
                message.From = from;
                message.Subject = "Correo de prueba";
                //Cargamos el contenido del mail.
                message.Body = TxtText.Text;
                message.Priority = MailPriority.Normal;

                //Cargamos todos los mails que se ingresaron
                //en el campor de text
                foreach (string dir in mails)
                    message.To.Add(dir);
                try
                {
                    //Se envía el mail
                    smtp.Send(message);
                }
                catch (SmtpException ex)
                {
                    throw;
                }
            }
        }
    }
}

Y eso es todo, hasta pronto!

Anuncios