 |
|
 |
Enviar email con C#
Enviar un email con C# es una tarea realmente sencilla, sin embargo es una pregunta muy frecuente en cualquier foro.
Además, la forma de envío ha cambiado con el framework 2.0. Así que vamos a diferenciarlo.
Enviar un email con C# utilizando .Net FrameWork 1.1
Lo primero que debemos hacer es incluir la referencia al assemblie System.Web. Esto no es necesario si se trata de una aplicación ASP.NET.
El siguiente código muestra como enviar un email, utilizando un servidor de correo de acceso público.
using System; using System.Web.Mail; namespace EnviarMail { class ClassEnviarMail{ [STAThread] static void Main(string[] args){ MailMessage msg = new MailMessage();msg.To = "devjoker@djk.com"; msg.From = "Administrador@djk.com"; msg.Subject = "El asunto del mail"; msg.Body = "Este es el contenido del email"; msg.Priority = MailPriority.High; msg.BodyFormat = MailFormat.Text ; //o MailFormat.Html SmtpMail.SmtpServer = "WIN02"; // El servidor de correo try { SmtpMail.Send(msg);
} catch (Exception ex){ Console.WriteLine (ex.Message ); Console.ReadLine();
} } } }
|
El mismo código, pero utilizando un servidor que requiere autenticación.
using System; using System.Web.Mail; namespace EnviarMail { class ClassEnviarMail{ [STAThread] static void Main(string[] args) { MailMessage msg = new MailMessage(); msg.To = "destinatario@djk.com"; msg.From = "quienenvia@djk.com"; msg.Subject = "El asunto del mail"; msg.Body = "Este es el contenido del email"; msg.Priority = MailPriority.High; msg.BodyFormat = MailFormat.Text ; //o MailFormat.Html // Activar Autenticaciónmsg.Fields.Add( "http://schemas.microsoft.com/cdo/configuration/smtpauthenticate", "1"); // Nombre de usuariomsg.Fields.Add( "http://schemas.microsoft.com/cdo/configuration/sendusername", "user"); // Contraseñamsg.Fields.Add( "http://schemas.microsoft.com/cdo/configuration/sendpassword", "password"); SmtpMail.SmtpServer = "WIN02";// El servidor de correo try{ SmtpMail.Send(msg);
} catch (Exception ex){ Console.WriteLine (ex.Message ); Console.ReadLine();
}
} } }
|
Enviar un email con C# utilizando .Net FrameWork 2.0
Utilizando el frameWork 2.0, cambia bastante. Ya no son las clase de System.Web.Mail las que usamos, sino las de System.Net.Mail.
No obstante, el código anterior del framework 1.1 sigue funcionando en el framework 2.0.
using System; using System.Net.Mail; namespace EnviarMail { class ProgramEnviarMail{ static void Main(string[] args){ MailMessage msg = new MailMessage(); msg.To.Add (new MailAddress("devjoker@djk.com")); msg.From = new MailAddress("Administrador@djk.com"); msg.Subject = "El asunto del mensaje(2.0)"; msg.Body = "El contenido del mensaje"; SmtpClient clienteSmtp = new SmtpClient("WIN02"); try { clienteSmtp.Send(msg);
} catch (Exception ex){ Console.Write(ex.Message);Console.ReadLine(); } } } }
|
Y si el servidor necesita autenticación:
using System;
using System.Net; // Nueva using System.Net.Mail; namespace EnviarMail { class ProgramEnviarMail{ static void Main(string[] args){ MailMessage msg = new MailMessage(); msg.To.Add (new MailAddress("devjoker@djk.com")); msg.From = new MailAddress("Administrador@djk.com"); msg.Subject = "El asunto del mensaje(2.0)"; msg.Body = "El contenido del mensaje"; SmtpClient clienteSmtp = new SmtpClient("WIN02"); // Este es el código nuevo clienteSmtp.Credentials =
new NetworkCredential("usuario", "clave"); try{ clienteSmtp.Send(msg);
} catch (Exception ex){ Console.Write(ex.Message);Console.ReadLine(); } } } }
|
También podemos utilizar el Web.Config para especificar los datos de acceso al servidor de correo.
<
system.net> <mailSettings> <smtp from="usuario@djk.com"> <network host="smtpserver1" port="25" userName="username" password="secret" defaultCredentials="true" /> </smtp> </mailSettings> </system.net> |
Saludos, DJK
|
| |
 |
=S
por
Rodrigo
Respuesta recibida el [05/10/2007 05:40:09]
|
 |
Si bien podría ayudar bastante copiando y pegando el código, creo que faltó una explicación, para entender el código. De todas formas se agradece
|
| |
 |
Problemas para enviar mails
por
Vitucho
Respuesta recibida el [09/01/2008 10:24:48]
|
 |
Hola, tengo un problema al enviar mails mediante C# y Framework 1.1, el mensaje de error es el siguiente: System.Web.HttpException: No se puede obtener acceso al objeto 'CDO.Message'. ---> System.Reflection.TargetInvocationException: Se inició una excepción en el destino de la invocación. ---> System.Runtime.InteropServices.COMException (0x8004020F): El servidor rechazó una o más direcciones de destinatarios. Respuesta del servidor: 450 4.7.1 Client host rejected: cannot find your hostname, [172.30.125.77] ******************* Ojala alguién me pueda ayudar, gracias de antemano. PD. Uso el mismo código expuesto, el servidor smtp es un Centos 5.0
|
| |
 |
me falta el .Mail
por
Javi
Respuesta recibida el [18/03/2008 10:53:04]
|
 |
no se si será normal, supongo que no, pero cuando estoy introduciendo la línea "using System.Web.Mail;" el .Mail, no me lo reconoce. Trabajo con .Net 1.1 y no se que es lo que pasará.
|
| |
 |
Como hago un atach
por
ecdundy
Respuesta recibida el [27/04/2008 07:13:02]
|
 |
Mi duda es que todo esto esta muy didactico pero si quiero hacer un atach o sea adjuntar un archivo para enviarlo por correo como se hace >?
|
| |
 |
adjuntar archivo a un mail en framework 1.1
por
nachoman
Respuesta recibida el [08/05/2008 02:55:21]
|
 |
para adjuntar un archivo en el fw 1.1
//de donde es el archivo sFile = "c:\\miarchivo.txt"; creo mi objeto atach oAttch = new System.Web.Mail.MailAttachment(sFile,System.Web.Mail.MailEncoding.Base64); //y lo agrego a mi mensaje msg.Attachments.Add(oAttch);
|
| |
 |
error de coneccion con el servidor
por
nachoman
Respuesta recibida el [08/05/2008 03:03:37]
|
 |
yo autentifico y todo, doy mi login mi pass, y me sale este error, no se que podria estar pasando Error de transporte en la conexión al servidor
antes si lo enviaba pero ahora no, creo que cambiaron los protocolos de correo otraves, pero ahora no veo ninguna solucion, ni nada por el estilo, aun sigo investigando aunque llevo como 3 dias con lo mismo, y ya me duele la espalda, seguramente cuando termine mi premio sera un masaje por alguna chica nudista, ayudenme, para que no espere tanto el masaje jeje :D
|
| |
 |
dd
por
d
Respuesta recibida el [10/03/2009 02:27:34]
|
 |
dd
|
| |
 |
Para nachoman
por
Devjoker
Respuesta recibida el [10/03/2009 03:21:44]
|
 |
Parace que el error es que no "llegas" hasta el servidor de correo. Mira a ver si el router tiene los puertos necesarios abiertos.
|
| |
 |
Como saber el nombre de un servidor de correos
por
Martin
Respuesta recibida el [23/04/2009 03:33:14]
|
 |
Hola. Mi pregunta es la siguiente: Como se cual es el nombre de servidores como hotmail, yahoo o gmail para mandar mails desde ellos?
|
| |
 |
error al enviar el correo
por
aby
Respuesta recibida el [16/05/2009 02:12:13]
|
 |
Hola. Tengo en error al momento de querer enviar el correo cuando esta autentificando al correo. entra a la excepción yme dice que no se puede conectar al servicio remoto y que el equipo de destino ha denegado dicha conesion :s. Me podrían orientar para corregirlo.
|
| |
 |
En este blog pueden encontrar ...
por
Anónimo
Respuesta recibida el [19/05/2009 10:55:52]
|
 |
En este blog pueden encontrar info http://www.codesolvers.wordpress.com/
|
| |
 |
Adjuntar Archivo
por
Sophia Brañes
Respuesta recibida el [20/05/2009 04:02:04]
|
 |
Estoy haciendo un programa tipo outlook en c# pero no puedo utilizar la libreria System.Net.Mail por lo que tengo uqe crear el objeto archivo adjunto yo misma. alguna idea?????
Gracias
|
| |
 |
enviar mail.
por
Leonel
Respuesta recibida el [03/07/2009 02:28:12]
|
 |
muy util el mini tutorial, en solo unos minutos se hace. Gracias tb a nachoman por indicar como adjuntar un archivo, lo pude adaptar para framework 2.0. Saludos
|
| |
 |
Adjuntar Archivos grandes
por
Andres
Respuesta recibida el [23/12/2009 05:48:29]
|
 |
Hola, ya hize el programa, pero al adjuntar un archivo grande me sale el siguiente error.
"Se excedió el tiempo de espera de la operación."
Me podrian ayudar... supuse que tendría que cambiar esto: cliente.Timeout = 100000;
Pero aun asi no funciona... dejo mi correo...
camachords@hotmail.com
gracias
|
| |
 |
Me respondo a mi mismo jeje
por
Andres
Respuesta recibida el [23/12/2009 05:58:45]
|
 |
le tube que cambiar:
cliente.Send(mensaje);
por:
cliente.SendAsync(mensaje, mensaje.To);
esto lo manda sin que este trabajando el programa :D
aparte hace mas rapido el programa que hacen... y es mas seguro que se mande :D
les dejo el TIP jeje
bye
|
| |
 |
si tiene puerto especifico
por
Sylar
Respuesta recibida el [10/01/2010 02:25:16]
|
 |
Hola tu codigo me ayudo mucho estoy empezando recien con el C# me gustaria saber si es q el servidor tiene un puerto especifico como seria la linea de codigo, gracias
|
| Añadir comentario ... |
Para preguntar utiliza los foros
|
|

|
Enviar email con C# |
|
Autor:
Pedro Herrarte Sánchez
|
|
Visitas:
21968 |
Fecha de publicación:
27/08/2007 |
Pedro Herrarte, es consultor independiente, ofreciendo servicios de consultoría, análisis, desarrollo y formación.
Posee mas de diez años de experiencia trabajando para las principales empresas de España.
Es especialista en tecnologías .NET, entornos Web, bases de datos (SQL Server y ORACLE) e integración de sistemas.
Es experto en desarrollo (C#, ASP.NET, VB.Net, T-SQL, PL/SQL, , ASP, CGI , C, Pro*C, Java, Essbase, Vignette, PowerBuilder y Visual Basic ...) y bases de datos (SQL Server y ORACLE).
Es fundador, diseñador y programador de www.devjoker.com. |
|
Visitas:
274
|
Comentarios:
0
|
Archivo:
Articulos
|
Visitas:
175
|
Comentarios:
2
|
Archivo:
Articulos
|
Visitas:
250
|
Comentarios:
0
|
Archivo:
Articulos
|
Visitas:
2581
|
Comentarios:
2
|
Archivo:
Articulos
|
Visitas:
13523
|
Comentarios:
7
|
Archivo:
Articulos
|
Visitas:
1097
|
Comentarios:
3
|
Archivo:
Articulos
|
|
Visitas:
575
|
Comentarios:
2
|
Archivo:
Articulos
|
|
Visitas:
312
|
Comentarios:
0
|
Archivo:
Articulos
|
Visitas:
1502
|
Comentarios:
2
|
Archivo:
Articulos
|
|
Visitas:
1073
|
Comentarios:
0
|
Archivo:
Articulos
|
|
|
 |
Global SEO Partner
Our Global seo partner regarding international seo is located in
spain and gives excellent service.
International expansion
The International expansion of our website is focused for North
america, Europe and Latin America.
Brand tracking
Brand tracking is a way to make sure we control what is said about our brand online.
|
|
|
 |