InicioArticulos y noticiasBases de datosProgramaciónForosInternetServiciosContratacionEmail
También puedes ver ...
LinQ To SQL - Un ejemplo sencillo
Cómo activar Intelisense (autocompletado) en el Web.config
Leer un campo XML de SQL Server 2005 con C#
TripleDES - Un ejemplo practico en C#
Mostrar un GridView dentro de un DataList
String.Format
Métodos Extensores: INNER JOIN
Problemas en la instalación de Visual Studio 2008-Visual studio web authoring component
Redimiento de VS2008
Insertar en una Tabla usando Linq2SQL (Linq To SQL)

Afiliados
La Web del programador
MundoProgramacion


 
 Versión para imprimir

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


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: 4991 Fecha de publicación: 27/08/2007
Pedro Herrarte, es consultor independiente, ofreciendo sercivios 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.



devjoker  Lo más nuevo ... Donde se habla ... 
01/07/2008 LinQ To SQL - Un ejemplo sencillo
11/06/2008 Problemas con el diseñador Web de Visual Studio 2008
03/06/2008 Formatear números en SQL Server
07/05/2008 Cómo activar Intelisense (autocompletado) en el Web.config
07/05/2008 Programas Open Source Alternativos
29/04/2008 Leer un campo XML de SQL Server 2005 con C#
22/04/2008 TripleDES - Un ejemplo practico en C#
21/04/2008 Ping
18/04/2008 Mostrar un GridView dentro de un DataList
13/04/2008 String.Format

Útimos temas recibidos en los foros ...
Problema de Proceso con el Timer en c# por BruneX ... [C#] 4 01/07/2008
Conectar ASP con B.D Informix por Franco ... [ASP] 11 02/05/2007
Store Procedure por Sistemas ... [ASP.NET] 7 28/05/2008
como insertar registros en un formulario de visual basic.net desde la base de datos sql server por orlan ... [SQL Server] 2 09/06/2008
problema sql por lourdes ... [SQL Server] 3 01/07/2008
PROBLEMAS CON CONEXION A ACCESS 2007 por daniel ... [Access] 2 19/05/2008
directorio activo y VB.NET por ZICK ... [Visual Basic .NET] 0 02/07/2008
Replica en Sql 2005 por Marcelino ... [SQL] 2 27/05/2008
tablas INDEX BY por Alberto ... [SQL] 0 02/07/2008
Convertir xls en csv por kayu ... [ORACLE] 3 17/06/2008
quiero mi numero de seguro social por margarita figueroa castro ... [Visual Basic .NET] 2 01/07/2008
Crystal Reports - Visual Studio 2005 por Broken ... [ASP.NET] 0 02/07/2008

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 ...
09/08/2007 Como mostrar el formato de fecha corta en un gridView
01/06/2006 Cursores de actualización en PL/SQL    forma parte de...Tutorial PL/SQL
22/10/2005 Insertar datos. INSERT    forma parte de...Tutorial SQL
16/04/2007 Mantener variables de Sesión y Aplicación de forma permanente en ASP.net
03/10/2006 Definición de clases    forma parte de...Tutorial C#
21/07/2006 Funciones integradas de PL/SQL    forma parte de...Tutorial PL/SQL
19/10/2005 Una clase sencilla para encriptar cadenas
02/09/2007 Procedimientos almacenados en Transact SQL    forma parte de...Tutorial de Transact SQL
14/01/2008 Novedades Visual Studio 2008 DataSet en 3 capas o MVC
01/01/2006 Borrado de datos. DELETE    forma parte de...Tutorial SQL

 

Encuesta
Si trabajas con .NET ¿Que entorno utilizas?
[Ver] [Votar]