Próbuję wysłać wiadomość e-mail za pośrednictwem serwera SMTP GMail ze strony PHP, ale otrzymuję ten błąd:
błąd uwierzytelnienia [SMTP: serwer SMTP nie obsługuje uwierzytelniania (kod: 250, odpowiedź: mx.google.com do usług, [98.117.99.235] SIZE 35651584 8BITMIME STARTTLS ENHANCEDSTATUSCODES PIPELINING)]
Czy ktoś może pomóc? Oto mój kod:
<?php
require_once "Mail.php";
$from = "Sandra Sender <[email protected]>";
$to = "Ramona Recipient <[email protected]>";
$subject = "Hi!";
$body = "Hi,\n\nHow are you?";
$host = "smtp.gmail.com";
$port = "587";
$username = "[email protected]";
$password = "testtest";
$headers = array ('From' => $from,
'To' => $to,
'Subject' => $subject);
$smtp = Mail::factory('smtp',
array ('host' => $host,
'port' => $port,
'auth' => true,
'username' => $username,
'password' => $password));
$mail = $smtp->send($to, $headers, $body);
if (PEAR::isError($mail)) {
echo("<p>" . $mail->getMessage() . "</p>");
} else {
echo("<p>Message successfully sent!</p>");
}
?>
Mail.php
?? skąd mogę pobrać ten plik?myaccount
nazwę użytkownika.Korzystając z aplikacji Swift mailer , dość łatwo jest wysłać wiadomość e-mail za pomocą poświadczeń Gmaila:
źródło
Wygląda na to, że Twój kod nie używa TLS (SSL), który jest niezbędny do dostarczania poczty do Google (i korzystania z portów 465 lub 587) .
Możesz to zrobić, ustawiając
$host = "ssl://smtp.gmail.com";
Twój kod wygląda podejrzanie jak ten przykład, który odnosi się do ssl: // w schemacie nazwy hosta.
źródło
Nie polecam Pear Mail. Nie był aktualizowany od 2010 roku. Przeczytaj także pliki źródłowe; kod źródłowy jest prawie nieaktualny, napisany w stylu PHP 4 i opublikowano wiele błędów / błędów (Google it). Używam Swift Mailer.
Swift Mailer integruje się z dowolną aplikacją internetową napisaną w PHP 5, oferując elastyczne i eleganckie podejście obiektowe do wysyłania wiadomości e-mail z wieloma funkcjami.
Jest to bezpłatne i otwarte źródło, które możesz pobrać Swift Mailer i przesłać na swój serwer. (Lista funkcji jest kopiowana ze strony właściciela).
Działający przykład Gmail SSL / SMTP i Swift Mailer jest tutaj ...
Mam nadzieję, że to pomoże. Miłego kodowania ... :)
źródło
źródło
SwiftMailer może wysyłać wiadomości e-mail za pomocą zewnętrznych serwerów.
oto przykład pokazujący, jak korzystać z serwera Gmaila:
źródło
Kod wymieniony w pytaniu wymaga dwóch zmian
Port 465 jest wymagany do połączenia SSL.
źródło
Wysyłanie poczty za pomocą biblioteki phpMailer za pośrednictwem Gmaila Prosimy o przesyłanie plików bibliotek z Github
źródło
Też miałem ten problem. Ustawiłem prawidłowe ustawienia i włączyłem mniej bezpieczne aplikacje, ale nadal nie działało. W końcu włączyłem https://accounts.google.com/UnlockCaptcha i zadziałało to dla mnie. Mam nadzieję, że to komuś pomoże.
źródło
Gmail wymaga portu 465, a także kodu z phpmailer :)
źródło
Aby zainstalować PE. Mail.php w Ubuntu, uruchom następujący zestaw poleceń:
źródło
Mam rozwiązanie dla kont GSuite, które nie ma przyrostka „@ gmail.com”. Myślę też, że będzie działać na kontach GSuite z @ gmail.com, ale nie próbowałem tego. Najpierw powinieneś mieć uprawnienia do zmiany opcji „allos¿w mniej bezpieczna aplikacja” dla swojego konta GSuite. Jeśli masz uprawnienia (możesz sprawdzić w ustawieniach konta -> bezpieczeństwo), musisz dezaktywować „uwierzytelnianie dwustopniowe” i przejść na koniec strony i ustawić „tak”, aby zezwolić na mniej bezpieczne aplikacje. To wszystko. Jeśli nie masz uprawnień do zmiany tych opcji, rozwiązanie dla tego wątku nie będzie działać. Sprawdź https://support.google.com/a/answer/6260879?hl=pl, aby wprowadzić zmiany w opcji „zezwalaj mniej ...”.
źródło
Wypróbowałem sugestię @shasi kanth, ale się nie udało. Przeczytałem dokumentację i wprowadzono niewiele zmian. Udało mi się więc wysłać pocztę przez Gmaila za pomocą tego kodu, gdzie dostawca / autoload.php jest dostarczany przez kompozytora z kompozytorem wymagają „swiftmailer / swiftmailer: ^ 6.0”:
źródło
Zestaw
Sprawdź także, czy port 25 działa.
źródło