Je souhaite envoyer un e-mail depuis mon application et j'ai écrit le code suivant pour l'envoi de mail
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 alors quelle erreur je fais pour l'envoyer.
Quand j'envoie le bouton, cela donne une erreur comme
Le serveur SMTP nécessite une connexion sécurisée ou le client n'a pas été authentifié. La réponse du serveur a été: 5.5.1 Authentification requise.
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="[email protected]" />
<add key="smtpPass" value="mypassword" />
<add key="adminEmail" value="[email protected]" />
</appSettings>
<system.net>
<mailSettings>
<smtp from="[email protected]">
<network host="smtp.gmail.com" password="mypassword" port="587" userName="[email protected]" enableSsl="true"/>
</smtp>
</mailSettings>
</system.net>
que dois-je faire pour résoudre cette erreur et envoyer du courrier ??
Réponses:
Vérifiez d'abord les problèmes de sécurité liés à Gmail. Vous avez peut-être activé la double authentification dans Gmail. Vérifiez également votre boîte de réception Gmail si vous recevez des alertes de sécurité. Dans de tels cas, vérifiez l'autre réponse de @mjb comme ci-dessous
Voici la chose très générale que je vérifie toujours en premier pour de tels problèmes
réglez-le sur false.
Notez la réponse de @Joe King - vous devez définir client.UseDefaultCredentials avant de définir client.
la source
J'ai le même problème.
J'ai trouvé cette solution:
Google peut bloquer les tentatives de connexion de certaines applications ou appareils qui n'utilisent pas les normes de sécurité modernes. Étant donné que ces applications et appareils sont plus faciles à pénétrer, leur blocage permet de sécuriser votre compte.
Voici quelques exemples d'applications qui ne prennent pas en charge les dernières normes de sécurité:
Par conséquent, vous devez activer la connexion moins sécurisée (ou l' accès aux applications moins sécurisé ) dans votre compte Google.
Après vous être connecté au compte Google, accédez à:
https://www.google.com/settings/security/lesssecureapps
ou
https://myaccount.google.com/lesssecureapps
En C #, vous pouvez utiliser le code suivant:
-------------------
Informations partagées par Michael Freidgeim dans la zone de commentaires ci-dessous:
Réponse similaire avec captures d'écran https://stackoverflow.com/a/32457468/52277
la source
Assurez-vous de régler
SmtpClient.Credentials
après avoir appeléSmtpClient.UseDefaultCredentials = false
.L'ordre est important car le paramètre
SmtpClient.UseDefaultCredentials = false
sera réinitialiséSmtpClient.Credentials
à null.la source
J'ai cherché et essayé différentes choses pendant des heures. Pour résumer, j'ai dû prendre en considération les points suivants:
smtp.gmail.com
place desmtp.google.com
client.UseDefaultCredentials = false;
avant de définir les informations d'identificationclient.EnableSsl = true;
Si ces étapes n'ont pas aidé, vérifiez cette réponse .
Vous pouvez peut-être trouver quelque chose d'utile sur cette FAQ System.Net.Mail .
la source
Essayez de vous connecter à votre compte Gmail. il se verrouille si vous envoyez des e-mails en utilisant gmail SMTP. Je ne connais pas la limite d'e-mails que vous pouvez envoyer avant qu'il ne soit verrouillé, mais si vous vous connectez une fois, cela fonctionne à nouveau à partir du code. assurez-vous que vos paramètres webconfig sont bons.
la source
Essayez-le de cette façon, je viens de faire quelques changements légers:
Veuillez également montrer votre fichier app.config, si vous y avez des paramètres de messagerie.
la source
essayez d'activer autoriser l'accès aux applications moins sécurisé.
Ici, vous pouvez activer une application moins sécurisée après la connexion avec votre Gmail.
https://myaccount.google.com/lesssecureapps
Merci.
la source
J'ai rencontré le même problème même si j'ai défini "UseDefaultCredentials" sur false. Plus tard, j'ai découvert que la cause principale était que j'avais activé la "vérification en deux étapes" dans mon compte. Après l'avoir éteint, le problème a disparu.
la source
Activez l'application moins sécurisée à partir de ce lien et boum ...
la source
Assurez-vous que l'accès à l'application moins sécurisée est autorisé.
la source
Voici mon code.J'ai également eu la même erreur, mais le problème était que j'ai mal donné mon mot de passe.Le code ci-dessous fonctionnera parfaitement ...
Vous pouvez le renvoyer dans Envoi de courrier
la source
S'il s'agit d'un nouveau compte Google, vous devez envoyer un e-mail (le premier) via l'interface utilisateur habituelle. Après cela, vous pouvez utiliser votre application / robot pour envoyer des messages.
la source
Vous devriez envisager de spécifier les données de configuration SMTP dans le fichier de configuration et de ne pas les écraser dans un code - voir les données de configuration SMTP à http://www.systemnetmail.com/faq/4.1.aspx
la source
J'ai rencontré le même problème plusieurs fois. Après avoir activé l'option d'application moins sécurisée, le problème a été résolu. Activez l'application moins sécurisée à partir d'ici: https://myaccount.google.com/lesssecureapps
espérons que cela aidera.
la source
Si vous êtes dans un environnement de test et que vous ne souhaitez pas définir de paramètres de sécurité, vous devez autoriser les applications moins sécurisées via. ce lien dans Gmail.
https://myaccount.google.com/lesssecureapps
la source
certains serveurs smtp (sécurisés) vous obligent à fournir à la fois un nom d'utilisateur et une adresse e-mail.Si son gmail, il y a de fortes chances que ce soit le problème de `` connexion moins sécurisée '' que vous devez résoudre, sinon vous pouvez essayer:
notez que l'e-mail de et le nom d'utilisateur sont différents contrairement à certaines implémentations qui les désignent comme identiques.
appeler cette méthode peut être fait comme ceci:
la source
Après avoir activé l'option moins sécurisée et essayé d'autres solutions, si vous rencontrez toujours le même problème, essayez d'utiliser cette surcharge:
au lieu de:
la source
J'ai créé un abonnement Microsoft 365 Developer (E5) aujourd'hui matin et l' ai utilisé pour envoyer un e-mail de test en utilisant les paramètres suivants
Cela n'a pas fonctionné au début, car je continuais à recevoir ce message d'erreur avec l'exception levée par ce code. Ensuite, j'ai passé environ 4 heures et plus à jouer avec les paramètres du centre d'administration Microsoft 365 et à lire des articles pour résoudre le problème. En fin de compte, j'ai changé le mot de passe de mon centre d'administration Microsoft 365 et cela a fonctionné comme un charme. Il vaut donc la peine d'essayer de changer le mot de passe lorsque vous recevez ce message, avant de penser à une solution avancée.
Notez que le mot de passe n'était pas invalide à coup sûr car je me suis connecté à mon compte Microsoft 365 sans aucun problème. cependant, le changement de mot de passe a résolu le problème.
la source
J'étais également confronté à un problème du type «Le serveur SMTP nécessite une connexion sécurisée ou le client n'a pas été authentifié. La réponse du serveur a été: 5.5.0 Authentification requise 'a ensuite parcouru tellement de documents Internet, mais cela ne m'a pas pleinement aidé. Comment je l'ai résolu comme
step1: smtp.gmail.com est un serveur gmail, alors accédez aux paramètres de votre compte gmail-> cliquez sur voir tous les paramètres-> Transfert et IMAP / POP-> vérifiez que pop et imap est activé, sinon activez-le-> Enregistrer les modifications. étape2-cliquez sur votre photo de profil gmail-> cliquez sur Gérer votre compte google-> allez dans l'onglet sécurité-> vérifiez l'accès aux applications moins sécurisées (cette option sera disponible si vous n'avez pas opter pour la vérification en deux étapes) -> par défaut google le définira comme désactivé, lui permettra d'utiliser votre vrai mot de passe gmail pour l'envoi d'e-mails. Remarque: -Activer l'accès gmail pour les applications moins sécurisées peut être dangereux pour vous, je ne le recommande donc pas
étape 3: -si votre compte a activé la vérification en deux étapes ou si vous souhaitez utiliser un mot de passe autre que votre mot de passe gmail réel en utilisant le mot de passe spécifique à l'application, essayez ceci: - cliquez sur votre photo de profil gmail-> cliquez sur Gérer votre compte google-> allez à la sécurité tab-> 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.
la source