CLR: .Net / Mono / Boo / Otros CLR > ASP .NET

 Enviar E-mail

(1/1)

Burn^_^:
Hola,

Estoy intentando enviar un e-mail segun los pasos que salen en MSDN2 y me sale el siguiente error.


--- Código: Text ---El servidor rechazó la dirección del remitente. Respuesta del servidor: 530 5.7.0 Must issue a STARTTLS command first y24sm20054240nfb 
¿Alguien sabe como arreglar esto?

Tengo el siguiente codigo en C#


--- Código: Text --- using System.Web.Mail;......... protected void darAlta_Click(object sender, EventArgs e)    {      if (...)        {...}        else        {           MailMessage Correo = new MailMessage();                        Correo.From = "xxx.gmail.com";           Correo.To = "xxx.hotmail.com";           Correo.Subject = "xxxxxxxxxxx";           Correo.Body = "xxx" + variable.Text;            Correo.BodyFormat = MailFormat.Text;           Correo.Priority = MailPriority.Normal;             SmtpMail.SmtpServer = "smtp.gmail.com";                        SmtpMail.Send(Correo);         }    }  
Si alguien me pudiese decir en que estoy fallando estaría muy agradecido.

Gracias de antemano.

hellscream:
El error lo indica todo, gmail utiliza SSL como mecanismo de autenticación, simplemente  asigna la propiedad EnableSsl de tu objeto de tipo SmtpClient

Burn^_^:
He modificado el codigo y me sale el siguiente error...


--- Código: Text --- Client does not have permission to submit mail to this server. The server response was: TLS not available due to temporary reason   
El código lo he modificado y queda así:



--- Código: Text --- using System.Net.Mail;.........protected void darAlta_Click(object sender, EventArgs e)   {     if (...)       {...}       else       {          MailMessage Correo = new MailMessage();                      Correo.From = new MailAddress("xxx.gmail.com");          Correo.To.Add("xxx.hotmail.com");          Correo.Subject = "xxxxxxxxxxx";          Correo.IsBodyHtml = true;          Correo.Body = "xxx" + variable.Text;          Correo.Priority = MailPriority.Normal;           SmtpClient smtp = new SmtpClient("smtp.gmail.com");          smtp.EnableSsl = true;          smtp.UseDefeaultCredentials = false;     smtp.Credentials = new System.Net.NetworkCredential("xx@gmail.com","xx");           smtp.Send(Correo);                          }   }  
¿Alguna idea?

Gracias de antemano

Burn^_^:
Bueno, problema solucionado, por si alguien tiene el mismo problema ahora pongo el codigo.

El problema básicamente residia en el norton internet security que bloqueaba el puerto y un par de librerias que creo me faltaban.

Aquí el código:


--- Código: Text --- using System.Net;using System.Net.Mail;using System.Net.Mime;.........protected void darAlta_Click(object sender, EventArgs e)  {    if (...)      {...}      else      {         MailMessage Correo = new MailMessage();                    Correo.From = new MailAddress("xxx.gmail.com");         Correo.To.Add("xxx.hotmail.com");         Correo.Subject = "xxxxxxxxxxx";         Correo.IsBodyHtml = true;         Correo.Body = "xxx" + variable.Text;         Correo.Priority = MailPriority.Normal;          SmtpClient smtp = new SmtpClient();        [B] smtp.Port = 587;[/B]         smtp.Host = "smtp.gmail.com"&#59;        smtp.EnableSsl = true;         smtp.UseDefeaultCredentials = false;    smtp.Credentials = new System.Net.NetworkCredential("xx@gmail.com","xx");          smtp.Send(Correo);                         }  }  
Saludos y hasta otra.

romaedu200:
El problema que tienes es que estas usando Credentials

Tienes que habilitar el uso de SSL y desahabilitar Credentials de la siguiente manera :

smtpClient.UseDefaultCredentials = false;
smtpClient.Host = server;
smtpClient.Port = port;
smtpClient.EnableSsl = true;
smtpClient.DeliveryMethod = SmtpDeliveryMethod.Network;
smtpClient.Credentials = new NetworkCredential(user, password);

En mi caso todo esto es configurado automaticamente en el Web Config.

Pero con esto deberias solucionarlo.

Atte, Eduardo Mass

Navegación

[0] Índice de Mensajes

Ir a la versión completa