Wyślij e -maile w Laravel za pomocą SMTP

Wyślij e -maile w Laravel za pomocą SMTP
Wysłanie wiadomości e -mail jest powszechnym wymogiem dla każdej aplikacji internetowej. Niektóre ogólne zastosowania wysyłania wiadomości e -mail obejmują weryfikację rejestracji użytkowników, uzyskanie informacji zwrotnej od użytkowników, dostarczanie opcji do skontaktowania się z administratorem witryny itp. Laravel Framework zawiera kilka pakietów do wysyłania wiadomości e -mail z projektu Laravel. SMTP, Mailgun, PostMark i Amazon SES są używane w Laravel do wysyłania prostych, transakcyjnych i masowych e -maili. Laravel ma bibliotekę e-mail o nazwie Swiftmailer, aby wysłać wiadomość e-mail z szablonem e-mailem. Ten samouczek pokazuje, jak wysłać prosty e -mail za pomocą SMTP.

Konfiguracja i konfiguracja SMTP

Otworzyć .Env Plik z folderu głównego projektu Laravel i skonfiguruj konfigurację zgodnie z konto Gmail. Musisz włączyć „Mniej bezpieczna aplikacja„Opcja konta Gmail do wysłania wiadomości e -mail za pomocą serwera Gmail SMTP.

Mail_mailer = SMTP
Mail_host = SMTP.Gmail.com
Mail_port = 465
Mail_username = your_email_adress
Mail_Password = twój_password
Mail_Encryption = SSL

***Notatka:

Możesz otrzymać błąd uwierzytelniania SMTP podczas wysyłania wiadomości e -mail za pomocą serwera konta Gmail SMTP. Otworzyć StreamBuffer.php Plik z następującej lokalizacji.

/var/www/html/laravelpro/vendor/swiftmailer/swiftmailer/
Lib/Classes/Swift/Transport/StreamBuffer.php

Znajdź i wymień linię 259 z następującym wierszem, aby uwierzytelnić serwer Gmail SMTP.

$ Options ['ssl'] = array ('verify_peer' => false, 'verify_peer_name' => false,
„pozwól_self_signed” => true);

Wysyłanie wiadomości e -mail za pomocą SMTP

Wykonaj następujące kroki, aby wysłać wiadomość e -mail za pomocą formularza kontaktowego, tworząc klasę kontrolera, widoku i poczty.

Kroki:

Uruchom następujące polecenie z terminala, aby utworzyć E -mailController Aby wyświetlić formularz kontaktowy i wysłać wiadomość e -mail za pomocą Laravel Mail Class.

$ PHP Artisan Make: kontroler e -mail

Uruchom następujące polecenie, aby utworzyć nazwę pocztową o nazwie wysyłać email. To stworzy klasę w ramach App \ Mail teczka.

$ PHP Artisan Make: Mail SendingEmail

Utwórz plik widoku o nazwie e -mail.ostrze.php z następującym kodem, aby wyświetlić formularz kontaktowy.




Skontaktuj się z nami formularz












Skontaktuj się z nami




@if (count ($ errors)> 0)



    @ForEach ($ errors-> all () jako $ error)
  • $ error

  • @endForeach


@endif
@if ($ message = session :: get („Success”))


$ message

@endif



csrf_field ()


















otwarty E -mailController i zmodyfikuj kod za pomocą następującego kodu. Poczta fasada i wysyłać email Zajęcia pocztowe są importowane na początku pliku. Tutaj indeks() Metoda załaduje plik widoku w przeglądarce, aby wyświetlić formularz kontaktowy. Po przesłaniu formularza, wysłać() Metoda zostanie wywołana. Ta metoda potwierdza formularz za pomocą reguł sprawdzania poprawności. $ Data tablica służy do wysyłania wartości nazwa I wiadomość pola do wysyłać email klasa. Następnie e -mail jest wysyłany za pomocą Poczta fasada. Musisz ustawić prawidłowy adres e -mail odbiornika w Do() funkcja przed wykonaniem kodu. Jeśli wiadomość e -mail wysyła się pomyślnie, wówczas wydrukuje komunikat o sukcesie.

przestrzeń nazw app \ http \ controllers;
Użyj Illuminate \ http \ żądanie;
Użyj Illuminate \ Support \ faceades \ Mail;
Użyj App \ Mail \ SendingEmail;
Klasa e -mail odszedł kontroler

indeks funkcji ()

Return View („e -mail”);

Wyślij funkcję (żądanie $ żądanie)

$ this-> sprawdź (żądanie $, [
„Nazwa” => „Wymagane”,
„e -mail” => „wymagany | e -mail”,
„Wiadomość” => „Wymagane”
]);
$ data = tablica (
„Nazwa” => $ request-> Nazwa,
„Wiadomość” => $ request-> wiadomość
);
Mail :: do („Adres e-mail odbiornika”)-> Wyślij (nowy SendingEMail ($ data));
Return Back ()-> z („sukces”, „Dzięki za skontaktowanie się z nami!');

Otworzyć wysyłać email Zajęć i zmodyfikuj kod za pomocą następującego kodu. Temat e -mail jest zdefiniowany w środku zbudować() Metoda i e -mail_template Widok służy do sformatowania treści e -mail, utworzony w następnym kroku. Wartości przekazane z E -mailController są przechowywane w $ e -mail obiekt i są przekazywane w e -mail_template pogląd.

APPAME APP APP \ Mail;
Użyj Illuminate \ Bus \ Queueble;
Użyj Illuminate \ Contracts \ Queue \ shourqueue;
Użyj Illuminate \ Mail \ Mailable;
Użyj Illuminate \ queue \ serializeModels;
Klasa SendingEMail rozszerza wysyłkę pocztową

Użyj Queue, serializeModels;
/**
* Utwórz nową instancję wiadomości.
*
* @return void
*/
publiczne e -maile $;
Funkcja publiczna __Construct ($ e -mail)

$ this-> e-mail = $ e-mail;

/**
* Zbuduj wiadomość.S
*
* @return $ to
*/
Funkcja publiczna kompilacja ()

zwróć $ this-> temat („Wiadomość od gościa”)
-> Widok ('e -mail_template')
-> z („e-mail”, $ this-> e-maile);

Utwórz nazwany plik widoku szablonu e -mail_template.ostrze.php z następującym kodem, aby wysłać sformatowaną wiadomość e -mail do nadawcy. Wartości przekazane z wysyłać email Klasa jest używana w tym szablonie.

Cześć,
Ja jestem $ e -mail ['nazwa']


Moje zapytanie dotyczy następującego tematu:


$ e -mail ['wiadomość'].


Będzie to pomocne, jeśli wkrótce dasz mi odpowiedź.Dziękuję.

Teraz otwórz sieć.php Złóż i dodaj następujący kod trasy, aby otworzyć formularz kontaktowy i wyślij wiadomość e -mail.

Trasa :: get ('/contact', 'e -mailController@index');
Trasa :: '/sendEmail/send', 'e -mailController@send');

Uruchom następujący adres URL z przeglądarki, aby załadować formularz kontaktowy.

http: // localhost/laravelpro/public/kontakt

Wypełnij formularz i kliknij Wyślij wiadomość przycisk, aby wysłać zawartość formularza do wysłać() Metoda E -mailController klasa.

Jeśli wiadomość e -mail zostanie wysłana pomyślnie, otrzymasz wiadomość sukcesu, jak pokazano na poniższym obrazku.

Teraz otwórz konto Gmail, którego użyłeś do wysłania wiadomości e -mail w wysłać() Metoda E -mailController klasa. Jeśli otworzysz wiadomość e -mail, otrzymasz następującą treść e -mail, wygenerowana za pomocą e -mail_template zobaczyć plik.

Film instruktażowy

Wniosek

W frameworku Laravel istnieje wiele sposobów wysyłania wiadomości e -mail. Najprostszym i najłatwiejszym sposobem wysyłania wiadomości e -mail w Laravel jest pokazany w tym samouczku. Jeśli masz konto Gmail, możesz łatwo wysłać wiadomość e -mail, wykonując kroki pokazane w tym samouczku. Serwer SMTP Gmail jest używany tutaj do wysyłania wiadomości e -mail, a zadanie wysyłania wiadomości e -mail jest testowane przez uruchamianie kodu z serwera lokalnego. Ten samouczek pokazuje, że wysyłanie e-maili z formacją HTML. Możesz także wykonywać inne zadania, takie jak załącznik plików, nazwa nadawcy itp., stosując inne metody Poczta klasa.