Intentando "hermanar" las tecnologías de dos de los titanes del software mundial, Google y Microsoft, he encontrado en Google Code una biblioteca para desarrollar en .NET aplicaciones que hagan uso de las diversas APIs de Google. Se trata de la .NET Client Library Developer, bastante obsoleta ya que se requiere el .NET Framework 1.1, que actualmente carece de soporte por parte de Microsoft. Sin embargo, poder gozar de toda la potencia de las herramientas de Google (Google Maps, GMail, GTalk, Calendar...) desde una aplicación .NET, gracias a la interoperabilidad de estas tecnologías puede ser un aspecto a tener en cuenta.
Dejo hoy un pequeño código en el que he estado trabajando. Permite enviar correos a través de GMail (aunque el código es extensible a cualquier servidor de correo con soporte SMTP). Aunque relacionado con lo que comentaba anteriormente, realmente no hace uso de la API de Google, sino de System.Net.Mail del .NET Framework 2.0. El código es realmente simple, limitándose a establecer una conexión con el servidor SMTP (en Gmail, a través de los puertos 587 ó 465, en lugar del típico puerto 25), y realizar un envío usando la clase System.Net.Mail.MailMessage. En próximos días, más :)
[csharp]
public void SendMail(string destinationAddress, string subject, string body)
{
System.Net.Mail.MailMessage msg = new System.Net.Mail.MailMessage();
msg.To.Add(destinationAddress);
msg.From = new MailAddress("tudireccion@gmail.com", "TuNombreYApellidos", System.Text.Encoding.UTF8);
msg.Subject = subject;
msg.SubjectEncoding = System.Text.Encoding.UTF8;
msg.Body = body;
msg.BodyEncoding = System.Text.Encoding.UTF8;
msg.IsBodyHtml = false;
// Configuración SMTP
SmtpClient mailSmtp = new SmtpClient();
mailSmtp.Host = "smtp.gmail.com";
mailSmtp.Credentials = new System.Net.NetworkCredential("tudireccion@gmail.com", "tucontraseña");
mailSmtp.EnableSsl = true;
mailSmtp.Port = 587;
try
{
mailSmtp.Send(msg);
}
catch (SmtpException ex)
{
throw ex;
}
}
[/csharp]
[...] A continuación, añadimos la funcionalidad de envío de correo que creamos en el post sobre el envío de correos mediante Gmail y C#. Lo ideal sería, cuando tuviésemos la funcionalidad de envío y recepción de correo completa, [...]
ResponderEliminarCual seria el codigo para una aplicacion con framework 1.1, ya que en el framework 1.1 no existe el assembly system.net.mail
ResponderEliminargracias.
http://frasesmessenger.unlugar.com
http://usuarios.lycos.es/mimejorfrase
Gracias por el código funciona muy bien,
ResponderEliminarXD.....,
Pero tengo una preguna, como podría hacer para que el usuario y clave de autenticacion sena dinamicos de acuerdo al usuario que esta logeado en mi pagina.
Gracias.
Hola Luis.
ResponderEliminarSobre tu pregunta, habría que ver cómo guardas la información del usuario y su contraseña. Posiblemente lo mantengas en sesión, ¿verdad? Su nombre de usuario podrías recuperarlo del valor de la variable de sesión que estés usando. Respecto a la contraseña, imagino que eso no estará rondando por la aplicación, sino que simplemente validaras al usuario cuando se conecte mediante una base de datos o alguna herramienta similar. De ahí deberías recuperar la contraseña para dicho usuario (si es que es posible, y no la tienes almacenada cifrada con algún algoritmo hash) y reutilizarla. Pero cuidado por posibles inyecciones de código que puedan vulnerar la seguridad de tu sitio web.
Si tienes alguna duda más o quieres enviarnos la parte de código donde se gestiona a tus usuarios para echarte una mano, esta es tu casa.
Un saludo,
Mith.
Hola,
ResponderEliminarExcelente el post, llevaba varios día buscando una ayuda como ésta....
Muchas Gracias.
Muy buenas Manuel.
ResponderEliminarMe alegra que te haya sido útil el ejemplo.
Saludos.
Hola, ya e buscado por muchos post y el tuyo es el mas completo en el tema tengo mi codigo igual al tuyo y no me manda el correo me dice Failure sending mail.
ResponderEliminarno se si pueda ser algun problema con mi router, gracias.
Podría ser, Ajads. De todas formas es posible que Google haya cambiado algunos parámetros de configuración en este tiempo (como los puertos usados). Revisa eso por si fuera el origen de tu problema.
ResponderEliminarSaludos.
Como agregar varios destinatarios al correo?
ResponderEliminarel Subject no me permite tildes aun colocando
ResponderEliminareste codigo msg.SubjectEncoding = System.Text.Encoding.UTF8;
por favor espero tu respuesta