Senden Sie E -Mails in Laravel mit SMTP

Senden Sie E -Mails in Laravel mit SMTP
Das Senden einer E -Mail ist für jede Webanwendung eine häufigste Anforderung. Einige allgemeine Verwendungen des Sendens von E -Mails umfassen die Überprüfung der Benutzerregistrierung, das Abholen von Feedback von Benutzern, die Bereitstellung von Optionen zum Kontaktieren des Site -Administrators usw. Das Laravel -Framework enthält mehrere Pakete, um E -Mails aus dem Laravel -Projekt zu senden. SMTP-, Mailgun-, Poststempel- und Amazon -SES werden in Laravel zum Senden einfacher, Transaktions- und Bulk -E -Mails verwendet. Laravel verfügt. Dieses Tutorial zeigt Ihnen, wie Sie eine einfache E -Mail mit SMTP senden.

SMTP -Setup und Konfiguration

Öffne das .env Datei aus dem Root -Ordner des Laravel -Projekts und richten Sie die Konfiguration gemäß Ihrem Google Mail -Konto ein. Sie müssen das aktivieren “Weniger sichere AppOption Ihres Google Mail -Kontos zum Senden einer E -Mail mit dem Google Mail SMTP -Server.

Mail_mailer = SMTP
Mail_host = SMTP.Google Mail.com
Mail_port = 465
Mail_username = your_email_address
Mail_password = your_password
Mail_encryption = ssl

***Notiz:

Sie können den SMTP -Authentifizierungsfehler erhalten, während Sie E -Mails mit dem SMTP -Google Mail -Konto -Server senden. Öffne das StreamBuffer.Php Datei aus dem folgenden Ort.

/var/www/html/laravelPro/per Anbieter/Swiftmailer/Swiftmailer/
lib/klassen/swift/transport/streambuffer.Php

Linie finden und ersetzen 259 Mit der folgenden Zeile, um den Google Mail SMTP -Server zu authentifizieren.

$ options ['ssl'] = array ('verify_peer' => false, 'verify_peer_name' => false,
'degly_self_signed' => true);

Senden von E -Mails mit SMTP

Führen Sie die folgenden Schritte aus, um E -Mails mit dem Kontaktformular zu senden, indem Sie einen Controller, eine Ansicht und eine E -Mail -Klasse erstellen.

Schritte:

Führen Sie den folgenden Befehl vom Terminal aus, um zu erstellen E -MailController So zeigen Sie das Kontaktformular an und senden Sie eine E -Mail mit der Laravel -Mail -Klasse.

$ Php Artisan Make: Controller EmailController

Führen Sie den folgenden Befehl aus, um eine E -Mail -Klasse mit dem Namen zu erstellen Email schicken. Dies erstellt die Klasse unter dem App \ Mail Ordner.

$ Php Artisan Make: Mail -Sendenemail

Erstellen Sie eine Ansichtsdatei mit dem Namen E -MailSend.Klinge.Php mit dem folgenden Code, um das Kontaktformular anzuzeigen.




Kontaktieren Sie uns Formular












Kontaktiere uns




@if (count ($ fehler)> 0)



    @foreach ($ fehler-> alle () als $ error)
  • $ error

  • @endforach


@endif
@if ($ message = session :: get ('Erfolg'))


$ message

@endif



csrf_field ()


















Offen E -MailController und ändern Sie den Code mit dem folgenden Code. Der Post Fassade und Email schicken Postklassen werden zu Beginn der Datei importiert. Hier das Index() Die Methode lädt die Ansichtsdatei im Browser, um das Kontaktformular anzuzeigen. Nach dem Einreichen des Formulars die schicken() Methode wird aufgerufen. Diese Methode validiert das Formular unter Verwendung der Validierungsregeln. Der $ Daten Array wird verwendet, um die Werte des Name Und Nachricht Felder in die Email schicken Klasse. Als nächstes wird die E -Mail mit dem gesendet Post Fassade. Sie müssen eine gültige E -Mail -Adresse des Empfängers in der festlegen Zu() Funktion vor der Ausführung des Code. Wenn die E -Mail erfolgreich gesendet wird, wird eine Erfolgsnachricht gedruckt.

Namespace App \ http \ Controller;
Verwenden Sie Illuminate \ http \ request;
Verwenden Sie Illuminate \ Support \ Fassades \ Mail;
Verwenden Sie App \ Mail \ sendingemail;
Klasse EmailController erweitert den Controller

Funktionsindex ()

Rückgabeansicht ('E -MailSend');

Funktion senden (Anfrage $ Anfrage)

$ this-> validate ($ request, [
'Name' => 'Erforderlich',
'E -Mail' => 'Erforderlich | E -Mail' ',
'Nachricht' => 'Erforderlich'
]);
$ Data = Array (Array (
'name' => $ request-> name,
'meldung' => $ request-> meldung
);
Mail :: an ('Empfänger-E-Mail-Adresse')-> Senden (neu Sendingemail ($ Data));
Rückkehr zurück ()-> mit ('Erfolg', 'Danke, dass du uns kontaktiert hast!');

Öffne das Email schicken Klasse und ändern Sie den Code mit dem folgenden Code. Das E -Mail -Betreff ist in der definiert bauen() Methode und die E-Mail-Vorlage Die Ansicht wird verwendet, um den E -Mail -Inhalt zu formatieren, der im nächsten Schritt erstellt wurde. Die Werte, die aus dem übergeben wurden E -MailController werden in der gespeichert $ E -Mail Objekt und werden in die übergeben E-Mail-Vorlage Sicht.

Namespace App \ Mail;
Verwenden Sie Illuminate \ Bus \ Queueable;
Verwenden Sie Illuminate \ Contracts \ Queue \ SollteQueue;
Verwenden Sie Illuminate \ Mail \ Mailable;
Verwenden Sie Illuminate \ Queue \ SerializesModels;
Klasse Sendingemail erweitert mailableable

Verwenden Sie anhörbar, serializesModels;
/**
* Erstellen Sie eine neue Nachrichteninstanz.
*
* @return void
*/
öffentliche E -Mails;
Öffentliche Funktion __construct ($ E -Mails)

$ this-> E-Mails = $ E-Mails;

/**
* Erstellen Sie die Nachricht.S
*
* @return $ this
*/
öffentliche Funktion Build ()

$ this-> Betreff zurückgeben ('Nachricht vom Besucher')
-> anzeigen ('E -Mail_Template')
-> mit ('E-Mails', $ this-> E-Mails);

Erstellen Sie die genannte Vorlagenansichtsdatei E-Mail-Vorlage.Klinge.Php Mit dem folgenden Code, um die formatierte E -Mail an den Absender zu senden. Die Werte, die aus dem übergeben wurden Email schicken Klasse werden in dieser Vorlage verwendet.

Hallo,
Ich bin $ E -Mails ['Name']


In meiner Abfrage geht es um das folgende Thema:


$ E -Mails ['Nachricht'].


Es wird hilfreich sein, wenn Sie mir bald eine Antwort geben.Danke.

Öffnen Sie nun die Netz.Php Datei und fügen Sie den folgenden Routencode hinzu, um das Kontaktformular zu öffnen und die E -Mail zu senden.

Route :: get ('/contact', 'EmailController@index');
Route :: post ('/sendemail/send', 'EmailController@send');

Führen Sie die folgende URL vom Browser aus, um das Kontaktformular zu laden.

http: // localhost/laravelPro/public/contact

Füllen Sie das Formular aus und klicken Sie auf die Nachricht senden Taste, um den Inhalt des Formulars an die zu senden schicken() Methode der E -MailController Klasse.

Wenn die E -Mail erfolgreich gesendet wird, erhalten Sie die Erfolgsnachricht, wie im folgenden Bild gezeigt.

Öffnen Sie nun das Google Mail -Konto, mit dem Sie eine E -Mail in der gesendet haben schicken() Methode der E -MailController Klasse. Wenn Sie die E -Mail öffnen, erhalten Sie den folgenden E -Mail -Inhalt, der mit einem generiert wird E-Mail-Vorlage Datei ansehen.

Videoanleitung

Abschluss

Im Laravel -Framework gibt es mehrere Möglichkeiten, um eine E -Mail zu senden. Der einfachste und einfachste Weg, E -Mails in Laravel zu senden, wird in diesem Tutorial angezeigt. Wenn Sie ein Google Mail -Konto haben, können Sie problemlos eine E -Mail senden, indem Sie die in diesem Tutorial angezeigten Schritte befolgen. Der Google Mail SMTP -Server wird hier zum Senden einer E -Mail verwendet, und die E -Mail -Sendungsaufgabe wird getestet, indem der Code vom lokalen Server ausgeführt wird. Dieses Tutorial zeigt HTML-formatierte E-Mail-Senden nur, um Aufgaben zu senden. Sie können auch andere Aufgaben wie Dateianhang, Absendername usw. ausführen., durch Verwendung anderer Methoden der Post Klasse.