InicioArticulos y noticiasBases de datosProgramaciónForosInternetServiciosContratacionEmail
También puedes ver ...
SubVersion y Visual Studio
Encriptación con AES Rijndael - Ejemplo
TripleDES - Un ejemplo practico en C#
Insertar una marca de agua en documentos PDF
Serialización: XmlSerializer y BinaryFormater
Handler para manipular imagenes
Conversiones de tipos personalizadas (VB y C#)
Compresión por gzip y deflate
La página Web que está abriendo contiene tanto elementos seguros como no seguros.
Cómo insertar un fichero .xml en un campo de tipo XML de SQL server 2005 o 2008


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ón

msg.Fields.Add(

"http://schemas.microsoft.com/cdo/configuration/smtpauthenticate", "1");

// Nombre de usuario

msg.Fields.Add(
"http://schemas.microsoft.com/cdo/configuration/sendusername", "user");

// Contraseña

msg.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 

 


 Versión para imprimir  Foros de consulta

 
=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
Autor:

Título:


Para preguntar utiliza los foros.



 Versión para imprimir

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.




02/02/2010 iPad vs Telesketch
Visitas: 274 | Comentarios: 0 | Archivo: Articulos
Categorias: Humor
Visitas: 175 | Comentarios: 2 | Archivo: Articulos
Visitas: 2581 | Comentarios: 2 | Archivo: Articulos
Categorias: C#
Visitas: 13523 | Comentarios: 7 | Archivo: Articulos
Categorias: C#|Seguridad
Visitas: 1097 | Comentarios: 3 | Archivo: Articulos
Visitas: 575 | Comentarios: 2 | Archivo: Articulos
Visitas: 312 | Comentarios: 0 | Archivo: Articulos
Visitas: 1502 | Comentarios: 2 | Archivo: Articulos
Categorias: C#
Visitas: 1073 | Comentarios: 0 | Archivo: Articulos

Útimos temas recibidos en los foros ...
WebControls en ASP .NET por Novato ... [ASP.NET] 88 06/05/2006
certuficado de afiliacion a porvenir por ede ... [Actualidad] 1 05/02/2010
certificado de afiliación de pensiones y cesantias por secre ... [Actualidad] 22 28/01/2010
como instalar visual basic 6.0 por sharon ... [WIN 98/NT/2000/XP] 8 21/04/2009
consulta en oracle por pariona ... [ORACLE] 0 08/02/2010
Es posible que me envien un certificado de pensiones por Nidia ... [Actualidad] 0 08/02/2010
necesito saber mi código de autogenerado ESSALUD por hermes ... [Visual Basic .NET] 17 01/10/2009
certificado de penciones horizonte por jhon freyder luna lopez ... [Actualidad] 1 05/02/2010
Solicitud de certificado por Proyelco ... [Actualidad] 0 08/02/2010
quiero saber en que entidad estoy afiliada a cesantias y pensiones por adriana ... [WIN 98/NT/2000/XP] 9 28/11/2009
certficado de pension por dannyjsb ... [Actualidad] 0 08/02/2010
Cual es el procedimiento para proteger Procedimientos almacenados y tablas por Mabe ... [SQL Server] 0 08/02/2010

Access CGI JSP ORACLE UNIX
Actualidad HTML/DHTML/XHTML LINUX PHP Visual Basic .NET
ASP ISAPI MS DOS Power Builder Visual Basic 6.0
ASP.NET Java mySQL SQL WIN 98/NT/2000/XP
C# JavaScript Opinion SQL Server

devjoker  Te recomendamos además ...
05/07/2007 Consultar datos en Transact SQL    forma parte de...Tutorial de Transact SQL
24/07/2006 SQL Dinamico    forma parte de...Tutorial PL/SQL
22/10/2005 Componentes del lenguaje SQL    forma parte de...Tutorial SQL
27/08/2007 Enviar email con C#
23/05/2006 Cursores en PL/SQL    forma parte de...Tutorial PL/SQL
21/07/2006 Funciones integradas de PL/SQL    forma parte de...Tutorial PL/SQL
25/08/2007 Variables en Transact SQL    forma parte de...Tutorial de Transact SQL
26/07/2006 Secuencias    forma parte de...Tutorial PL/SQL
24/05/2007 Tipos de datos en Transact SQL    forma parte de...Tutorial de Transact SQL
12/01/2006 Introducción a PLSQL    forma parte de...Tutorial PL/SQL

 

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.

Encuesta
¿A que perfil te adaptas mejor?




[Ver] [Votar]