Foros del Web » Programación para mayores de 30 ;) » .NET »

Enviar E-mail C#

Estas en el tema de Enviar E-mail C# en el foro de .NET en Foros del Web. Hola, tengo un pequeño problema para enviar email desde mi ordenador, tengo este codigo para enviar email: try { MailMessage oMsg = new MailMessage(); oMsg.From ...
  #1 (permalink)  
Antiguo 18/06/2008, 03:51
 
Fecha de Ingreso: febrero-2008
Mensajes: 69
Antigüedad: 16 años, 2 meses
Puntos: 0
Busqueda Enviar E-mail C#

Hola, tengo un pequeño problema para enviar email desde mi ordenador,

tengo este codigo para enviar email:

try
{
MailMessage oMsg = new MailMessage();

oMsg.From = new MailAddress("[email protected]");
// TODO: Replace with recipient e-mail address.
oMsg.To.Add("[email protected]");
oMsg.Subject = "E-mail de prueba";

// SEND IN HTML FORMAT (comment this line to send plain text).
oMsg.IsBodyHtml = true;

// HTML Body (remove HTML tags for plain text).
oMsg.Body = "<HTML><BODY><B>Se envia bien</B></BODY></HTML>";

// ADD AN ATTACHMENT.
// TODO: Replace with path to attachment.
String sFile = @"C:\ruta\correspondencia.doc";
Attachment oAttch = new Attachment(sFile);

oMsg.Attachments.Add(oAttch);

// TODO: Replace with the name of your remote SMTP server.
SmtpClient cliente = new SmtpClient();

cliente.Host = "smtp.gmail.com";
cliente.Credentials = new System.Net.NetworkCredential("[email protected]", "micontraseña");
cliente.Send(oMsg);

oMsg = null;
oAttch = null;
}
catch (Exception error)
{
MessageBox.Show(error.Message, "Error");
}

y siempre me da error, lo que me preocupa es que en mi maquina me da un error distinto a las demas maquinas, y me dice que ' No es posible conectar con el servidor remoto'.

supongo que sera un tema de permisos o de firewall o algo asi, pero no consigo arreglarlo...

¿Alguien me puede hechar una mano?
  #2 (permalink)  
Antiguo 18/06/2008, 06:57
Avatar de Peterpay
Colaborador
 
Fecha de Ingreso: septiembre-2007
Ubicación: San Francisco, United States
Mensajes: 3.858
Antigüedad: 16 años, 8 meses
Puntos: 87
Respuesta: Enviar E-mail C#

te falta definir el puerto del smtp de gmail.

465
o
587
__________________
Curso WF4
http://cursos.gurudotnet.com/ DF
Aprende HTML5
  #3 (permalink)  
Antiguo 18/06/2008, 09:39
 
Fecha de Ingreso: febrero-2008
Mensajes: 69
Antigüedad: 16 años, 2 meses
Puntos: 0
Respuesta: Enviar E-mail C#

Gracias, con eso parece que empieza a funcionar, pero ahora siempre me da error por que supera el tiempo maximo de espera, he aumentado el tiempo pero me sigue dando error, he eliminado el archivo adjunto que tenia puesto por si tardaba mucho en subirlo pero sigue igual, y eso que el email no tiene mucho contenido...
  #4 (permalink)  
Antiguo 18/06/2008, 09:48
Avatar de Peterpay
Colaborador
 
Fecha de Ingreso: septiembre-2007
Ubicación: San Francisco, United States
Mensajes: 3.858
Antigüedad: 16 años, 8 meses
Puntos: 87
Respuesta: Enviar E-mail C#

es una aplicacion windows o web?
__________________
Curso WF4
http://cursos.gurudotnet.com/ DF
Aprende HTML5
  #5 (permalink)  
Antiguo 18/06/2008, 10:04
Avatar de erick_arcini  
Fecha de Ingreso: julio-2005
Ubicación: Jaltenco / DF
Mensajes: 1.723
Antigüedad: 18 años, 9 meses
Puntos: 50
Respuesta: Enviar E-mail C#

Hola, el error que te manda es por que estas intentando mandar un mail con una dirección de hotmail con un servidor SMTP de gmail.

en esta linea:

oMsg.From = new MailAddress("[email protected]");

tendrías que colocar la misma que la de tus credenciales:

cliente.Credentials = new System.Net.NetworkCredential("[email protected]", "micontraseña");

PD Peterpay, una aplicación de envio de mensajes funciona igual en una aplicación windows y una aplicación web.
__________________
Mejoremos nuestro país, ayudemos al planeta... próximamente.
  #6 (permalink)  
Antiguo 18/06/2008, 11:18
 
Fecha de Ingreso: febrero-2008
Mensajes: 69
Antigüedad: 16 años, 2 meses
Puntos: 0
Respuesta: Enviar E-mail C#

De nuevo, gracias por contestar,

PeterPay, es una aplicacion windows,
y erick_arcini, ya he probado lo que me has indicado pero me sigue pasando lo mismo...
  #7 (permalink)  
Antiguo 18/06/2008, 11:25
Avatar de Peterpay
Colaborador
 
Fecha de Ingreso: septiembre-2007
Ubicación: San Francisco, United States
Mensajes: 3.858
Antigüedad: 16 años, 8 meses
Puntos: 87
Respuesta: Enviar E-mail C#

Cita:
Iniciado por erick_arcini Ver Mensaje
Hola, el error que te manda es por que estas intentando mandar un mail con una dirección de hotmail con un servidor SMTP de gmail.

en esta linea:

oMsg.From = new MailAddress("[email protected]");

tendrías que colocar la misma que la de tus credenciales:

cliente.Credentials = new System.Net.NetworkCredential("[email protected]", "micontraseña");

PD Peterpay, una aplicación de envio de mensajes funciona igual en una aplicación windows y una aplicación web.

erick funcionan igual pero errores de timeout son diferentes.

si es timeout del envio o es timeout del server en el request en el caso de web.
__________________
Curso WF4
http://cursos.gurudotnet.com/ DF
Aprende HTML5
  #8 (permalink)  
Antiguo 18/06/2008, 12:32
Avatar de erick_arcini  
Fecha de Ingreso: julio-2005
Ubicación: Jaltenco / DF
Mensajes: 1.723
Antigüedad: 18 años, 9 meses
Puntos: 50
Respuesta: Enviar E-mail C#

Cita:
Iniciado por Peterpay Ver Mensaje
erick funcionan igual pero errores de timeout son diferentes.

si es timeout del envio o es timeout del server en el request en el caso de web.
Tienes toda la razón.

Altear... mmm, pues, ya probaste establecer el secure socket layer en true ?

Código:
cliente.EnableSsl = True;
__________________
Mejoremos nuestro país, ayudemos al planeta... próximamente.
  #9 (permalink)  
Antiguo 18/06/2008, 12:59
 
Fecha de Ingreso: enero-2008
Mensajes: 233
Antigüedad: 16 años, 3 meses
Puntos: 2
Respuesta: Enviar E-mail C#

Hola andaba buscando algo parecido a este tema

pero lo que quiero yo es mandar un mail desde una aplicacion de windows se puede mandar??

si alguien tuviese un ejemplo se lo agradeceria muchisimo :D
  #10 (permalink)  
Antiguo 18/06/2008, 13:10
Avatar de Peterpay
Colaborador
 
Fecha de Ingreso: septiembre-2007
Ubicación: San Francisco, United States
Mensajes: 3.858
Antigüedad: 16 años, 8 meses
Puntos: 87
Respuesta: Enviar E-mail C#

si no hay limite, como dice erick no cambia entre windows, o web el mismo codigo funciona en ambos solo hay q tener en cuenta la configuracion de tu servidor de correo.
__________________
Curso WF4
http://cursos.gurudotnet.com/ DF
Aprende HTML5
  #11 (permalink)  
Antiguo 19/06/2008, 01:15
 
Fecha de Ingreso: febrero-2008
Mensajes: 69
Antigüedad: 16 años, 2 meses
Puntos: 0
Respuesta: Enviar E-mail C#

Acabo de probar poniendo EnableSsl = true; y no ha cambiado nada, me sigue dando el mismo error...


pablokes, el codigo que he puesto al principio es de una aplicacion en windows, aunque como han dicho antes, es el mismo codigo tambien para una aplicacion web
  #12 (permalink)  
Antiguo 19/06/2008, 08:21
Avatar de erick_arcini  
Fecha de Ingreso: julio-2005
Ubicación: Jaltenco / DF
Mensajes: 1.723
Antigüedad: 18 años, 9 meses
Puntos: 50
Respuesta: Enviar E-mail C#

No entiendo por que no te esta funcionando, te dejo el siguiente código para que lo pegues y me cuentes si te funciona o no.

Código:
try
            {
                MailAddress de = new MailAddress("ELCORREO + gmail.com", "Latin ID S. A. de C. V.");
                MailAddress para = new MailAddress("earciniega" + (char)64 + "latinid.com.mx", "marketing latin ID");
                MailMessage mensaje = new MailMessage(de, para);
               // mensaje.Bcc.Add(txtEmail.Text);
                mensaje.Subject = "Bienvenido al grupo de distribuidores de Latin ID - prueba";
                mensaje.BodyEncoding = System.Text.Encoding.Default;
                mensaje.IsBodyHtml = false;
                mensaje.Body = "<p>Pon tu mensaje aquí, por ejemplo: \'Cómo carajos que no llega mi email\'</p>";
                mensaje.IsBodyHtml = true;
                SmtpClient cliente = new SmtpClient("smtp.gmail.com");
                cliente.Port = 587;
                cliente.Credentials = new System.Net.NetworkCredential("[email protected]", "cualquiercosa");
                cliente.EnableSsl = true;

                cliente.Send(mensaje);
               // procesado = true;
            }
            catch (Exception ex)
            {
              //  lblError.Text = ex.Message;

            }

Pruebalo así como va, incluido la parte de el objeto "para" con ese correo ya que es uno personal, yo te aviso si me llego el correo o no.
__________________
Mejoremos nuestro país, ayudemos al planeta... próximamente.

Última edición por erick_arcini; 12/08/2008 a las 12:45
  #13 (permalink)  
Antiguo 19/06/2008, 12:00
Avatar de erick_arcini  
Fecha de Ingreso: julio-2005
Ubicación: Jaltenco / DF
Mensajes: 1.723
Antigüedad: 18 años, 9 meses
Puntos: 50
Respuesta: Enviar E-mail C#

Acabo de recibir el email del código que tienes arriba:

__________________
Mejoremos nuestro país, ayudemos al planeta... próximamente.
  #14 (permalink)  
Antiguo 19/06/2008, 13:19
 
Fecha de Ingreso: enero-2008
Mensajes: 233
Antigüedad: 16 años, 3 meses
Puntos: 2
Respuesta: Enviar E-mail C#

y como se pueden adjuntar archivos?? :D
  #15 (permalink)  
Antiguo 19/06/2008, 13:22
Avatar de Peterpay
Colaborador
 
Fecha de Ingreso: septiembre-2007
Ubicación: San Francisco, United States
Mensajes: 3.858
Antigüedad: 16 años, 8 meses
Puntos: 87
Respuesta: Enviar E-mail C#

El objeto MailMessage tiene una propiedad q es un objeto q es attachment al q puedes agregar simplemente haciendo.


MailMessage mensaje = new MailMessage();
mensaje.Attachments.Add(new Attachment(ruta));
__________________
Curso WF4
http://cursos.gurudotnet.com/ DF
Aprende HTML5
  #16 (permalink)  
Antiguo 19/06/2008, 13:23
 
Fecha de Ingreso: febrero-2008
Mensajes: 69
Antigüedad: 16 años, 2 meses
Puntos: 0
Respuesta: Enviar E-mail C#

Muchas gracias por vuestra ayuda, llevaba tiempo volviendme loco con este fallo xD
  #17 (permalink)  
Antiguo 19/06/2008, 13:28
Avatar de Peterpay
Colaborador
 
Fecha de Ingreso: septiembre-2007
Ubicación: San Francisco, United States
Mensajes: 3.858
Antigüedad: 16 años, 8 meses
Puntos: 87
Respuesta: Enviar E-mail C#

puede ser o una q la direccion ala q envias nno existe o el servidor de correo no se puede acceder o tienes un firewall.
__________________
Curso WF4
http://cursos.gurudotnet.com/ DF
Aprende HTML5
  #18 (permalink)  
Antiguo 19/06/2008, 13:33
 
Fecha de Ingreso: enero-2008
Mensajes: 233
Antigüedad: 16 años, 3 meses
Puntos: 2
Respuesta: Enviar E-mail C#

String sFile = @"C:\a.doc";
Attachment oAttch = new Attachment(sFile);

mensaje.Attachments.Add(oAttch);


muchisimas Gracias :D!
  #19 (permalink)  
Antiguo 19/06/2008, 13:37
 
Fecha de Ingreso: enero-2008
Mensajes: 233
Antigüedad: 16 años, 3 meses
Puntos: 2
Respuesta: Enviar E-mail C#

tengo una duda amigos ;P

SmtpClient cliente = new SmtpClient(""); --> este es el servidor de salida de mi servidor de correo cierto?

cliente.Port = 587; ---> este el puerto de ?

cliente.EnableSsl = true; --> para que sirve :D!?
  #20 (permalink)  
Antiguo 19/06/2008, 14:14
Avatar de Peterpay
Colaborador
 
Fecha de Ingreso: septiembre-2007
Ubicación: San Francisco, United States
Mensajes: 3.858
Antigüedad: 16 años, 8 meses
Puntos: 87
Respuesta: Enviar E-mail C#

el puerto por el cual el servidor te da salida de correo , por default creo q es 25.

y el enablessl es por si tu conexion con tu servidor de correo exige una conexion segura.
__________________
Curso WF4
http://cursos.gurudotnet.com/ DF
Aprende HTML5
  #21 (permalink)  
Antiguo 19/06/2008, 14:18
 
Fecha de Ingreso: enero-2008
Mensajes: 233
Antigüedad: 16 años, 3 meses
Puntos: 2
Respuesta: Enviar E-mail C#

muchas gracias peterpay =D! ya arregle el problemita ;D!
  #22 (permalink)  
Antiguo 24/06/2008, 10:57
 
Fecha de Ingreso: febrero-2008
Mensajes: 69
Antigüedad: 16 años, 2 meses
Puntos: 0
Respuesta: Enviar E-mail C#

Ahora tengo un par de dudillas mas, si me podeis ayudar os lo agradeceria

Este programa solo me valdria para cuentas de gmail, si quisiese usar hotmail o yahoo, ¿solo tendria que cambiar el servidor smtp? es que he buscado en google en cada sitio que veo me dicen una cosa distinta y ninguna me funciona...


¿y habria alguna manera de recibir un mail desde el programa? es decir, ver la bandeja de entrada de mi correo,

he visto algunos eventos que te avisan de cuando entra un correo nuevo en outlook,
pero estoy a las mismas que antes, que no me acabo de aclarar...


muchas gracias por adelantado
  #23 (permalink)  
Antiguo 24/06/2008, 11:00
Avatar de Peterpay
Colaborador
 
Fecha de Ingreso: septiembre-2007
Ubicación: San Francisco, United States
Mensajes: 3.858
Antigüedad: 16 años, 8 meses
Puntos: 87
Respuesta: Enviar E-mail C#

si hay forma de recibir configurando un cliente pop para descargar los mails. y si te puede funcionar el codigo anterior coon yahoo y hotmail pero creo q son servicios de pago ambos para el soporte de pop3 y smpt.
__________________
Curso WF4
http://cursos.gurudotnet.com/ DF
Aprende HTML5
  #24 (permalink)  
Antiguo 01/05/2009, 15:16
 
Fecha de Ingreso: mayo-2009
Mensajes: 2
Antigüedad: 15 años
Puntos: 0
Respuesta: Enviar E-mail C#

hola estoy usando este codigo.... pero no me funciona... alguien podria ayudarme.. estoy trabajando en una aplicacion web de c# 08 y framerwork 3.5...

protected void Button1_Click(object sender, EventArgs e)
{
try
{
MailAddress de = new MailAddress("ferafera28 + gmail.com", "Latin ID S. A. de C. V.");
MailAddress para = new MailAddress("ferafera28" + (char)64 + "gmail.com", "marketing latin ID");
System.Net.Mail.MailMessage mensaje = new System.Net.Mail.MailMessage(de, para);
// mensaje.Bcc.Add(txtEmail.Text);
mensaje.Subject = "Bienvenido al grupo de distribuidores de Latin ID - prueba";
mensaje.BodyEncoding = System.Text.Encoding.Default;
mensaje.IsBodyHtml = false;
mensaje.Body = "<p>Pon tu mensaje aquí, por ejemplo: \'Cómo carajos que no llega mi email\'</p>";
mensaje.IsBodyHtml = true;
SmtpClient cliente = new SmtpClient("smtp.gmail.com");
cliente.Port = 587;
cliente.Credentials = new System.Net.NetworkCredential("[email protected] ", "cualquiercosa");
cliente.EnableSsl = true;

cliente.Send(mensaje);
// procesado = true;
}
catch (Exception ex)
{
// lblError.Text = ex.Message;

}
...

NO envia nada.... no hace nada.... :s
  #25 (permalink)  
Antiguo 01/05/2009, 20:03
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: Enviar E-mail C#

Hola, eelii. Bienvenido al foro.

Este tema es de hace 1 año, es conveniente que abras un nuevo tema con tu pregunta, así podrán ayudarte mejor.

Saludos.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Tema Cerrado

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 08:05.