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 ?

-1voto

DeveloperX Points 86

Après avoir tourné option moins sûre sur et en essayant d'autres solutions, si vous rencontrez toujours le même problème, essayez d'utiliser cette surcharge :

client.Credentials = new NetworkCredential("mymailid", "mypassword");

au lieu de :

client.Credentials = new NetworkCredential("mymailid", "mypassword", "smtp.gmail.com");

-1voto

J'ai également été confronté au problème suivant Le serveur SMTP nécessite une connexion sécurisée ou le client n'a pas été authentifié. La réponse du serveur était : 5.5.0 Authentification requise". Puis j'ai parcouru beaucoup de documents sur Internet, mais cela ne m'a pas aidé complètement. Comment je l'ai résolu

Etape 1 : smtp.gmail.com est le serveur de gmail, donc allez dans les paramètres de votre compte gmail->cliquez sur voir tous les paramètres->Renvoi et IMAP/POP->vérifiez que pop et imap sont activés, sinon activez-les->Enregistrez les modifications. étape 2 - cliquez sur votre photo de profil gmail->cliquez sur Gérer votre compte google->aller sur l'onglet sécurité->cocher Accès aux applications moins sécurisées (cette option sera disponible si vous n'avez pas opté pour la vérification en deux étapes)->par défaut, google la configure comme désactivée, activez-la pour utiliser votre vrai mot de passe gmail pour envoyer des e-mails. note:-L'activation de l'accès à gmail pour les applications moins sécurisées, peut être dangereux pour vous, donc je ne le recommande pas.

étape 3 : si la vérification en deux étapes est activée sur votre compte ou si vous souhaitez utiliser un mot de passe autre que le mot de passe réel de votre gmail en utilisant un mot de passe spécifique à l'application, procédez comme suit . cliquez sur votre photo de profil gmail->cliquez sur Gérer votre compte google->allez dans l'onglet sécurité->recherchez APP PASSWORD->sélectionnez n'importe quel nom d'application donné->sélectionnez n'importe quel nom d'appareil->cliquez sur générer->copiez le mot de passe à 16 chiffres et collez-le dans votre application où vous devez entrer un mot de passe gmail à la place de votre vrai mot de passe gmail.

-1voto

Gadiyevich Points 31

Essayez de cette façon et sans oublier d'activer Des applications moins sûres en cliquant ici lien

        var fromEmail = new MailAddress("your@gmail.com", "Title");
        var toEmail = new MailAddress(emailID);
        var fromEmailPassword = "yourPassword"; 

        var smtp = new SmtpClient
        {
            Host = "smtp.gmail.com",
            Port = 587,
            EnableSsl = true,
            DeliveryMethod = SmtpDeliveryMethod.Network,
            UseDefaultCredentials = false,
            Credentials = new NetworkCredential(fromEmail.Address, fromEmailPassword)
        };
            using (var message = new MailMessage(fromEmail, toEmail)
            {
                Subject = subject,
                Body = body,
                IsBodyHtml = true
            })

                smtp.Send(message);

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