kutombawewe.net

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]");
        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 a Google Account [email protected] Questa persona stava usando un'applicazione come come email, client o dispositivo mobile. 

Abbiamo impedito il tentativo di accesso nel caso in cui si trattasse di un dirottatore che prova a Accedere all'account. Consulta i dettagli del tentativo di accesso:

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

Se non riconosci questo tentativo di accesso, qualcun altro potrebbe essere cercando di accedere al tuo account. Devi accedere al tuo account e reimposta la tua password immediatamente. 

Resetta la password 

Se eri tu e hai problemi ad accedere al tuo account, completare la procedura di risoluzione dei problemi elencata in http://support.google.com/mail?p=client_login

Cordiali saluti, il team di Google Account

193
vcs

Generalmente ciò accade 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 rivedi questa attività e intraprendi le azioni appropriate.

162
Arshad

Quando si tenta di inviare la posta dal codice e viene rilevato 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", rispetto all'errore che potrebbe verificarsi a causa di 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 posta dal codice)

C'è una soluzione per ogni

soluzione per il caso 1: Immettere 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 un'applicazione specifica parola d'ordine. 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.

solution 2 per case 3: se hai ospitato il codice da qualche parte sul server di produzione e se hai accesso al server di produzione, allora prendi la connessione desktop remoto al server di produzione e prova ad accedere una volta dal browser della produzione server . Questo aggiungerà excpetioon per l'accesso a google e ti sarà permesso di accedere dal codice.

Ma 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ò seguire il link https://g.co/allowaccess e consentire 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.

235
Roshan Parmar

È 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 l'accesso alla tua e-mail, CLICCA QUI

Questo ti porterà alla pagina seguente

 Less Secure Apps Page

92
Sayka

Dopo aver passato 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 nulla che io abbia 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 classe SmtpClient.

In questo primo frammento di codice qui sotto, nota dove si trova la linea "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 si sposta la chiamata setter di Credenziali in basso, l'e-mail verrà inviata senza errori. Non ho apportato modifiche 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 era 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.

18
user1011627

Ciao ho avuto lo stesso problema, 

cosa ho fatto per risolverlo è quello di attivare l'app meno sicura . dopo aver effettuato il collegamento al mio account Gmail. Ho inserito questo link: https://www.google.com/settings/security/lesssecureapps

Poi accendo l'app sicura e, e ha funzionato . È stato detto anche sopra

11
Barak Rosenfeld

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

8
Trung

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

  1. Disattiva 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 qui anche 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);
    }

Disattivazione dell'autenticazione a 2 fattori  Turning off 2-factor authentication

Impostare "Consenti app meno sicure" su ON (stessa pagina, è necessario scorrere verso il basso)  Allow less secure apps

7
Jeson Martajaya

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

6
Anik

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 += " <html>";
            mail.Body += "<body>";
            mail.Body += "<table>";
            mail.Body += "<tr>";
            mail.Body += "<td>User Name : </td><td> HAi </td>";
            mail.Body += "</tr>";

            mail.Body += "<tr>";
            mail.Body += "<td>Password : </td><td>aaaaaaaaaa</td>";
            mail.Body += "</tr>";
            mail.Body += "</table>";
            mail.Body += "</body>";
            mail.Body += "</html>";
            mail.IsBodyHtml = true;
            SmtpServer.Port = 587;
            SmtpServer.Credentials = new System.Net.NetworkCredential("sendfrommailaddress.com", "password");
            SmtpServer.EnableSsl = true;
            SmtpServer.Send(mail);

Puoi fare riferimento a il mio blog

4
Ganesh Pillai N

Devi attivare "Consenti app meno sicure" da qui https://myaccount.google.com/lesssecureapps

3
Raj K

basta attivare l'impostazione di o gmail . vedi sotto immagine data:

 enter image description here

2
Rajesh Paliwal

Ciò che ha funzionato per me è stato attivare 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 poi vai a google.com/settings/security/lesssecureapps

2
Edgar

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

SmtpException: il server SMTP richiede una connessione sicura o il il cliente 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";
2
haiiaaa

Ho provato tutti i suggerimenti trovati qui, dall'attivare app meno sicure, a provare la porta 587 ... niente ha funzionato. Alla fine ho solo commentato la riga UseDefaultCredentials = false. Tutto ha funzionato se non avessi toccato quel booleano. 

1
Kris Coleman

Un commento di Tomasz Madeyski è ciò che ha risolto il mio problema ... dice che esiste un bug su SetDefaultCredential, 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 sembra il bug di SmtpClient"

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

1
FabianSilva

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

Questo è ciò che ha fatto per me . Ho ancora usato 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=it

 Screen shot

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

0
samiup

NOVEMBRE 2018, ho provato tutto sopra senza successo.

Di seguito è la soluzione che ha funzionato alla fine. Sfortunatamente non sta usando SSL, ma funziona !!!

var fromAddress = new MailAddress([email protected], "From Name");
var toAddress = new MailAddress("[email protected]", "To Name");

const string subject = "Subject";
const string body = "Body";

var smtp = new SmtpClient
{
    Host = "aspmx.l.google.com",
    Port = 25,
    EnableSsl = false
};
using (var message = new MailMessage(fromAddress, toAddress)
{
    Subject = subject,
    Body = body
})
{
    smtp.Send(message);
}
0
InGeek

Devi non consentire app meno sicure per accedere al tuo account Google.

fare:

https://myaccount.google.com/lesssecureapps

0
MohammadSoori

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)...
0
Walter

Se stai usando gmail.

  • 1-accesso al tuo account 

    2- sfoglia questo link

    3- Consenti app meno sicure: ON

Godere....

0
Muhammad Azeem

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 questo 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!

0
RichieMN

non mettere break-point prima di attendere smtp.SendMailAsync (mail);

:) 

quando aspetta con un punto di interruzione dando questo errore quando rimuovo il punto di rottura ha funzionato

0
dewelloper