laravel

Senden Sie E-Mails in Laravel mit SMTP

Senden Sie E-Mails in Laravel mit SMTP
Das Senden einer E-Mail ist eine häufige Anforderung für jede Webanwendung. Einige allgemeine Verwendungszwecke für das Senden von E-Mails umfassen die Überprüfung der Benutzerregistrierung, das Erhalten von Feedback von Benutzern, das Bereitstellen von Optionen zur Kontaktaufnahme mit dem Site-Administrator usw. Das Laravel-Framework enthält mehrere Pakete zum Versenden von E-Mails aus dem Laravel-Projekt. SMTP, Mailgun, Postmark und Amazon SES werden in Laravel zum Senden einfacher, transaktionaler und Massen-E-Mails verwendet. Laravel verfügt über eine E-Mail-Versandbibliothek namens SwiftMailer, um eine E-Mail mit einer E-Mail-Vorlage zu senden. Dieses Tutorial zeigt Ihnen, wie Sie eine einfache E-Mail mit SMTP senden.

SMTP-Setup und -Konfiguration

Öffne das .env Datei aus dem Stammordner des Laravel-Projekts und richten Sie die Konfiguration entsprechend Ihrem Gmail-Konto ein. Sie müssen die „Weniger sichere App” Option Ihres Gmail-Kontos, um eine E-Mail über den Gmail-SMTP-Server zu senden.

MAIL_MAILER=smtp
MAIL_HOST=smtp.Google Mail.com
MAIL_PORT=465
MAIL_USERNAME=YOUR_EMAIL_ADDRESS
MAIL_PASSWORD=IHR_PASSWORD
MAIL_ENCRYPTION=ssl

***Hinweis:

Möglicherweise erhalten Sie beim Senden von E-Mails über den SMTP-Gmail-Kontoserver den SMTP-Authentifizierungsfehler. Öffne das StreamBuffer.php Datei von folgendem Speicherort.

/var/www/html/laravelpro/vendor/swiftmailer/swiftmailer/
lib/classes/Swift/Transport/StreamBuffer.php

Zeile suchen und ersetzen 259 mit der folgenden Zeile, um den Gmail-SMTP-Server zu authentifizieren.

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

Senden von E-Mails mit SMTP

Führen Sie die folgenden Schritte aus, um E-Mails über das 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-Mail-Controller um das Kontaktformular anzuzeigen und eine E-Mail mit der Laravel-Mail-Klasse zu senden.

$ php Handwerker make:controller EmailController

Führen Sie den folgenden Befehl aus, um eine E-Mail-Klasse namens . zu erstellen Email schicken. Dadurch wird die Klasse unter dem . erstellt App\Mail Mappe.

$ php Handwerker make:mail sendenEmail

Erstellen Sie eine Ansichtsdatei mit dem Namen E-Mail senden.Klinge.php mit folgendem Code um das Kontaktformular anzuzeigen.




Kontaktformular












Kontaktiere uns




@if (count($fehler) > 0)



    @foreach ($errors->all() als $error)
  • $Fehler

  • @endforeach


@endif
@if ($message = Session::get('success'))


$Nachricht

@endif



csrf_field()


















Öffnen E-Mail-Controller und ändern Sie den Code mit dem folgenden Code. Das E-Mail Fassade und Email schicken Mailklassen werden am Anfang der Datei importiert. Hier die Index() -Methode lädt die Ansichtsdatei im Browser, um das Kontaktformular anzuzeigen. Nach dem Absenden des Formulars wird die senden() Methode wird aufgerufen. Diese Methode validiert das Formular mithilfe der Validierungsregeln. Das $daten Array wird verwendet, um die Werte der zu senden Name und Botschaft Felder in die Email schicken Klasse. Als nächstes wird die E-Mail mit dem . gesendet E-Mail Fassade. Sie müssen eine gültige E-Mail-Adresse des Empfängers im zu() Funktion vor dem Ausführen des Codes. Wenn die E-Mail erfolgreich gesendet wurde, wird eine Erfolgsmeldung gedruckt.

Namespace App\Http\Controllers;
Verwenden Sie Illuminate\Http\Request;
verwenden Sie Illuminate\Support\Facades\Mail;
verwenden Sie App\Mail\sendingEmail;
Klasse EmailController erweitert Controller

Funktionsindex()

return view('emailsend');

Funktion send(Request $request)

$this->validate($request, [
'name' => 'erforderlich',
'E-Mail' => 'erforderlich|E-Mail',
'Nachricht' => 'erforderlich'
]);
$data = array(
'name' => $anfrage->name,
'Nachricht' => $Anfrage->Nachricht
);
Mail::to('Empfänger-E-Mail-Adresse')->senden(neue sendendeEmail($data));
return back()->with('success', 'Danke für die Kontaktaufnahme!');

Öffne das Email schicken Klasse und ändern Sie den Code mit dem folgenden Code. Der E-Mail-Betreff ist innerhalb der . definiert bauen() Methode und die E-Mail-Vorlage view wird verwendet, um den im nächsten Schritt erstellten E-Mail-Inhalt zu formatieren. Die von der übergebenen Werte E-Mail-Controller werden im gespeichert $E-Mail Objekt und werden im E-Mail-Vorlage Aussicht.

Namespace App\Mail;
Verwenden Sie Illuminate\Bus\Queueable;
Verwenden Sie Illuminate\Contracts\Queue\ShouldQueue;
verwenden Sie Illuminate\Mail\Mailable;
Verwenden Sie Illuminate\Queue\SerializesModels;
Klasse sendenEmail erweitert Mailable

Verwenden Sie Queueable, SerializesModels;
/**
* Erstellen Sie eine neue Nachrichteninstanz.
*
* @return ungültig
*/
öffentliche E-Mails;
öffentliche Funktion __construct($emails)

$dies->emails = $emails;

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

return $this->subject('Nachricht vom Besucher')
->view('email_template')
->mit('E-Mails', $dies->E-Mails);

Erstellen Sie die Vorlagenansichtsdatei mit dem Namen E-Mail-Vorlage.Klinge.php mit dem folgenden Code, um die formatierte E-Mail an den Absender zu senden. Die von der übergebenen Werte Email schicken Klasse werden in dieser Vorlage verwendet.

Hallo,
ich bin $emails['name']


Meine Anfrage bezieht sich auf folgendes Thema:


$E-Mails['Nachricht'] .


Es wird hilfreich sein, wenn Sie mir bald antworten.Vielen Dank.

Ö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', '[email protected]');
Route::post('/sendemail/send', '[email protected]');

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

http://localhost/laravelpro/public/contact

Füllen Sie das Formular aus und klicken Sie auf Nachricht senden Schaltfläche, um den Inhalt des Formulars an die senden() Methode der E-Mail-Controller Klasse.

Wenn die E-Mail erfolgreich gesendet wurde, erhalten Sie die Erfolgsmeldung, wie in der folgenden Abbildung gezeigt.

Öffnen Sie nun das Gmail-Konto, mit dem Sie eine E-Mail im . gesendet haben senden() Methode der E-Mail-Controller Klasse. Wenn Sie die E-Mail öffnen, erhalten Sie den folgenden E-Mail-Inhalt, der mit einem . generiert wurde E-Mail-Vorlage Datei ansehen.

Videoanleitung

Fazit

Im Laravel-Framework gibt es mehrere Möglichkeiten, eine E-Mail zu senden. Der einfachste und einfachste Weg, E-Mails in Laravel zu senden, wird in diesem Tutorial gezeigt shown. Wenn Sie ein Gmail-Konto haben, können Sie ganz einfach eine E-Mail senden, indem Sie die in diesem Tutorial gezeigten Schritte befolgen. Der Gmail-SMTP-Server wird hier zum Senden einer E-Mail verwendet, und die Aufgabe zum Senden von E-Mails wird durch Ausführen des Codes vom lokalen Server getestet. Dieses Tutorial zeigt nur HTML-formatierte E-Mail-Versandaufgaben. Sie können auch andere Aufgaben ausführen, z. B. Dateianhang, Absendername usw., mit anderen Methoden der E-Mail Klasse.

Beste Befehlszeilenspiele für Linux
Die Befehlszeile ist nicht nur Ihr größter Verbündeter bei der Verwendung von Linux – sie kann auch eine Quelle der Unterhaltung sein, da Sie damit vi...
Beste Gamepad-Mapping-Apps für Linux
Wenn du Spiele unter Linux gerne mit einem Gamepad statt mit einem typischen Tastatur- und Maus-Eingabesystem spielst, gibt es einige nützliche Apps f...
Nützliche Tools für Linux-Spieler
Wenn Sie gerne unter Linux spielen, haben Sie wahrscheinlich Apps und Dienstprogramme wie Wine, Lutris und OBS Studio verwendet, um das Spielerlebnis ...