2013-10-03 1 views
0

Ici, je suis dans une situation étrange. Lorsque j'envoie l'e-mail de localhost il fonctionne bien, mais quand je télécharge la page au serveur et essayer d'envoyer des courriels, je reçois l'erreur suivanteImpossible d'envoyer des e-mails depuis mon site Web

Le serveur SMTP nécessite une connexion sécurisée ou le client n'a pas été authentifié . La réponse du serveur était la suivante: 5.5.1 Authentification requise

Je suis l'affichage du message d'erreur dans une étiquette à des fins de test et l'essai est également égaré Je sais, je vais le définir plus tard.

le code J'utilise est

if (Page.IsValid) 
    { 
try 
      { 
      StringBuilder message = new StringBuilder(); 
      message.Append("Hello My Name is "); 
      message.Append(txtName.Text); 
      message.AppendLine(); 
      message.AppendLine("My Contact Number " + txtContactNumber.Text.ToString()); 
      message.AppendLine(); 
      message.AppendLine(); 
      message.AppendLine("My Email Id Is " + txtFromEmailAddress.Text.ToString()); 
      message.AppendLine(); 
      message.Append(txtEmailBody.Text); 


     MailMessage mailMessage = new MailMessage("[email protected]", "[email protected]"); 
     mailMessage.Subject = "New Client Query"; 
     mailMessage.Body = message.ToString(); 

     SmtpClient smtpClient = new SmtpClient("smtp.gmail.com", 25); 
     //smtpClient.UseDefaultCredentials = true; 
     smtpClient.Credentials = new System.Net.NetworkCredential() 
     { 
      UserName = "[email protected]", 
      Password = "password" 
     }; 
     smtpClient.EnableSsl = true; 

      smtpClient.Send(mailMessage); 


     txtContactNumber.Text = ""; 
     txtFromEmailAddress.Text = ""; 
     txtName.Text = ""; 
     txtEmailBody.Text = ""; 
     lblEmailStatus.Text = "Email Sent Successfully."; 
     lblEmailStatus.ForeColor = System.Drawing.Color.Yellow; 
     } 
     catch(Exception ex) 
     { 
      lblEmailStatus.Text = ex.Message + " <br> " + ex.Source; 
     } 
    } 
    else 
    { 

     lblEmailStatus.Text = "Error! Email Not Sent "; 
     lblEmailStatus.ForeColor = System.Drawing.Color.Yellow; 
    } 

Je googled pendant quelques heures et vérifié les liens sur ce site ainsi, mais je ne peux pas encore la figure dehors.

Maintenant, je vous demande ici les gars si quelqu'un a des solutions/indice.

+0

essayer le code donné en réponse. –

Répondre

1

je suis la raison finalement.

L'e-mail que j'utilisais pour envoyer des e-mails était piraté quelques jours auparavant et pour des raisons de sécurité google team avait en quelque sorte marqué mon courrier électronique comme non sécurisé. J'ai changé l'adresse e-mail et ça marche bien, merci à tous.

0

Basé sur le Google Gmail Documentation il semblerait que le port devrait être 587 pas 25. J'ai trouvé quelques autres questions qui semblent être liées here et here.

SmtpClient smtpClient = new SmtpClient("smtp.gmail.com", 587); 
client.UseDefaultCredentials = false; 
+0

salut David Negron merci pour votre réponse. après avoir changé le port à 587 je reçois suivante. "Demande de l'autorisation de type" System.Net.Mail.SmtpPermission, Système, Version = 4.0.0.0, Culture = neutre, PublicKeyToken = b77a5c561934e089 "a échoué. – Constantine

1

Essayez cette

public string SendEmailTest(String EmailMessage, String FromMail, String MailPassword, String MailServer, String To, String CC, String BCC, String DisplayName, String Subject, String Attachment) 
    { 
     try 
     { 
      SmtpClient smtpClient = new SmtpClient(); 

      MailMessage message = new MailMessage(); 

      MailAddress fromAddress; 

      fromAddress = new MailAddress(FromMail); 

      smtpClient.Host = MailServer; 
      smtpClient.Port = 25; 

      System.Net.NetworkCredential SMTPUserInfo = new System.Net.NetworkCredential(FromMail, MailPassword); 
      smtpClient.UseDefaultCredentials = false; 
      smtpClient.Credentials = SMTPUserInfo; 

      message.From = fromAddress; 

      message.To.Add(new MailAddress(To, DisplayName)); 
      if (CC != "") 
       message.CC.Add(new MailAddress(CC, DisplayName)); 
      if (BCC != "") 
       message.Bcc.Add(new MailAddress(BCC, DisplayName)); 

      message.Subject = Subject; 

      message.IsBodyHtml = true; 
      message.Body = EmailMessage; 

      if (Attachment != "") 
       message.Attachments.Add(new Attachment(Attachment)); 

      message.Priority = MailPriority.High; 

      smtpClient.Send(message); 
      return "SendEmail"; 
     } 
     catch (Exception ex) 
     { 
      return "Email :" + ex; 
     } 

    } 
Questions connexes