J'utilise le code suivant pour envoyer un e-mail. Le code fonctionne correctement sur ma machine locale. Mais sur le serveur de production, je reçois le message d'erreur
var fromAddress = new MailAddress("[email protected]");
var fromPassword = "xxxxxx";
var toAddress = new MailAddress("[email protected]");
string subject = "subject";
string body = "body";
System.Net.Mail.SmtpClient smtp = new System.Net.Mail.SmtpClient
{
Host = "smtp.gmail.com",
Port = 587,
EnableSsl = true,
DeliveryMethod = System.Net.Mail.SmtpDeliveryMethod.Network,
UseDefaultCredentials = false,
Credentials = new NetworkCredential(fromAddress.Address, fromPassword)
};
using (var message = new MailMessage(fromAddress, toAddress)
{
Subject = subject,
Body = body
})
smtp.Send(message);
Et sur mon Gmail A / c, j'ai reçu l'e-mail suivant après avoir exécuté le code du serveur de production
Salut ,
Quelqu'un a récemment utilisé votre mot de passe pour essayer de se connecter à votre compte Google [email protected]. Cette personne utilisait une application telle qu'un e-mail, un client ou un appareil mobile.
Nous avons empêché la tentative de connexion au cas où un pirate de l'air tenterait d'accéder à votre compte. Veuillez consulter les détails de la tentative de connexion:
Vendredi 3 janvier 2014 13:56:08 heures UTC Adresse IP: xxx.xx.xx.xxx (abcd.net.) Lieu: Philadelphia PA, Philadelphia, PA, USA
Si vous ne reconnaissez pas cette tentative de connexion, quelqu'un d'autre peut essayer d'accéder à votre compte. Vous devez vous connecter à votre compte et réinitialiser votre mot de passe immédiatement.
Réinitialiser le mot de passe
S'il s'agit de vous et que vous rencontrez des difficultés pour accéder à votre compte, suivez les étapes de dépannage répertoriées sur http://support.google.com/mail?p=client_login.
Cordialement, L'équipe des comptes Google
Réponses:
Cela se produit généralement lorsque vous essayez de vous connecter à partir d'un fuseau horaire ou d'un ordinateur à adresse IP différents. Votre serveur de production et l'identifiant de messagerie que vous avez utilisé tous les deux se trouvent dans un fuseau horaire différent. Choisissez l'une de ces deux solutions:
1) Connectez-vous au serveur de production via un accès à distance et connectez-vous à gmail une fois avec vos informations d'identification. Ils demanderont la confirmation, la confirmeront et se déconnecteront.
Ou 2) connectez-vous à gmail à votre ordinateur local, suivez ce lien et choisissez d' examiner cette activité et de prendre les mesures appropriées.
la source
Lorsque vous essayez d'envoyer du courrier à partir du code et que vous trouvez l'erreur «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.1 Authentification requise», que l'erreur peut se produire en raison des cas suivants.
cas 1: lorsque le mot de passe est incorrect
cas 2: lorsque vous essayez de vous connecter à partir d'une application
cas 3: lorsque vous essayez de vous connecter à partir du domaine autre que votre fuseau horaire / domaine / ordinateur (c'est le cas dans la plupart des scénarios lors de l'envoi de courrier à partir du code)
Il existe une solution pour chaque
solution pour le cas 1: Entrez le mot de passe correct.
solution 1 pour le cas 2 : accédez aux paramètres de sécurité sur le lien suivant https://www.google.com/settings/security/lesssecureapps et activez les applications moins sécurisées. Pour que vous puissiez vous connecter à partir de toutes les applications.
solution 2 pour le cas 2 : (voir https://stackoverflow.com/a/9572958/52277 ) activez l'authentification à deux facteurs (aka vérification en deux étapes), puis générez un mot de passe spécifique à l'application. Utilisez ce mot de passe nouvellement généré pour vous authentifier via SMTP.
solution 1 pour le cas 3: (Cela pourrait être utile) vous devez revoir l'activité. mais l'examen de l'activité ne sera pas utile en raison des dernières normes de sécurité, le lien ne sera pas utile. Essayez donc le cas ci-dessous.
solution 2 pour le cas 3 : si vous avez hébergé votre code quelque part sur le serveur de production et si vous avez accès au serveur de production, connectez le bureau à distance au serveur de production et essayez de vous connecter une fois depuis le navigateur du serveur de production. Cela ajoutera une excpetioon pour la connexion à Google et vous serez autorisé à vous connecter à partir du code.
Mais que faire si vous n'avez pas accès au serveur de production. essayez la solution 3
solution 3 pour le cas 3: vous devez activer la connexion à partir d'un autre fuseau horaire / ip pour votre compte Google.
pour ce faire, suivez le lien https://g.co/allowaccess et autorisez l'accès en cliquant sur le bouton continuer.
Et c'est tout. Voici. Vous pouvez maintenant vous connecter depuis n'importe quel ordinateur et par n'importe quel moyen d'application à votre compte Google.
la source
C'est un problème de sécurité, Gmail empêche par défaut l'accès à votre compte de messagerie à partir d'applications personnalisées. Vous pouvez le configurer pour accepter la connexion de votre application.
Après vous être connecté à votre e-mail, CLIQUEZ ICI
Cela vous amènera à la page suivante
la source
Après avoir passé quelques heures aujourd'hui à essayer toutes les solutions ici, je n'arrivais toujours pas à surmonter cette erreur exacte. J'ai utilisé gmail plusieurs fois de cette façon, donc je savais que c'était quelque chose de stupide, mais rien de ce que j'ai fait n'a résolu le problème. Je suis finalement tombé sur la solution dans mon cas alors j'ai pensé partager.
Tout d'abord, la plupart des réponses ci-dessus sont également requises, mais dans mon cas, il s'agissait simplement de
SmtpClient
classer le code lors de la création de la classe.Dans ce premier extrait de code ci-dessous, notez où
Credentials = creds
se trouve la ligne. Cette implémentation générera l'erreur référencée dans cette question même si tout le reste est correctement configuré.Cependant, si vous déplacez l'appel de définition des informations d'identification vers le bas, l'e-mail sera envoyé sans erreur. Je n'ai apporté aucune modification au code environnant ... c'est-à-dire ... le nom d'utilisateur / mot de passe, etc. De toute évidence, soit le
EnableSSL, UseDefaultCredentials, or the DeliveryMethod
dépend de laCredentials
définition en premier ... .J'espère que cela vous évitera des maux de tête à l'avenir.
la source
UseDefaultCredentials
setter il y a ce code:this.transport.Credentials = value ? (ICredentialsByHost) CredentialCache.DefaultNetworkCredentials : (ICredentialsByHost) null;
qui remplacecredentials
défini parCredentials
setter. Pour moi, cela ressemble àSmtpClient
un bugVous devez activer "Autoriser les applications moins sécurisées" à partir d'ici https://myaccount.google.com/lesssecureapps
la source
Salut, j'ai eu le même problème,
ce que j'ai fait pour le résoudre. consiste à activer l'application la moins sécurisée. après m'être connecté à mon compte gmail. J'ai entré ce lien: https://www.google.com/settings/security/lesssecureapps
Ensuite, j'active l'application sécurisée et, et cela a fonctionné. il a été dit aussi ci-dessus
la source
J'ai un code fonctionnant précédemment qui jette cette erreur maintenant. Aucun problème sur le mot de passe. Pas besoin non plus de convertir le message en base64. Il s'avère que je dois faire ce qui suit:
Code de travail
Désactiver l'authentification à 2 facteurs
Réglez «Autoriser les applications moins sécurisées» sur ON (même page, faites défiler vers le bas)
la source
Suivez simplement l'étape dans l'e-mail Google et activez les applications moins sécurisées.
la source
J'ai rencontré le même problème. Cela se produit lorsque vous activez la vérification en deux étapes (MFA). Désactivez simplement la vérification en 2 étapes et votre problème devrait être résolu.
la source
Ci-dessous est mon code. J'ai également eu la même erreur mais le problème était que j'ai donné mon mot de passe incorrect. Le code ci-dessous fonctionnera parfaitement.
Vous pouvez le référencer sur mon blog
la source
il suffit d'activer le paramètre de ou gmail. voir l'image ci-dessous:
la source
J'ai eu le même problème pour une application déployée sur Microsoft Azure.
J'ai d'abord approuvé tous les appareils inconnus (certaines adresses IP provenant d'Irlande) sur la page suivante (connecté en tant qu'utilisateur gmail): https://security.google.com/settings/u/1/security/secureaccount
J'ai utilisé les paramètres suivants pour le client:
Il a commencé à fonctionner uniquement après avoir défini la propriété suivante sur le client smtp:
la source
Ce qui a fonctionné pour moi, c'est d'activer l'option pour les applications moins sécurisées (j'utilise VB.NET)
Connectez-vous à votre compte, puis accédez à google.com/settings/security/lesssecureapps
la source
Un commentaire de Tomasz Madeyski est ce qui a résolu mon problème ... il raconte qu'il existe un bug sur SetDefaultCredential, lui dit:
"Le problème est que dans le setter UseDefaultCredentials, il y a ce code: this.transport.Credentials = valeur? (ICredentialsByHost) CredentialCache.DefaultNetworkCredentials: (ICredentialsByHost) null; qui remplace les informations d'identification définies par le setter Credentials. Pour moi, cela ressemble à un bug de SmtpClient
si vous mettez
smtpClient.UseDefaultCredentials = false
après les informations d'identification définies ... cette ligne définie pour annuler ces informations d'identification ...la source
NOVEMBRE 2018, ont tout essayé sans succès.
Voici la solution qui a finalement fonctionné. Malheureusement, il n'utilise pas SSL, mais cela fonctionne !!!
la source
J'ai essayé toutes les suggestions trouvées ici, de l'activation des applications moins sécurisées au port 587 ... rien n'a fonctionné. Enfin, je viens de commenter la ligne
UseDefaultCredentials = false
. Tout fonctionnait si je ne touchais pas ce booléen.la source
J'ai vraiment regardé beaucoup d'idées, la seule solution était de cette façon (fonctionne avec différents fournisseurs de messagerie):
la source
Je suis un abonné Google Apps for Business et je passe les dernières heures à m'occuper de cela, même après avoir tous les paramètres corrects (smtp, port, enableSSL, etc.). Voici ce qui a fonctionné pour moi et les sites Web qui lançaient l'erreur 5.5.1 en essayant d'envoyer un e-mail:
Après cela, mes formulaires de courriel du site Web fonctionnaient à nouveau. Bonne chance!
la source
Vous devrez peut-être créer / générer un mot de passe APP spécifique à partir de gmail. votre application ou script utilisera alors ce nouveau mot de passe au lieu de votre mot de passe habituel. Votre mot de passe habituel fonctionnera toujours bien pour vous.
C'est ce qui m'a fait ça. J'ai toujours utilisé le même compte de messagerie, mais j'ai dû générer un nouveau mot de passe spécifique à l'application.
https://support.google.com/accounts/answer/185833?hl=en
Fondamentalement, vous pouvez le faire ici: https://security.google.com/settings/security/apppasswords
la source
Si vous utilisez gmail.
1 connexion à votre compte
2- parcourir ce lien
3- Autoriser les applications moins sécurisées: ON
Prendre plaisir....
la source
Vous devez interdire aux applications moins sécurisées d'accéder à votre compte Google .
faire:
https://myaccount.google.com/lesssecureapps
la source
ne mettez pas de point d'arrêt avant d'attendre smtp.SendMailAsync (mail);
:)
quand il attend avec un point d'arrêt donnant cette erreur quand je supprime le point d'arrêt, cela a fonctionné
la source
J'ai utilisé toutes les solutions mentionnées ci-dessus, mais cela n'a finalement fonctionné qu'après avoir activé l'accès IMAP à partir des paramètres Gmail Lien pour activer l'accès IMAP dans les paramètres Gmail
Bien entendu, les points des autres solutions étaient également nécessaires.
la source
essayez de changer l'hôte, c'est le nouveau, j'ai obtenu cette configuration mozilla thunderbird
ça marche pour moi
la source