166 votes

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

Je veux envoyer un email depuis mon application et j'ai écrit le code suivant pour envoyer un email

    MailMessage msg = new MailMessage();

    msg.From = new MailAddress("mymailid");
    msg.To.Add("receipientid");
    msg.Subject = "test";
    msg.Body = "Test Content";
    msg.Priority = MailPriority.High;

    SmtpClient client = new SmtpClient();

    client.Credentials = new NetworkCredential("mymailid", "mypassword", "smtp.gmail.com");
    client.Host = "smtp.gmail.com";
    client.Port = 587;
    client.DeliveryMethod = SmtpDeliveryMethod.Network;
    client.EnableSsl = true;
    client.UseDefaultCredentials = true;

    client.Send(msg);

Je l'exécute sur localhost donc quelle erreur je fais pour l'envoyer.

Quand j'envoie le bouton, il y a une erreur comme

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

Code dans le fichier Web.config

 <appSettings>
    <add key="webpages:Version" value="2.0.0.0" />
    <add key="webpages:Enabled" value="false" />
    <add key="PreserveLoginUrl" value="true" />
    <add key="ClientValidationEnabled" value="true" />
    <add key="UnobtrusiveJavaScriptEnabled" value="true" />   
    <add key="smtpServer" value="smtp.gmail.com" />
    <add key="EnableSsl" value = "true"/>
    <add key="smtpPort" value="587" />
    <add key="smtpUser" value="sender@gmail.com" />
    <add key="smtpPass" value="mypassword" />
    <add key="adminEmail" value="sender@gmail.com" />
  </appSettings>
  <system.net>
    <mailSettings>
      <smtp from="sender@gmail.com">
        <network host="smtp.gmail.com" password="mypassword" port="587" userName="sender@gmail.com"  enableSsl="true"/>
      </smtp>
    </mailSettings>
  </system.net>

que dois-je faire pour résoudre cette erreur et envoyer le courrier ?

13voto

meda Points 11955

Essayez comme ça, j'ai juste fait quelques changements légers :

MailMessage msg = new MailMessage();

msg.From = new MailAddress("mymailid@gmail.com");
msg.To.Add("receipientid@gmail.com");
msg.Subject = "test";
msg.Body = "Test Content";
//msg.Priority = MailPriority.High;

using (SmtpClient client = new SmtpClient())
{
    client.EnableSsl = true;
    client.UseDefaultCredentials = false;
    client.Credentials = new NetworkCredential("mymailid@gmail.com", "mypassword");
    client.Host = "smtp.gmail.com";
    client.Port = 587;
    client.DeliveryMethod = SmtpDeliveryMethod.Network;

    client.Send(msg);
}

Veuillez également montrer votre fichier app.config, si vous y avez des paramètres de messagerie.

13voto

Shuchita Bora Points 111

Essayez de vous connecter à votre compte gmail. Il se bloque si vous envoyez des emails en utilisant le SMTP de gmail. Je ne connais pas la limite d'emails que vous pouvez envoyer avant qu'il ne soit verrouillé mais si vous vous connectez une fois, il fonctionne à nouveau à partir du code. Vérifiez que les paramètres de votre webconfig sont corrects.

7voto

Behzad Qureshi Points 238

Activez l'application moins sécurisée à partir de cette page lien et boom...

6voto

RaviTeja V Points 144

Essayez de permettre un accès moins sécurisé aux applications.

Ici, vous pouvez activer l'application moins sécurisée après la connexion avec votre Gmail.

https://myaccount.google.com/lesssecureapps

Merci.

5voto

Soros Liu Points 51

J'ai rencontré le même problème même si j'ai mis "UseDefaultCredentials" sur false. Plus tard, j'ai découvert que la cause première était l'activation de la "vérification en deux étapes" dans mon compte. Après l'avoir désactivé, le problème a disparu.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X