Heim > PHP-Framework > Laravel > Hauptteil

Wissen Sie, wie Laravel eine E-Mail sendet?

藏色散人
Freigeben: 2020-10-19 14:25:18
nach vorne
2211 Leute haben es durchsucht

eingeleitet: „Wissen Sie, wie Laravel eine E-Mail ausgibt?“ 》Ich hoffe, es wird Freunden in Not helfen!

Einführung

Im vorherigen Kapitel haben wir ein durchdachtes Formular und eine vollständige Datenüberprüfung für den E-Mail-Versand vorbereitet. In diesem Artikel erklären wir daher, wie man eine E-Mail innerhalb von Laravel sendet.

E-Mail ist sehr praktisch, bitte missbrauchen Sie es nicht.

Codierungszeit

laravel integriert die beliebte und leistungsstarke SwiftMailer-Bibliothek, die die zugrunde liegende Logik kapselt, die zum Versenden von E-Mails für uns erforderlich ist, sodass wir uns nur auf die Sendelogik konzentrieren müssen, wie man den Inhalt vorbereitet die E-Mail Das ist es.

Die Standard-SMTP-Parameter in der Laravel-Konfigurationsdatei

config/mail.php

:

'smtp' => [
    'transport' => 'smtp',
    'host' => env('MAIL_HOST', 'smtp.mailgun.org'),
    'port' => env('MAIL_PORT', 587),
    'encryption' => env('MAIL_ENCRYPTION', 'tls'),
    'username' => env('MAIL_USERNAME'),
    'password' => env('MAIL_PASSWORD'),
    'timeout' => null,
    'auth_mode' => null,],
Nach dem Login kopieren

werden hauptsächlich zur Angabe des Übertragungsprotokolls, der Hostadresse, der Portnummer, der Verschlüsselungsmethode, des Benutzernamens und des Passworts usw. verwendet. Aus Gründen im Ausland wird standardmäßig Mailgun als Mailserver verwendet, um zu vermeiden, dass E-Mails, die von unserem eigenen Mailserver gesendet werden, als Spam identifiziert werden und Geschäftsprozesse beeinträchtigen.

Registrieren Sie ein Konto mit kostenlosem Kontingent, das Ihnen jeden Monat die entsprechende Anzahl an E-Mails senden kann. Nach der Bewerbung können Sie den folgenden Code in der Konfigurationsdatei

app/services.php

sehen:

'mailgun' => [
    'domain' => env('MAILGUN_DOMAIN'),
    'secret' => env('MAILGUN_SECRET'),
    'endpoint' => env('MAILGUN_ENDPOINT', 'api.mailgun.net'),],
Nach dem Login kopieren

Wir deklarieren einfach die entsprechenden Variablen in der .env-Datei.

E-Mail-Versandklasse

zentralisiert die E-Mail-Versandlogik. Wir müssen die eingehenden Daten rendern und sie dann per E-Mail an den Benutzer senden.

Verwenden Sie den folgenden Befehl, um die E-Mail-Verarbeitungsklasse zu generieren:
php artisan make:mail ContactEmail
Nach dem Login kopieren
Die generierte Datei befindet sich unter

app/Mail/ContactEmail.php

und der anfängliche Inhalt lautet wie folgt:

namespace App\Mail;

use Illuminate\Bus\Queueable;
use Illuminate\Mail\Mailable;
use Illuminate\Queue\SerializesModels;
use Illuminate\Contracts\Queue\ShouldQueue;

class ContactEmail extends Mailable
{
    use Queueable, SerializesModels;
    public function __construct()
    {
        //
    }
    public function build()
    {
        return $this->view('view.name');
    }
}
Nach dem Login kopieren

Bei der Instanziierung müssen wir empfangen Einige Daten:

public $contact;
public function __construct($contact){
    $this->contact = $contact;}
Nach dem Login kopieren

give Das Versenden einer benutzerfreundlichen E-Mail kann die Benutzerbindung erheblich erhöhen. Bevor wir also die Ansicht zum Rendern der E-Mail verwenden:

public function build(){
    return $this->to(config('mail.from.address'))->subject('HackerPair Inquiry')->view('emails.contact');}
Nach dem Login kopieren
Erstellen Sie die Ansichtsdatei

resources/views/emails/contact.blade.php

und schreiben Sie kurz die Datendarstellung und das Format:

Hi,
A Laravel user has sent you a message.
Name: {{ $contact['name'] }}
E-mail: {{ $contact['email'] }}
Message: {{ $contact['msg'] }}
Nach dem Login kopieren

Senden Sie die E-Mail

In Im vorherigen Artikel haben wir die Variable $contact verwendet, um Feldwerte aus dem Anforderungshauptteil zu empfangen. Im vorherigen Abschnitt haben wir die Vorlage für den E-Mail-Versand vorbereitet. „Alles ist bereit, wir brauchen nur noch den Ostwind.“

Denken Sie daran,

AppMailContactEmail

in die Kopfzeile einzufügen, bevor Sie es verwenden:

Mail::to(config('mail.support.address'))->send(new ContactEmail($contact));
Nach dem Login kopieren

Ja, nur eine Zeile!

Am Ende geschrieben

Insgesamt ist es noch sehr einfach und alle Funktionen werden mit Hilfe von Drittanbietern implementiert.

Zum Beispiel verfügt der Mailserver über viele anpassbare Methoden. Es gibt auch einen E-Mail-Versandkurs, mit dem Sie viele individuelle Vorlagen erstellen können Das sind alles detaillierte Aspekte.

Das obige ist der detaillierte Inhalt vonWissen Sie, wie Laravel eine E-Mail sendet?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:learnku.com
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage