Coloquio de Inesvitacion MDPH 2013 En...

jueves, 31 de julio de 2008

Enviar Correos en C Sharp (C♯)

Es posible enviar un correo electrónico mediante C#, mediante las clases System.Net, System.Net.Mail y System.Net.Mime , a continuacion les dejo un ejemplo de como hacerlo, facil identificar que evento le corresponde a cada boton y que campo a cada texbox, Etc.

using System;
using System.Data;
using System.Text;
using System.Drawing;
using System.Net;
using System.Net.Mail;
using System.Net.Mime; //VER AL FINAL
using System.Windows.Forms;

private void Enviar_Click(object sender, EventArgs e) //Creamos un Evento click para enviar
{
//Creamos un nuevo objeto de la clase MailMessage (preparamos el mensaje)
MailMessage msj = new MailMessage();
//A nuestro objeto lo llamamos “msj” ahora hay que establecer el destinatario
msj.To.Add(Destinatario.Text);

//Se establece el remitente, así como el nombre que aparecerá en la
//bandeja de entrada, así como el formato de codificación
msj.From = new MailAddress(De.Text, mensajedetexto.Text, Encoding.UTF8);
//DECLARAMOS EL ASUNTO
msj.Subject = Asunto.Text;
//y la codificacion del asunto
msj.SubjectEncoding = Encoding.UTF8;
//Establecemos el cuerpo del mensaje y su codificacion
msj.Body = mensajedetexto.Text;
msj.BodyEncoding = Encoding.Unicode;
//Aquí es donde preguntamos si el cuerpo del mensaje aceptara codigo HTML
msj.IsBodyHtml = true; // Es false por default

//ADJUNTAMOS EL ARCHIVO A ENVIAR
string Archivo; //Variable Tipo Cadena para recoger la ubicación del archivo a adjuntar
Archivo = ubicacion.Text; // y El texbox que lo llame ubicación tomara la cadena

// Ahora si a adjuntar el archivo
Attachment datoadjunto = new Attachment(Archivo,
MediaTypeNames.Application.Octet);
/*VER AL FINAL*/ ContentDisposition disposition = datoadjunto.ContentDisposition;
disposition.CreationDate = File.GetCreationTime(Archivo);
disposition.ModificationDate = File.GetLastWriteTime(Archivo);
disposition.ReadDate = File.GetLastAccessTime(Archivo);
msj.Attachments.Add(datoadjunto)

SmtpClient cliente = new SmtpClient(); //creamos un objeto de la clase SMTP
cliente.Credentials = new NetworkCredential(De.Text, contraseña.Text);
//se puede poner el puerto comun EL 25, PERO EN LUGARES querestringen el internet
//esta bloqueado y el puerto 587, no tiene problemas en ningun lado(hasta ahora)
cliente.Port = 587;
//Cliente SMTP en este caso gmail, ya que con hotmail es muy dificil enviar
cliente.Host = "smtp.gmail.com";
//EGURIDAD SSL? CLAROO
cliente.EnableSsl = true;

//Verificacion si se envio mensaje
try
{
cliente.Send(msj);
MessageBox.Show("Su Mensaje Enviado Correctamente");

}
catch (SmtpException ex)
{
MessageBox.Show(ex.Message, "ERROR AL ENVIAR MENSAJE");
}

}

//Esto es importante ya que es donde abrimos el cuadro de dialogo para elegir el archivo a enviar

private void AbrirCuadroDeDialogo_Click(object sender, EventArgs e)
{
OpenFileDialog dlgOpen = new OpenFileDialog();
if (dlgOpen.ShowDialog() == DialogResult.OK)
{
ubicacion.Text = (dlgOpen.FileName);
}//Es claro identificar lo anterior mente descrito Dudas dejen comentarios
}

/**********************************************************************************/
/*MIME especifica un formato estándar para encapsular múltiples piezas de
datos en un único mensaje de Internet. En ese documento no se ocupa de
la cuestión de los estilos de presentación, sino que proporciona un marco para el
intercambio de contenido de los mensajes, pero deja la presentación cuestiones exclusivamente
en manos del agente de usuario de correo (MUA) ejecutores.

"Content-Disposición" campo de encabezado, que es opcional y válido para
cualquier entidad MIME ( "mensaje" o "parte del cuerpo"). Dos valores de esta
campo de encabezado se describen en esta nota, uno para el giro normal lineal
presentación de la parte del cuerpo, y otra para facilitar el uso de
mail para transferir archivos. Se espera que un mayor número de valores se
definido en el futuro, y se definen los procedimientos para la extensión de este
conjunto de valores.

SmtpClient (Clase)
Permite a las aplicaciones enviar mensajes de correo electrónico mediante el protocolo SMTP (Protocolo simple de transferencia de correo).*/



By diego25th

0 comentarios: