Błąd Gmaila: serwer SMTP wymaga bezpiecznego połączenia lub klient nie został uwierzytelniony. Odpowiedź serwera: 5.5.1 Wymagane uwierzytelnienie

Używam poniższego kodu, aby wysłać e-mail. Kod działa poprawnie w mojej lokalnej maszynie. Ale na serwerze produkcyjnym dostaję komunikat o błędzie

        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);

I na moim Gmailu A / c otrzymałem następujący e-mail po uruchomieniu kodu z serwera produkcyjnego

Cześć,

Ktoś ostatnio użył twojego hasła, aby spróbować zalogować się do Google Konto [email protected]. osoba ta korzystała z aplikacji takiej jako e-mail, Klient lub urządzenie mobilne.

Zapobiegliśmy próbie logowania na wypadek, gdyby to był porywacz próbujący uzyskaj dostęp do swojego konta. Prosimy o zapoznanie się ze szczegółami próby logowania:

Piątek, 3 stycznia 2014 13: 56: 08 UTC adres IP: xxx. xx. xx. xxx (abcd.net.) lokalizacja: Filadelfia PA, Filadelfia, PA, USA

Jeśli nie rozpoznasz tego znaku-w próbie, ktoś inny może być próbuję uzyskać dostęp do Twojego konta. Należy zalogować się na swoje konto i natychmiast zresetuj hasło.

Resetowanie hasła

Jeśli to byłeś Ty i masz problemy z dostępem do swojego konta, wykonaj kroki rozwiązywania problemów wymienione na stronie http://support.google.com/mail?p=client_login

Z poważaniem, Zespół ds. kont Google]}
Author: GEOCHET, 2014-01-03

21 answers

Zazwyczaj dzieje się tak, gdy próbujesz zalogować się z innej strefy czasowej lub komputera z adresem IP. Serwer produkcyjny i identyfikator poczty, którego użyłeś, znajdują się w innej strefie czasowej. Wybierz jedno z rozwiązań:

1) Zaloguj się do serwera produkcyjnego za pomocą zdalnego dostępu i zaloguj się do Gmaila raz za pomocą swoich danych uwierzytelniających. Poprosi o potwierdzenie, Potwierdź i wyloguj się.

Lub 2) Zaloguj się do Gmaila na komputerze lokalnym, kliknij ten link i wybierz przejrzyj ten aktywność i podjąć odpowiednie działania.

 140
Author: Arshad,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-08-11 13:50:26

Gdy próbujesz wysłać pocztę z kodu i znajdziesz błąd " serwer SMTP wymaga bezpiecznego połączenia lub klient nie został uwierzytelniony. Odpowiedź serwera brzmiała: 5.5.1 Wymagane uwierzytelnienie", niż błąd może wystąpić z powodu następujących przypadków.

Przypadek 1: gdy hasło jest błędne

Przypadek 2: podczas próby zalogowania się z jakiejś aplikacji

Przypadek 3: gdy próbujesz zalogować się z domeny innej niż twój czas Strefa / domena / komputer (tak jest w większości scenariuszy przy wysyłaniu poczty z kodu)

Istnieje rozwiązanie dla każdego

Rozwiązanie dla Przypadku 1: wprowadź poprawne hasło.

Rozwiązanie 1 dla przypadku 2 : Przejdź do ustawień zabezpieczeń pod linkiem followig https://www.google.com/settings/security/lesssecureapps i włącz mniej bezpieczne aplikacje . Dzięki czemu będziesz mógł zalogować się ze wszystkich aplikacje.

Rozwiązanie 2 dla przypadku 2: (patrz https://stackoverflow.com/a/9572958/52277 ) Włącz uwierzytelnianie dwuetapowe (aka Weryfikacja dwuetapowa), a następnie Wygeneruj hasło specyficzne dla aplikacji. Użyj nowo wygenerowanego hasła do uwierzytelnienia za pomocą SMTP.

Rozwiązanie 1 dla przypadku 3: (może to być pomocne) musisz przejrzeć działanie. ale przeglądanie aktywności nie będzie pomocne ze względu na najnowsze standardy bezpieczeństwa link nie będzie przydatny. Więc wypróbuj poniższy przypadek.

Rozwiązanie 2 dla przypadku 3: Jeśli kod był przechowywany gdzieś na serwerze produkcyjnym i masz dostęp do serwera produkcyjnego, to skorzystaj z połączenia pulpitu zdalnego z serwerem produkcyjnym i spróbuj zalogować się raz z przeglądarki serwera produkcyjnego. Spowoduje to dodanie excpetioon do logowania do google i będziesz mógł zalogować się z kodu.

ale co, jeśli nie masz dostępu do serwera produkcyjnego. wypróbuj Rozwiązanie 3

rozwiązanie 3 dla przypadku 3: Musisz włączyć logowanie z innej strefy czasowej / ip dla swojego konta google.

Aby to zrobić kliknij link https://g.co/allowaccess i zezwól na dostęp, klikając przycisk Kontynuuj.

I tyle. Proszę. Teraz będziesz mógł zalogować się z dowolnego komputera i za pomocą dowolnej aplikacji na swoje konto google.

 220
Author: Roshan Parmar,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 12:02:56

Jest to problem bezpieczeństwa, Gmail domyślnie uniemożliwia dostęp do konta e-mail z niestandardowych aplikacji. Możesz skonfigurować go tak, aby akceptował login z Twojej aplikacji.

Po zalogowaniu się na swój e-mail, Kliknij tutaj

To przeniesie Cię do następnej strony

Strona O Mniej Bezpiecznych Aplikacjach

 85
Author: Sayka,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-04 09:57:35

Po spędzeniu kilku godzin na próbowaniu każdego rozwiązania tutaj, nadal nie byłem w stanie ominąć tego dokładnego błędu. Używałem Gmaila wiele razy w ten sposób, więc wiedziałem, że to coś głupiego, ale nic nie naprawiłem problemu. W końcu natknąłem się na rozwiązanie w moim przypadku, więc pomyślałem, że się podzielę.

Po pierwsze, większość powyższych odpowiedzi jest również wymagana, ale w moim przypadku była to prosta kwestia uporządkowania kodu podczas tworzenia klasy SmtpClient.

W tym pierwszy fragment kodu poniżej, zwróć uwagę, gdzie znajduje się linia "Credits = creds". Ta implementacja wygeneruje błąd, o którym mowa w tym pytaniu, nawet jeśli Wszystko inne zostało poprawnie skonfigurowane.

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
        }

Jeśli jednak przeniesiesz wywołanie Settera poświadczeń na dół, wiadomość e-mail zostanie wysłana bez błędu. Nie dokonałem żadnych zmian w otaczającym kodzie ... czyli ... nazwa użytkownika/hasło itp. Oczywiście, albo EnableSSL, UseDefaultCredentials, albo DeliveryMethod zależy od poświadczenia są ustalane jako pierwsze....Nie testowałem wszystkich, aby dowiedzieć się, który to był.

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
        }

Mam nadzieję, że to pomoże uratować kogoś innego kilka bólów głowy w przyszłości.

 16
Author: user1011627,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-12-11 20:54:25

Witam mam ten sam problem,

Co zrobiłem, aby to rozwiązać. jest włączenie mniej bezpiecznej aplikacji. po połączeniu się z moim kontem gmail. Wpisałem ten link: https://www.google.com/settings/security/lesssecureapps

Potem włączam bezpieczną aplikację i, i działa. zostało powiedziane również powyżej

 10
Author: Barak Rosenfeld,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-03-05 13:18:00

Po prostu wykonaj krok w e-mailu google i włącz mniej bezpieczne aplikacje.

 8
Author: Trung,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-10-29 21:18:58

Miałem ten sam problem. Dzieje się tak po włączeniu weryfikacji dwuetapowej (MFA). Wystarczy wyłączyć weryfikację dwuetapową, a problem powinien zostać rozwiązany.

 6
Author: Anik,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-07-31 16:43:39

Poniżej znajduje się mój kod.Miałem również ten sam błąd, ale problem polegał na tym, że źle podałem hasło.Poniższy kod będzie działał idealnie..try it

            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);

Możesz go odnieść w mój blog

 4
Author: Ganesh Pillai N,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-05-13 02:34:46

Miałem ten sam problem w przypadku aplikacji wdrożonej na Microsoft Azure.

SmtpException: serwer SMTP wymaga bezpiecznego połączenia lub klient nie został uwierzytelniony. Odpowiedź serwera: 5.5.1 Wymagane Uwierzytelnienie.

Najpierw zatwierdziłem wszystkie nieznane urządzenia (niektóre adresy ip pochodzące z Irlandii) na następującej stronie (zalogowany jako użytkownik Gmaila): https://security.google.com/settings/u/1/security/secureaccount

I used następujące ustawienia dla klienta:

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

Zaczęło działać dopiero po ustawieniu następującej właściwości na SMTP-kliencie:

client.TargetName = "STARTTLS/smtp.gmail.com";
 2
Author: haiiaaa,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-09-11 12:38:50

Zadziałało dla mnie aktywowanie opcji dla mniej bezpiecznych aplikacji (używam 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

Więc Zaloguj się na swoje konto, a następnie przejdź do google.com/settings/security/lesssecureapps

 2
Author: Edgar,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-12-02 21:39:03

Po prostu włącz ustawienie or gmail. zobacz poniższy obrazek:

Tutaj wpisz opis obrazka

 2
Author: Rajesh Paliwal,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-08-03 08:11:36

Mam wcześniej działający kod, który wyrzuca ten błąd teraz. Nie ma problemu z hasłem. Nie ma potrzeby konwertowania Wiadomości do base64. Okazuje się, że muszę wykonać następujące czynności:

  1. Wyłącz uwierzytelnianie dwuskładnikowe
  2. Ustaw "Zezwalaj na mniej bezpieczne aplikacje" na
  3. Zaloguj się na swoje konto gmail z serwera produkcyjnego
  4. Idź tutaj oraz Zatwierdź aktywność logowania
  5. Uruchom aplikację na serwerze produkcyjnym

Kodeks Pracy

    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);
    }

Toczenie wyłączanie uwierzytelniania dwuskładnikowego Wyłączanie uwierzytelniania dwuskładnikowego

Ustaw "Zezwalaj na mniej bezpieczne aplikacje" na włączone (ta sama strona, trzeba przewinąć do dołu) Zezwalaj na mniej bezpieczne aplikacje

 2
Author: Jeson Martajaya,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-06-09 14:31:21

Wypróbowałem wszystkie znalezione tutaj sugestie, od włączania mniej bezpiecznych aplikacji, po wypróbowanie portu 587... nic nie działało. W końcu właśnie skomentowałem linię UseDefaultCredentials = false. Wszystko działało, gdybym nie dotknął tego boolean ' a.

 1
Author: Kris Coleman,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-31 18:06:50

Jeśli używasz Gmaila.

  • 1-Zaloguj się na swoje konto

    2-przeglądaj ten link

    3-Zezwalaj na mniej bezpieczne aplikacje: ON

Enjoy....

 1
Author: Muhammad Azeem,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-03-12 12:56:12

Naprawdę przyjrzałem się wielu pomysłom, jedynym rozwiązaniem było w ten sposób (działa z różnymi dostawcami poczty e-mail):

            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
Author: Walter,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-05-09 11:21:15

Jestem abonentem google apps for business i ostatnie kilka godzin spędzam na radzeniu sobie z tym, nawet po poprawnych Ustawieniach (smtp, port, enableSSL itp.). Oto, co zadziałało dla mnie i stron internetowych, które rzucały błąd 5.5.1 podczas próby wysłania e-maila:

  1. Zaloguj się do swojego admin.google.com
  2. Kliknij zabezpieczenia
  3. Kliknij Ustawienia Podstawowe
  4. przewiń do na dole pola Ustawienia Podstawowe kliknij łącze: "przejdź do Ustawienia dla mniej bezpiecznych aplikacji"
  5. Wybierz opcję # 3: wymuszanie dostępu do mniej bezpiecznych aplikacji dla wszystkich użytkowników (niezalecane)
  6. naciśnij Zapisz u dołu okna

Po zrobieniu tego moje formularze e-mail z witryny ponownie działały. Powodzenia!

 0
Author: RichieMN,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-11-20 17:30:11

Może być konieczne utworzenie / wygenerowanie określonego hasła aplikacji z Gmaila. aplikacja lub skrypt użyją tego nowego hasła zamiast zwykłego hasła. Twoje zwykłe hasło będzie nadal działać dobrze dla Ciebie.

Właśnie to dla mnie zrobiło. Nadal używałem tego samego konta e-mail, ale musiałem wygenerować nowe hasło specyficzne dla aplikacji.

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

Screen shot

W zasadzie możesz to zrobić proszę.: https://security.google.com/settings/security/apppasswords

 0
Author: samiup,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-01-20 20:38:53

Komentarz Tomasza Madeyskiego naprawił mój problem... mówi, że istnieje błąd na SetDefaultCredential, mówi:

" problem polega na tym, że w UseDefaultCredentials setter znajduje się ten kod: this.transport.Poświadczenia = wartość ? (ICredentialsByHost) CredentialCache.DefaultNetworkCredentials: (ICredentialsByHost) null; która nadpisuje poświadczenia ustawione przez poświadczenia setter. Dla mnie wygląda to jak błąd SmtpClient "

Jeśli umieścisz smtpClient.UseDefaultCredentials = false po ustawieniu poświadczeń... ta linia Ustaw na unieważnienie tych poświadczeń...

 0
Author: FabianSilva,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-02-23 10:21:33

Powinieneś zabronić mniej bezpiecznym aplikacjom dostępu do Twojego konta google.

Do zrobienia:

Https://myaccount.google.com/lesssecureapps

 0
Author: MohammadSoori,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-04-24 07:17:38

Użyłem wszystkich powyższych rozwiązań, ale w końcu zadziałało dopiero po włączeniu dostępu IMAP z ustawień Gmaila Link do włączenia dostępu IMAP w ustawieniach Gmaila

Oczywiście wymagane były również punkty w innych rozwiązaniach.

 -1
Author: AndroidMechanic - Viral Patel,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-09-28 13:07:05

Spróbuj zmienić hosta, to jest nowy, mam taką konfigurację mozilla thunderbird

Host = "smtp.googlemail.com"

That work for me

 -5
Author: patogalarzar,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-12-08 09:10:30