martes, 1 de septiembre de 2009

Envío de correos a través de Gmail, con varios archivos adjuntos y AJAX

En este articulo te explico como envíar un correo electrónico con varios archivos adjuntos a multiples usuarios previamente registrados en una Base de Datos desde una página de ASP.NET, usando las clases de System.Net.Mail que son nuevas en la versión 2.0 de .NET Framework, GMAIL y AJAX.

Aclaro yo estoy usando la versión 3.5 del .Net Framework

El codigo puede ser extesible a cualquier servidor de correo con soporte SMTP, haciendo uso de System.Net.Mail del .Net framework 2.0, en este caso yo estoy usando GMAIL, a traves del puerto 587, en lugar del 25 y realizar un envío usando la clase System.Net.Mail.MailMessage del espacio de nombres System.Net.Mail :

En su propiedad From : El que envía el mensaje.

En su propiedad To : A quien va dirigido el mensaje.

En su propiedad Subject: El asunto del mensaje.

En su propiedad Body : El contenido del mensaje.

En su propiedad Priority : La prioridad del mensaje .

En su propiedad IsBodyHtml : Obtiene o establece un valor que indica si el cuerpo del mensaje de correo etá en HTML.

Nota: esta propiedad es nueva en la versión 2.0 de .NET Framework.

Para enviar el mensaje usaremos un objeto del tipo SmtpClient, del cual debemos crear una nueva instancia de esa clase y asignar los nuevos valores apropiados para poder enviar el mensaje.

Vamos a empezar, se supone que tienes un formulario web, con controles de tipo Textbox, para cada una de las propiedades mencionadas arriba, los destinatarios yo los tengo registrados en una BD’s, por lo cual no tengo un TextBox para capturar el destinatario, de igual forma yo agregué un control RadioButtonList, el cual lo renombre como rblistParameter. Este control sirve para presentar al usuario un conjunto de opciones mutuamente excluyentes entre si, es decir, si el usuario selecciona un componente radio todos los demás componentes radioButton en la forma se desmarcan o deseleccionan solos, es por esta razón que decimos que radiobutton son mutuamente excluyentes.

El FileUploadAJAX es un control open source para ASP.NET 2.0 de un modo de uso muy similar al tradicional FileUpload pero con una diferencia clave: ¡comportamiento AJAX! ¿Y eso que significa? Pues que con el FileUploadAJAX se podrá subir ficheros de manera asíncrona y sin recargar la página. Si desean descargar el control FileUploadAJAX, lo pueden hacer del siguiente link: http://fileuploadajax.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=8061

Para usar el FileUploadAjax tienen que hacer lo siguiente:

Arrastrar el control a la pagina, el encabezado de la página quedará así:

<%@ Register Assembly="FUA" Namespace="Subgurim.Controles" TagPrefix="cc1" %>

En el .aspx te quedará de la siguiente manera:

Para usar la librería primero deberás importar la librería:




Consideraciones....

No olvidemos incluir estos namespace: using System.Net; using System.Net.Mail, Subgurim.Controles, using System.Collections, using System.Collections.Generic, using System.Net.Mime,using System.IO.

Para los servidores que no requieran usar una comunicación por SSL comentar la línea de smtp.EnableSsl.

En el ejemplo se asigna un destinatario a la propiedad To, esta propiedad es una colección del tipo MailAddressCollection, por eso usa el método Add, podemos agregar la cantidad de destinatarios que necesitemos usando ese método.

Al momento de usar el método Send lo ponemos en un Try-Catch porque se puede producir errores en el envió, por ejemplo por requerir SSL.

Si te sirvió, déjame un comentario.

Asp.Net
C#
AJAX

Espero que les sea de utilidad.