Wysyłanie wiadomości e-mail przez serwer SMTP Gmaila w Laravel
Czy chcesz używać serwera SMTP Gmaila do wysyłania e-maili w Laravel? Czasami Twój serwer nie wysyła wiadomości e-mail ze względu na swoje ograniczenia lub błędną konfigurację. W takich sytuacjach możesz użyć serwera SMTP do wysyłania e-maili. W tym artykule omówimy sposób wysyłania wiadomości e-mail za pomocą serwera SMTP Gmaila w Laravel.
Korzystając z serwera SMTP, Twoje e-maile nie trafią do folderu spamu. Ogólnie rzecz biorąc, będzie on traktowany jako prawdziwy e-mail i trafi do skrzynki odbiorczej użytkownika.
Kolejną zaletą korzystania z serwera SMTP jest możliwość wysyłania wiadomości e-mail również z serwera lokalnego. Pomocne będzie przetestowanie funkcjonalności poczty e-mail na samym serwerze lokalnym.
Konfiguracja serwera SMTP Gmaila w Laravel
Laravel używa config/mail.php
pliku do przechowywania szczegółów związanych z dostawcami poczty e-mail. Ten plik zawiera ustawienia takie jak MAIL_HOST, MAIL_PORT, MAIL_ENCRYPTION, itp. Użytkownik powinien podać te informacje, które będą wykorzystywane przez Laravel i wysyłanie wiadomości e-mail.
Aby dodać te informacje, nie musisz edytować pliku config/mail.php. Zamiast tego powinieneś przechowywać te szczegóły w .env
pliku.
Otwórz swój .env
plik, który znajduje się w katalogu głównym, a poniżej znajdziesz kod związany z ustawieniami poczty e-mail.
MAIL_MAILER=smtp
MAIL_HOST=mailtrap.io
MAIL_PORT=2525
MAIL_USERNAME=null
MAIL_PASSWORD=null
MAIL_ENCRYPTION=null
Edytuj powyższe szczegóły w następujący sposób.
MAIL_MAILER=smtp
MAIL_HOST=smtp.googlemail.com
MAIL_PORT=465
MAIL_USERNAME=GMAIL_USERNAME
MAIL_PASSWORD=GMAIL_PASSWORD
MAIL_ENCRYPTION=ssl
Tutaj ustawiłem sterownik jako smtp, host dla Gmaila jako smtp.googlemail.com, port SMTP dla Gmaila jako 465, a metodę szyfrowania na ssl. Pamiętaj, aby zastąpić symbole zastępcze GMAIL_USERNAME, GMAIL_PASSWORD swoją rzeczywistą nazwą użytkownika i hasłem Gmail.
Aby korzystać z serwera SMTP Gmaila, musisz zmienić niektóre ustawienia na swoim koncie Google. Zaloguj się na swoje konto Google i kliknij „Konto". Gdy znajdziesz się na stronie „Konto”, kliknij „Bezpieczeństwo”. Przewiń w dół, a znajdziesz ustawienia „Mniej bezpieczny dostęp do aplikacji”. Ustaw go na ON.
Kod do wysyłania wiadomości e-mail w Laravel
Na tym etapie zakończysz wszystkie podstawowe ustawienia. Teraz musisz napisać kod Laravela, który wyśle e-mail.
W tym samouczku do pisania kodu użyję klasy „Mail”. Użytkownik może również napisać kod za pomocą Laravel Mailable. Nie zrobi to żadnej różnicy. W obu przypadkach Laravel używa w tle serwera SMTP Gmaila.
Kiedy użyjesz klasy ‘Mail’, twój kod będzie wyglądał tak, jak napisano poniżej.
$to_name = 'TO_NAME';
$to_email = 'TO_EMAIL_ADDRESS';
$data = array('name'=>"Sam Jose", "body" => "Test mail");
Mail::send('emails.mail', $data, function($message) use ($to_name, $to_email) {
$message->to($to_email, $to_name)
->subject('Artisans Web Testing Mail');
$message->from('FROM_EMAIL_ADDRESS','Artisans Web');
});
W powyższym kodzie używam widoku „emails.mail”. Oznacza to, że musisz utworzyć folder i plik jako resources->views->emails->mail.blade.php
.
Twój mail.blade.php
testament zawiera następujący kod.
Hi <strong>{{ $name }}</strong>,
<p>{{ $body }}</p>
Otóż to! Teraz w tle Laravel automatycznie użyje serwera SMTP Gmaila i wyśle Twoje e-maile.
Powiązane artykuły
- Testowanie poczty e-mail Laravel: pułapka pocztowa a inne opcje
- Jak rejestrować zapytanie w Laravel
- Jak zainstalować i używać CKEditor w Laravel?