Errore Gmail: il server SMTP richiede una connessione protetta o il client non è stato autenticato. La risposta del server era: 5.5.1 Autenticazione richiesta

Sto usando il seguente codice per inviare email. Il codice funziona correttamente nella mia macchina locale. Ma sul server di produzione sto ricevendo il messaggio di errore

var fromAddress = new MailAddress("[email protected]gmail.com"); 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); 

E sul mio Gmail A / c ho ricevuto la seguente email dopo che ho eseguito il codice dal server di produzione

Ciao ,

Qualcuno ha recentemente utilizzato la tua password per provare ad accedere al tuo account Google [email protected] Questa persona stava usando un’applicazione come un’e-mail, un client o un dispositivo mobile.

Abbiamo impedito il tentativo di accesso nel caso in cui si trattasse di un dirottatore che tentava di accedere al tuo account. Consulta i dettagli del tentativo di accesso:

Venerdì 3 gennaio 2014 13:56:08 Indirizzo IP UTC: xxx.xx.xx.xxx (abcd.net.) Località: Philadelphia PA, Philadelphia, PA, USA

Se non riconosci questo tentativo di accesso, qualcun altro potrebbe tentare di accedere al tuo account. Devi accedere al tuo account e reimpostare la password immediatamente.

Resetta la password

Se eri tu e hai problemi ad accedere al tuo account, completa i passaggi di risoluzione dei problemi elencati in http://support.google.com/mail?p=client_login

Cordiali saluti, il team di Google Account

Ciò accade generalmente quando si prova ad accedere da un fuso orario diverso o da un computer con indirizzo IP. Il tuo server di produzione e l’ID della posta che hai utilizzato sono entrambi in fuso orario diverso. Scegli una delle soluzioni:

1) Accedi al server di produzione tramite accesso remoto e accedi a gmail una volta con le tue credenziali. Chiederanno la conferma, la confermeranno e usciranno.

Oppure 2) accedi a gmail sul tuo computer locale, segui questo link e scegli la revisione di questa attività e intraprendi le azioni appropriate.

Quando si tenta di inviare la posta dal codice e si trova l’errore “Il server SMTP richiede una connessione protetta o il client non è stato autenticato.La risposta del server è stata: 5.5.1 Autenticazione richiesta”, che l’errore potrebbe verificarsi a causa dei seguenti casi.

caso 1: quando la password è sbagliata

caso 2: quando si tenta di accedere da qualche app

caso 3: quando si tenta di accedere dal dominio diverso da fuso orario / dominio / computer (questo è il caso nella maggior parte degli scenari quando si invia la posta dal codice)

C’è una soluzione per ciascuno

soluzione per il caso 1: inserire la password corretta.

soluzione 1 per il caso 2 : vai alle impostazioni di sicurezza al seguente link https://www.google.com/settings/security/lesssecureapps e abilita le app meno sicure. In questo modo sarai in grado di accedere da tutte le app.

soluzione 2 per il caso 2 : (vedere https://stackoverflow.com/a/9572958/52277 ) abilitare l’autenticazione a due fattori (ovvero la verifica in due passaggi) e quindi generare una password specifica dell’applicazione. Usa quella nuova password per autenticarti tramite SMTP.

soluzione 1 per il caso 3: (Potrebbe essere utile) è necessario rivedere l’attività. ma rivedere l’attività non sarà utile a causa degli ultimi standard di sicurezza, il collegamento non sarà utile. Quindi prova il caso seguente.

soluzione 2 per il caso 3 : se il codice è stato ospitato da qualche parte sul server di produzione e se si ha accesso al server di produzione, prendere la connessione desktop remoto al server di produzione e provare a effettuare l’accesso una volta dal browser del server di produzione. Questo aggiungerà excpetioon per il login a google e ti sarà permesso di accedere dal codice.

Ma cosa succede se non si ha accesso al server di produzione. prova la soluzione 3

soluzione 3 per il caso 3: devi abilitare il login da altri timezone / ip per il tuo account google.

per fare ciò segui il link https://g.co/allowaccess e consenti l’accesso facendo clic sul pulsante continua.

E questo è tutto. Ecco qui. Ora potrai accedere da qualsiasi computer e tramite qualsiasi app al tuo account Google.

È un problema di sicurezza, Gmail per impostazione predefinita impedisce l’accesso al tuo account e-mail da applicazioni personalizzate. Puoi configurarlo per accettare il login dalla tua applicazione.

Dopo aver effettuato l’accesso alla tua e-mail, CLICCA QUI

Questo ti porterà alla pagina seguente

Pagina App meno sicura

Dopo aver trascorso un paio d’ore oggi a provare ogni soluzione qui, non ero ancora in grado di superare questo errore esatto. Ho usato Gmail più volte in questo modo, quindi sapevo che era una cosa stupida, ma non ho risolto il problema. Alla fine ho trovato la soluzione nel mio caso, quindi ho pensato di condividerlo.

Innanzitutto, è richiesta anche la maggior parte delle risposte precedenti, ma nel mio caso si trattava semplicemente di ordinare il codice durante la creazione della class SmtpClient.

In questo primo frammento di codice qui sotto, nota dove si trova la riga “Credentials = creds”. Questa implementazione genererà l’errore a cui si fa riferimento in questa domanda, anche se hai impostato correttamente tutto il resto.

 System.Net.Mail.SmtpClient client = new System.Net.Mail.SmtpClient { Host = Emailer.Host, Port = Emailer.Port, Credentials = creds, EnableSsl = Emailer.RequireSSL, UseDefaultCredentials = false, DeliveryMethod = System.Net.Mail.SmtpDeliveryMethod.Network } 

Tuttavia, se sposti la chiamata setter di Credenziali in basso, l’email verrà inviata senza errori. Non ho apportato alcuna modifica al codice circostante … vale a dire … nome utente / password, ecc. Chiaramente, EnableSSL, UseDefaultCredentials o DeliveryMethod dipende dalle credenziali impostate per prime …. Non ho provato tutto per capire quale fosse però.

 System.Net.Mail.SmtpClient client = new System.Net.Mail.SmtpClient { Host = Emailer.Host, Port = Emailer.Port, EnableSsl = Emailer.RequireSSL, UseDefaultCredentials = false, DeliveryMethod = System.Net.Mail.SmtpDeliveryMethod.Network, Credentials = creds } 

Spero che questo aiuti a salvare qualcun altro alcuni mal di testa in futuro.

Ciao ho avuto lo stesso problema,

cosa ho fatto per risolverlo è quello di triggersre l’app meno sicura. dopo essermi connesso al mio account Gmail. Ho inserito questo link: https://www.google.com/settings/security/lesssecureapps

Quindi accendo l’app sicura e, e ha funzionato. è stato detto anche sopra

Segui semplicemente il passaggio nell’e-mail di Google e abilita le app meno sicure.

Ho affrontato lo stesso problema. Succede quando si triggers la verifica in due passaggi (MFA). Distriggers la verifica in due passaggi e il problema dovrebbe essere risolto.

Di seguito è riportato il mio codice. Ho anche avuto lo stesso errore ma il problema era che ho dato la mia password sbagliata. Il codice qui sotto funzionerà perfettamente

  MailMessage mail = new MailMessage(); SmtpClient SmtpServer = new SmtpClient("smtp.gmail.com"); mail.From = new MailAddress("[email protected]"); mail.To.Add("[email protected]"); mail.To.Add("[email protected]"); mail.Subject = "Password Recovery "; mail.Body += " "; mail.Body += ""; mail.Body += ""; mail.Body += ""; mail.Body += ""; mail.Body += ""; mail.Body += ""; mail.Body += ""; mail.Body += ""; mail.Body += "
User Name : HAi
Password : aaaaaaaaaa
"; mail.Body += ""; mail.Body += ""; mail.IsBodyHtml = true; SmtpServer.Port = 587; SmtpServer.Credentials = new System.Net.NetworkCredential("sendfrommailaddress.com", "password"); SmtpServer.EnableSsl = true; SmtpServer.Send(mail);

Puoi riferirlo nel mio blog

Ho avuto lo stesso problema per un’applicazione distribuita in Microsoft Azure.

SmtpException: il server SMTP richiede una connessione sicura o il client non è stato autenticato. La risposta del server era: 5.5.1 Autenticazione richiesta.

Innanzitutto ho approvato tutti i dispositivi sconosciuti (alcuni indirizzi IP originari dell’Irlanda) nella pagina seguente (registrati come utente gmail): https://security.google.com/settings/u/1/security/secureaccount

Ho usato le seguenti impostazioni per il cliente:

 var client = new SmtpClient("smtp.gmail.com"); client.Port = 587; client.EnableSsl = true; client.UseDefaultCredentials = false; client.Credentials = new NetworkCredential("[email protected]", "my_password"); 

Ha iniziato a funzionare solo dopo aver impostato la seguente proprietà su smtp-client:

 client.TargetName = "STARTTLS/smtp.gmail.com"; 

Ciò che ha funzionato per me è stato triggersre l’opzione per le app meno sicure (sto usando VB.NET)

 Public Shared Sub enviaDB(ByRef body As String, ByRef file_location As String) Dim mail As New MailMessage() Dim SmtpServer As New SmtpClient("smtp.gmail.com") mail.From = New MailAddress("[email protected]") mail.[To].Add("[email protected]") mail.Subject = "subject" mail.Body = body Dim attachment As System.Net.Mail.Attachment attachment = New System.Net.Mail.Attachment(file_location) mail.Attachments.Add(attachment) SmtpServer.Port = 587 SmtpServer.Credentials = New System.Net.NetworkCredential("user", "password") SmtpServer.EnableSsl = True SmtpServer.Send(mail) End Sub 

Quindi accedi al tuo account e vai su google.com/settings/security/lesssecureapps

Ho provato tutti i suggerimenti trovati qui, dall’triggersre app meno sicure, a provare la porta 587 … niente ha funzionato. Infine ho appena commentato la riga UseDefaultCredentials = false . Tutto ha funzionato se non avessi toccato quel booleano.

basta triggersre le impostazioni di o gmail. vedi sotto immagine data:

inserisci la descrizione dell'immagine qui

Se stai usando gmail.

  • 1-accesso al tuo account

    2- sfoglia questo link

    3- Consenti app meno sicure: ON

Godere….

Ho un codice precedentemente funzionante che genera questo errore ora. Nessun problema con la password. Non è necessario convertire il messaggio in base64. Risulta, ho bisogno di fare quanto segue:

  1. Distriggers l’autenticazione a 2 fattori
  2. Imposta “Consenti app meno sicure” su ON
  3. Accedi al tuo account Gmail dal server di produzione
  4. Vai anche qui per approvare l’attività di accesso
  5. Esegui la tua app nel server di produzione

Codice di lavoro

  public static void SendEmail(string emailTo, string subject, string body) { var client = new SmtpClient("smtp.gmail.com", 587) { Credentials = new NetworkCredential("[email protected]", "secretpassword"), EnableSsl = true }; client.Send("[email protected]", emailTo, subject, body); } 

Distriggerszione dell’autenticazione a 2 fattori Disattivazione dell'autenticazione a 2 fattori

Impostare “Consenti app meno sicure” su ON (stessa pagina, è necessario scorrere verso il basso) Consenti app meno sicure

Ho davvero preso in considerazione molte idee, l’unica soluzione era questa (funziona con diversi provider di email):

  try { ViewProgressbar("Try to connect mail-server...", progressBar1.Value = 20); string host = dsProvider.Rows[y]["POP_hostOut"].ToString(); int port = int.Parse(dsProvider.Rows[y]["POP_portOut"].ToString()); //587 string[] email = von1.Split('@'); string userName = (dsProvider.Rows[y]["login"].ToString() == "email[0]@email[1]")? email[0]+"@"+email[1] : email[0]; string password = layer.getUserPassword(listSender.SelectedValue.ToString()); SmtpClient client = new SmtpClient(host, port); client.DeliveryMethod = SmtpDeliveryMethod.Network; client.UseDefaultCredentials = false; //A idea from MSDN but it not works. You got the "The server response was: 5.5.1 Authentication Required." //System.Net.NetworkCredential myCreds = new System.Net.NetworkCredential(userName, password, host); //System.Net.CredentialCache cache = new System.Net.CredentialCache(); //cache.Add(host, port, "NTLM", myCreds); ///cache.GetCredential(host, port, "NTLM"); //NTLM client.Credentials = new System.Net.NetworkCredential(userName, password); client.Host = host; client.Port = port; client.EnableSsl = true; client.Send(message); ViewProgressbar(); } catch (SmtpException ex)... 

Sono un’app di Google per gli abbonati alle imprese e trascorro le ultime due ore a occuparmi di questo, anche dopo aver avuto tutte le impostazioni corrette (smtp, port, enableSSL, ecc.). Ecco cosa ha funzionato per me e per i siti Web che hanno generato l’errore 5.5.1 durante il tentativo di inviare un’email:

  1. Accedi al tuo admin.google.com
  2. Fai clic su SECURITY <- se non è visibile, quindi fai clic su "MORE CONTROLS" e aggiungilo dall'elenco
  3. Fai clic su Impostazioni di base
  4. Scorri fino alla fine della casella Impostazioni di base, fai clic sul link: “Vai alle impostazioni per app meno sicure”
  5. Seleziona l’opzione n. 3: imponi l’accesso a app meno sicure per tutti gli utenti (non consigliato)
  6. Premere SALVA nella parte inferiore della finestra

Dopo aver fatto questo i miei moduli di posta elettronica dal sito web stavano lavorando di nuovo. In bocca al lupo!

Potrebbe essere necessario creare / generare una password APP specifica da gmail. l’app o lo script utilizzeranno questa nuova password invece della normale password. La tua password regolare funzionerà ancora bene per te.

Questo è quello che ha fatto per me. Ho ancora utilizzato lo stesso account di posta elettronica, ma ho dovuto generare una nuova password specifica per l’app.

https://support.google.com/accounts/answer/185833?hl=en

Immagine dello schermo

Fondamentalmente puoi farlo qui: https://security.google.com/settings/security/apppasswords

Un commento di Tomasz Madeyski è ciò che ha risolto il mio problema … dice che esiste un bug su SetDefaultCredential, lui dice:

“Il problema è che nel setter UseDefaultCredentials c’è questo codice: this.transport.Credentials = value? (ICredentialsByHost) CredentialCache.DefaultNetworkCredentials: (ICredentialsByHost) null, che sostituisce le credenziali impostate dal setter delle credenziali. Per me assomiglia al bug di SmtpClient”

se metti smtpClient.UseDefaultCredentials = false dopo aver impostato le credenziali … questa riga imposta su null quelle credenziali …

Devi impedire le app meno sicure per accedere al tuo account google .

fare:

https://myaccount.google.com/lesssecureapps

Ho usato tutte le soluzioni sopra menzionate, ma alla fine ha funzionato solo dopo aver abilitato l’accesso IMAP dalle impostazioni di Gmail Link per abilitare l’accesso IMAP nelle impostazioni di Gmail

Naturalmente, anche i punti delle altre soluzioni erano necessari.

prova a cambiare l’host, questo è il nuovo, ho questo mozilla thunderbird di configurazione

 Host = "smtp.googlemail.com" 

questo lavoro per me