Pour une raison quelconque, ni la réponse acceptée ni aucune autre ne fonctionne pour moi pour " Envoi d'e-mails dans .NET via Gmail ". Pourquoi ne fonctionneraient-ils pas?
MISE À JOUR: J'ai essayé toutes les réponses (acceptées et autres) dans l'autre question, mais aucune ne fonctionne.
Je voudrais juste savoir si cela fonctionne pour quelqu'un d'autre, sinon Google peut avoir changé quelque chose (ce qui s'est déjà produit).
Lorsque j'essaie le morceau de code qui utilise SmtpDeliveryMethod.Network
, je reçois rapidement une SmtpException sur Send (message). Le message est
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. En savoir plus sur «<- sérieusement, ça s'arrête là
METTRE À JOUR:
C'est une question que j'ai posée il y a longtemps, et la réponse acceptée est le code que j'ai utilisé de très nombreuses fois sur différents projets.
J'ai pris certaines des idées de cet article et d'autres projets EmailSender pour créer un projet EmailSender chez Codeplex . Il est conçu pour la testabilité et prend en charge mes services SMTP préférés tels que GoDaddy et Gmail.
Réponses:
CVertex, assurez-vous de revoir votre code et, si cela ne révèle rien, de le publier. J'activais cela sur un site de test ASP.NET sur lequel je travaillais, et cela fonctionne.
En fait, à un moment donné, j'ai eu un problème avec mon code. Je ne l'ai pas repéré avant d'avoir une version plus simple sur un programme de console et de voir que cela fonctionnait (pas de changement du côté de Gmail car vous étiez inquiet). Le code ci-dessous fonctionne exactement comme les exemples auxquels vous avez fait référence:
Je l'ai également fait fonctionner en utilisant une combinaison de web.config, http://msdn.microsoft.com/en-us/library/w355a94k.aspx et du code (car il n'y a pas de correspondance
EnableSsl
dans le fichier de configuration :().la source
CE QUI SUIT SERA PRESQUE CERTAINEMENT LA RÉPONSE À VOTRE QUESTION SI TOUT LE MONDE A ÉCHOUÉ :
J'ai exactement la même erreur, il s'avère que le nouvel algorithme de mesure de la force des mots de passe de Google a changé, jugeant mon mot de passe actuel trop faible et ne m'en disant rien (pas même un message ou un avertissement) ... Comment ai-je découvert cela ? Eh bien, j'ai choisi de changer mon mot de passe pour voir si cela aiderait (j'ai essayé tout le reste en vain) et quand j'ai changé mon mot de passe, cela a fonctionné!
Ensuite, pour une expérience, j'ai essayé de changer mon mot de passe pour revenir à mon ancien mot de passe pour voir ce qui se passerait, et Gmail ne m'a pas vraiment autorisé à le faire, citant la raison "désolé, nous ne pouvons pas vous permettre d'enregistrer ce changement comme votre choix le mot de passe est trop faible "et ne me laisse pas revenir à mon ancien mot de passe. J'en ai déduit que c'était une erreur car soit a) vous devez changer votre mot de passe une fois tous les x mois ou b). comme je l'ai déjà dit, leurs algorithmes de force de mot de passe ont changé et donc le mot de passe faible que j'avais n'avait pas été accepté, même s'ils n'ont rien dit à ce sujet en essayant de se connecter N'IMPORTE O!! Ceci (numéro 2) est le scénario le plus probable, car mon mot de passe faible était âgé d'environ 4 mois et il m'a permis de l'utiliser dans Gmail.
C'est assez mauvais qu'ils n'aient rien dit à ce sujet, mais c'est logique. Parce que la plupart des e-mails piratés sont connectés à l'aide d'un logiciel en dehors de gmail, et je suppose que vous devez avoir un mot de passe plus fort si vous souhaitez utiliser Gmail en dehors de l'environnement Gmail.
J'espère que ça aide!
la source
En plus des autres étapes de dépannage ci-dessus, je voudrais également ajouter que si vous avez activé l'authentification à deux facteurs (également appelée vérification en deux étapes ) sur votre compte GMail, vous devez générer un mot de passe spécifique à l'application et utiliser ce nouveau mot de passe généré pour s'authentifier via SMTP .
Pour en créer un, rendez-vous sur: https://www.google.com/settings/ et choisissez Autoriser les applications et les sites à générer le mot de passe.
la source
Lien vers les paramètres Gmail
la source
J'ai également eu des problèmes pour envoyer des e-mails à partir de mon compte Gmail, qui étaient dus à plusieurs des situations susmentionnées. Voici un résumé de la façon dont je l'ai fait fonctionner, et en le gardant flexible en même temps:
Et maintenant, chaque fois que vous souhaitez envoyer des e-mails, il vous suffit d'appeler
SSLMail.SendMail
:par exemple dans une page avec un contrôle PasswordRecovery:
Ou n'importe où dans votre code, vous pouvez appeler:
J'espère que cela aide toute personne qui rencontre ce message! (J'ai utilisé VB.NET mais je pense qu'il est trivial de le convertir dans n'importe quel langage .NET.)
la source
Si vous obtenez une erreur 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 était: 5.5.1 Authentification requise. En savoir plus sur" comme je le sais avant, assurez-vous que la ligne
SMTPClientObj.UseDefaultCredentials = False
incluse et cette ligne devrait avant leSMTPClientObj.Credentials
.J'ai essayé de changer ces 2 lignes dans le sens inverse et l' erreur 5.5.1 Authentication Required est revenue.
la source
Oh ... C'est incroyable ... D'abord, je n'ai pas pu envoyer d'e-mail pour une raison quelconque. Mais après avoir changé la séquence de ces deux lignes comme ci-dessous, cela fonctionne parfaitement.
J'espère que cette aide !!! :)
la source
Le problème n'est pas lié à la capacité technique d'envoyer via gmail. Cela fonctionne pour la plupart des situations. Si vous ne pouvez pas envoyer une machine à envoyer, cela est généralement dû au fait que la machine n'a pas été authentifiée avec un humain aux commandes au moins une fois.
Le problème auquel la plupart des utilisateurs sont confrontés est que Google décide de modifier les limites sortantes tout le temps. Vous devez toujours ajouter du code défensif à votre solution. Si vous commencez à voir des erreurs, réduisez votre vitesse d'envoi et arrêtez simplement d'envoyer pendant un certain temps. Si vous continuez d'essayer d'envoyer Google, vous ajouterez parfois du temps supplémentaire à votre délai avant de pouvoir envoyer à nouveau.
Ce que j'ai fait dans mon système actuel, c'est d'envoyer avec un délai de 1,5 seconde entre chaque message. Ensuite, si j'obtiens des erreurs, arrêtez-vous pendant 5 minutes, puis recommencez. Cela fonctionne généralement et vous permettra d'envoyer jusqu'à la limite du compte (la dernière fois que j'ai vérifié qu'il s'agissait de 2 000 pour les connexions client premium par jour).
la source
Étapes simples pour résoudre ce problème:
1) Connectez-vous à votre Gmail
2) Accédez à cette page https://www.google.com/settings/security/lesssecureapps et réglez sur "Activer"
la source
J'ai eu le même problème, mais il s'est avéré que ma protection antivirus bloquait les e-mails "spam" sortants. Cette désactivation m'a permis d'utiliser le port 587 pour envoyer des e-mails SMTP via GMail
la source
Si rien d'autre n'a fonctionné ici pour vous, vous devrez peut-être autoriser l'accès à votre compte Gmail à partir d'applications tierces. C'était mon problème. Pour autoriser l'accès, procédez comme suit:
Cela a fonctionné pour moi j'espère que cela fonctionne pour quelqu'un d'autre!
la source
Je ne sais pas quelle version .NET est requise pour cela car eglasius a mentionné qu'il n'y a pas de
enableSsl
paramètre correspondant (j'utilise .NET 4.0, mais je soupçonne que cela fonctionne dans .NET 2.0 ou version ultérieure), mais cette configuration a juste fonctionné pour moi (et ne vous oblige à utiliser aucune configuration programmatique):Vous devrez peut-être d'abord activer POP ou IMAP sur votre compte Gmail: https://mail.google.com/mail/?shva=1#settings/fwdandpop
Je recommande de l'essayer avec un client de messagerie normal d'abord ...
la source
@Andres Pompiglio: Oui c'est vrai, vous devez changer votre mot de passe au moins une fois .. ce code fonctionne très bien:
ET vous pouvez appeler la fonction en utilisant:
la source
J'utilisais une connexion VPN d'entreprise. C'est la raison pour laquelle je n'ai pas pu envoyer d'e-mail depuis ma candidature. Cela fonctionne si je me déconnecte du VPN.
la source
J'ai également constaté que le compte que j'avais utilisé pour me connecter avait été désactivé par Google pour une raison quelconque. Une fois que j'ai réinitialisé mon mot de passe (le même qu'avant), j'ai pu envoyer des e-mails très bien. Je recevais également un message 5.5.1.
la source
J'avais également essayé de nombreuses solutions, mais apportez quelques modifications, cela fonctionnera
avec smtpclient les paramètres ci-dessus fonctionnent dans gmail
la source
J'obtenais la même erreur et aucune des solutions ci-dessus n'a aidé.
Mon problème était que j'exécutais le code à partir d'un serveur distant, qui n'avait jamais été utilisé pour se connecter au compte gmail.
J'ai ouvert un navigateur sur le serveur distant et je me suis connecté à gmail à partir de là. Il a posé une question de sécurité pour vérifier qu'il s'agissait bien de moi puisqu'il s'agissait d'un nouvel emplacement. Après avoir fait le contrôle de sécurité, j'ai pu m'authentifier via le code.
la source
Activez les applications moins sécurisées pour votre compte: https://www.google.com/settings/security/lesssecureapps
la source
J'ai rencontré cette même 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. En savoir plus sur" ) et j'ai découvert que j'utilisais le mauvais mot de passe. J'ai corrigé les informations de connexion et il a été envoyé correctement.
Je sais que c'est tard, mais peut-être que cela aidera quelqu'un d'autre.
la source
Une autre chose que j'ai trouvée est que vous devez changer votre mot de passe au moins une fois. Et essayez d'utiliser un mot de passe de niveau sécurisé (n'utilisez pas le même utilisateur que le mot de passe, 123456, etc.)
la source
Encore une autre solution possible pour vous. J'avais des problèmes similaires de connexion à gmail via IMAP. Après avoir essayé toutes les solutions que j'ai rencontrées que vous lirez ici et ailleurs sur SO (par exemple, activez IMAP, activez un accès moins sécurisé à votre messagerie, en utilisant https://accounts.google.com/b/0/displayunlockcaptcha et ainsi de suite), j'ai en fait créé un nouveau compte Gmail.
Dans mon test d'origine, le premier compte gmail que j'avais créé, je m'étais connecté à mon compte gmail principal. Cela a entraîné un comportement erratique lorsque le mauvais compte était référencé par Google. Par exemple, exécuter https://accounts.google.com/b/0/displayunlockcaptcha ouvert mon compte principal plutôt que celui que j'avais créé à cet effet.
Donc, quand j'ai créé un nouveau compte et ne l'ai pas connecté à mon compte principal, après avoir suivi toutes les étapes appropriées comme ci-dessus, j'ai trouvé que cela fonctionnait bien!
Je ne l'ai pas encore confirmé (c'est-à-dire reproduit), mais il l'a apparemment fait pour moi ... j'espère que cela aide.
la source
Ensemble
avant
la source
Une ou plusieurs raisons sont à l'origine de ces erreurs.
Connectez-vous avec votre Gmail (ou tout autre si) dans votre système local.
Vérifiez également l'application moins sécurisée et réglez-la sur «Activer». Voici le lien pour GMAIL. https://www.google.com/settings/security/lesssecureapps
vérifiez EnableSsl dans votre code e-mail et définissez-le également sur true.
Vérifiez également le port que vous utilisez actuellement. 25 est Global, mais vous pouvez également le vérifier pour d'autres comme 587. vérifiez ici. Est-ce que toutes les communications SMTP ont lieu sur 25?
SI VOUS ÊTES À DISTANCE : Vérifiez la réponse de Vlad Tamas ci-dessus.
la source
Vous pouvez également vous connecter via le port 465, mais en raison de certaines limitations de l'espace de noms System.Net.Mail, vous devrez peut-être modifier votre code. En effet, l'espace de noms n'offre pas la possibilité d'établir des connexions SSL implicites. Ceci est discuté à http://blogs.msdn.com/b/webdav_101/archive/2008/06/02/system-net-mail-with-ssl-to-authenticate-against-port-465.aspx , et je ont fourni un exemple de la façon d'utiliser le CDO (Collaborative Data Object) dans une autre discussion ( GMail SMTP via des erreurs C # .Net sur tous les ports ).
la source
J'ai fait résoudre ce problème. Apparemment, ce message est utilisé dans plusieurs types d'erreur. Mon problème était que j'avais atteint mon maximum de 500 mails envoyés.
connectez-vous au compte et essayez d'envoyer un e-mail manuellement. Si la limite a été atteinte, il vous informera
la source
Si vous avez activé la vérification en deux étapes sur votre compte Gmail, vous devrez générer un mot de passe d'application. https://support.google.com/accounts/answer/185833?p=app_passwords_sa&hl=en&visit_id=636903322072234863-1319515789&rd=1 Sélectionnez Comment générer une option de mot de passe d'application et suivez les étapes fournies. Copiez et collez le mot de passe d'application généré quelque part car vous ne pourrez pas le récupérer après avoir cliqué sur TERMINÉ.
la source
la source
Modifiez votre mot de passe gmail et réessayez, cela devrait fonctionner après cela.
Je ne sais pas pourquoi, mais chaque fois que vous changez d'hébergement, vous devez changer votre mot de passe.
la source