Heim  >  Artikel  >  PHP-Framework  >  Laravel – E-Mail senden

Laravel – E-Mail senden

WBOY
WBOYOriginal
2024-08-27 10:50:20453Durchsuche

Laravel nutzt die kostenlose, funktionsreiche Bibliothek SwiftMailer zum Versenden von E-Mails. Mit der Bibliotheksfunktion können wir ganz einfach und ohne großen Aufwand E-Mails versenden. Die E-Mail-Vorlagen werden auf die gleiche Weise wie Ansichten geladen, was bedeutet, dass Sie die Blade-Syntax verwenden und Daten in Ihre Vorlagen einfügen können.

Die folgende Tabelle zeigt die Syntax und Attribute der send-Funktion −

Syntax void send(string|array $view, array $data, Closure|string $callback)
Parameter
  • $view(string|array) – Name der Ansicht, die die E-Mail-Nachricht enthält

  • $data(array) – Array von Daten, die an die Ansicht übergeben werden sollen

  • $callback – ein Abschlussrückruf, der eine Nachrichteninstanz empfängt, sodass Sie die Empfänger, den Betreff und andere Aspekte der E-Mail-Nachricht anpassen können

Rückgaben nichts
Beschreibung Sendet E-Mail.

Im dritten Argument hat der $callback-Abschluss eine Nachrichteninstanz empfangen und mit dieser Instanz können wir auch die folgenden Funktionen aufrufen und die Nachricht wie unten gezeigt ändern.

  • $message → subject('Willkommen beim Tutorials Point');
  • $message → from('email@example.com', 'Mr. Beispiel');
  • $message → to('email@example.com', 'Mr. Beispiel');

Zu den weniger gebräuchlichen Methoden gehören −

  • $message → sender('email@example.com', 'Mr. Beispiel');
  • $message → returnPath('email@example.com');
  • $message → cc('email@example.com', 'Mr. Beispiel');
  • $message → bcc('email@example.com', 'Mr. Beispiel');
  • $message → ReplyTo('email@example.com', 'Mr. Beispiel');
  • $message → priorität(2);

Um Dateien anzuhängen oder einzubetten, können Sie die folgenden Methoden verwenden −

  • $message → attachment('path/to/attachment.txt');
  • $message → embed('path/to/attachment.jpg');

Mail kann als HTML oder Text gesendet werden. Sie können im ersten Argument die Art der E-Mail angeben, die Sie senden möchten, indem Sie ein Array wie unten gezeigt übergeben. Der Standardtyp ist HTML. Wenn Sie Nur-Text-Mails senden möchten, verwenden Sie die folgende Syntax.

Syntax

Mail::send([‘text’=>’text.view’], $data, $callback);

In dieser Syntax nimmt das erste Argument ein Array an. Verwenden Sie Text als Schlüsselnamen der Ansicht als Wert des Schlüssels.

Beispiel

Schritt 1 – Wir senden jetzt eine E-Mail vom Gmail-Konto und dafür müssen Sie Ihr Gmail-Konto in der Laravel-Umgebungsdatei - .env-Datei konfigurieren. Aktivieren Sie die Bestätigung in zwei Schritten in Ihrem Gmail-Konto und erstellen Sie ein anwendungsspezifisches Passwort. Anschließend ändern Sie die .env-Parameter wie unten gezeigt.

.env

MAIL_DRIVER = smtp
MAIL_HOST = smtp.gmail.com
MAIL_PORT = 587
MAIL_USERNAME = your-gmail-username
MAIL_PASSWORD = your-application-specific-password
MAIL_ENCRYPTION = tls

Schritt 2 − Nachdem Sie die Datei .env geändert haben, führen Sie die beiden folgenden Befehle aus, um den Cache zu leeren und den Laravel-Server neu zu starten.

php artisan config:cache

Schritt 3 - Erstellen Sie einen Controller namens Laravel – E-Mail senden, indem Sie den folgenden Befehl ausführen.

php artisan make:controller Laravel – E-Mail senden --plain

Schritt 4 − Nach erfolgreicher Ausführung erhalten Sie folgende Ausgabe −

Laravel – E-Mail senden

Schritt 5 − Kopieren Sie den folgenden Code in

app/Http/Controllers/Laravel – E-Mail senden.php Datei.

app/Http/Controllers/Laravel – E-Mail senden.php

<?php

namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Mail;

use App\Http\Requests;
use App\Http\Controllers\Controller;

class Laravel – E-Mail senden extends Controller {
   public function basic_email() {
      $data = array('name'=>"Virat Gandhi");
   
      Mail::send(['text'=>'mail'], $data, function($message) {
         $message->to('abc@gmail.com', 'Tutorials Point')->subject
            ('Laravel Basic Testing Mail');
         $message->from('xyz@gmail.com','Virat Gandhi');
      });
      echo "Basic Email Sent. Check your inbox.";
   }
   public function html_email() {
      $data = array('name'=>"Virat Gandhi");
      Mail::send('mail', $data, function($message) {
         $message->to('abc@gmail.com', 'Tutorials Point')->subject
            ('Laravel HTML Testing Mail');
         $message->from('xyz@gmail.com','Virat Gandhi');
      });
      echo "HTML Email Sent. Check your inbox.";
   }
   public function attachment_email() {
      $data = array('name'=>"Virat Gandhi");
      Mail::send('mail', $data, function($message) {
         $message->to('abc@gmail.com', 'Tutorials Point')->subject
            ('Laravel Testing Mail with Attachment');
         $message->attach('C:\laravel-master\laravel\public\uploads\image.png');
         $message->attach('C:\laravel-master\laravel\public\uploads\test.txt');
         $message->from('xyz@gmail.com','Virat Gandhi');
      });
      echo "Email Sent with attachment. Check your inbox.";
   }
}

Schritt 6 - Kopieren Sie den folgenden Code in die Datei resources/views/mail.blade.php.

resources/views/mail.blade.php

<h1>Hi, {{ $name }}</h1>
l<p>Sending Mail from Laravel.</p>

Schritt 7 − Fügen Sie die folgenden Zeilen in app/Http/routes.php.

hinzu

app/Http/routes.php

Route::get('sendbasicemail','Laravel – E-Mail senden@basic_email');
Route::get('sendhtmlemail','Laravel – E-Mail senden@html_email');
Route::get('sendattachmentemail','Laravel – E-Mail senden@attachment_email');

Schritt 8 – Besuchen Sie die folgende URL, um grundlegende E-Mails zu testen.

http://localhost:8000/sendbasicemail

Schritt 9 − Der Ausgabebildschirm sieht in etwa so aus. Überprüfen Sie Ihren Posteingang, um die grundlegende E-Mail-Ausgabe zu sehen.

Basic Email Sent

Schritt 10 − Besuchen Sie die folgende URL, um die HTML-E-Mail zu testen.

http://localhost:8000/sendhtmlemail

Schritt 11 − Der Ausgabebildschirm sieht in etwa so aus. Überprüfen Sie Ihren Posteingang, um die HTML-E-Mail-Ausgabe zu sehen.

HTML Email

Schritt 12 − Besuchen Sie die folgende URL, um die HTML-E-Mail mit Anhang zu testen.

http://localhost:8000/sendattachmentemail

Schritt 13 − Sie können die folgende Ausgabe sehen

Email Sent

Hinweis − In der Datei Laravel – E-Mail senden.php sollte die E-Mail-Adresse in der From-Methode die E-Mail-Adresse sein, von der aus Sie E-Mail-Adressen senden können. Im Allgemeinen sollte es sich um die auf Ihrem Server konfigurierte E-Mail-Adresse handeln.

Das obige ist der detaillierte Inhalt vonLaravel – E-Mail senden. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Vorheriger Artikel:Laravel – InstallationNächster Artikel:Laravel – Installation