InicioArticulos y noticiasBases de datosProgramaciónForosInternetServiciosContratacionEmail
También puedes ver ...
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
Comparativa de sentencias VB.Net vs C#
Aprende Ajax desde cero
Creando cadenas de conexión ConnectionStrings en .net 3.5 o visual Studio 2008 usando SqlConnectionStringBuilder
Migración de WSE a WCF (Web Services de 2005 a 2008)

Afiliados
La Web del programador
MundoProgramacion


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


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: 14637 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: 201 | Comentarios: 0 | Archivo: Articulos
Categorias: C#
Visitas: 315 | Comentarios: 1 | Archivo: Articulos
Visitas: 390 | Comentarios: 1 | Archivo: Articulos
Categorias: Humor
Visitas: 615 | Comentarios: 3 | Archivo: Articulos
Categorias: C#|ASP.NET
Visitas: 1177 | Comentarios: 4 | Archivo: Articulos
Visitas: 697 | Comentarios: 1 | Archivo: Articulos
Categorias: ASP.NET|ASP|Windows XP|Windows 2003
Visitas: 828 | Comentarios: 2 | Archivo: Articulos
Categorias: Java|Solaris
Visitas: 584 | Comentarios: 0 | Archivo: Articulos
Visitas: 1484 | Comentarios: 1 | Archivo: Articulos
Categorias: ADO.NET
Visitas: 1533 | Comentarios: 3 | Archivo: Articulos
Categorias: ASP.NET

Útimos temas recibidos en los foros ...
Manual Visual Studio.NET por Shiko ... [Visual Basic .NET] 34 26/10/2006
llamar procedimientos de pl/sql en java por jhon ... [ORACLE] 0 03/07/2009
consulta multitablas por anga ... [mySQL] 0 03/07/2009
objetos helper php bajo oracle por objetos_helper_oracle ... [ISAPI] 0 02/07/2009
ranuras isa o pci por sara ... [Access] 5 30/03/2006
descargar tutorial C# por afmp ... [C#] 54 14/10/2008
Tutorial TOAD para Oracle en Español por ijpj ... [ORACLE] 19 14/03/2009
quiero mi numero de mi autogenerado por pablo ... [Visual Basic .NET] 1 15/06/2009
Ayuda con cargar fotografias de otra pc por Alex ... [ASP.NET] 0 01/07/2009
splash screen por zelca ... [Visual Basic .NET] 0 01/07/2009
Error de inicio de aplicación por Danrre ... [C#] 0 30/06/2009
sumar los precios de la columna "precio" del grig por jardinderosas ... [C#] 7 01/11/2007

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 ...
14/01/2008 Novedades Visual Studio 2008 DataSet en 3 capas o MVC
12/06/2007 Estructuras de control en Transact SQL    forma parte de...Tutorial de Transact SQL
01/06/2006 Cursores de actualización en PL/SQL    forma parte de...Tutorial PL/SQL
01/01/2006 Borrado de datos. DELETE    forma parte de...Tutorial SQL
13/04/2008 Métodos Extensores: INNER JOIN    forma parte de...Linq y Métodos extensores
28/06/2006 Excepciones en PL/SQL    forma parte de...Tutorial PL/SQL
03/10/2006 Herencia y métodos virtuales    forma parte de...Tutorial C#
14/07/2007 Como encriptar texto y variables usando algoritmos estandard como DES o TRIPLEDES
03/10/2006 Creación de objetos    forma parte de...Tutorial C#
03/10/2006 Definición de clases    forma parte de...Tutorial C#

 

Encuesta
¿A que perfil te adaptas mejor?
[Ver] [Votar]