Benutzer-Werkzeuge

Webseiten-Werkzeuge


laravel:mail

E-Mails mit Laravel versenden

Um E-Mails mit Laravel zu verwenden können ebenfalls, wie für die Erstellung der Webseiten, blade-Templates verwendet werden.

Voraussetzung

In der Konfigurationsdatei „.env“ müssen die Mail-Variablen gesetzt werden:

MAIL_DRIVER=smtp
MAIL_HOST=smtp.mailtrap.io
MAIL_PORT=2525
MAIL_USERNAME=null
MAIL_PASSWORD=null
MAIL_ENCRYPTION=null

Beispiel für die Erstellung einer E-Mail-Vorlage

Mit Artisan kann nun eine Mail-Klasse im Verzeichns „app/Mail“ angelegt werden:

php artisan make:mail Auszahlungswunsch

Die Methode „build“ in der neuen Mail-Klasse kann je nach Anwendungsfall ergänzt werden. Um Variablen später im Blade-Template einsetzen zu können müssen Sie in der Klasse als „public“ deklariert werden:

class Auszahlungswunsch extends Mailable
{
    use Queueable, SerializesModels;
 
    public $vorname = '';
    public $nachname = '';
 
    public function build()
    {
        $mitspieler     = HomeController::getMitspieler();
        $this->vorname  = $mitspieler->Vorname;
        $this->nachname = $mitspieler->Nachname;
        $this->subject  = 'Auszahlungswunsch vom Mitspieler';
        $this->from( 'absender@meine-domain.de', 'Absendername');
 
        return $this->view('mails.auszahlungswunsch');
    }
}

Als nächstes wird das blade-Template (z. B. „auszahlungswunsch“ im Unterverzeichns view/mails„) angelegt:

<p>Guten Tag,</p>
<p>Ihr Mitspieler {{ $vorname }} {{ $nachname }} möchte gerne sein Konto ausgezahlt bekommen</p>
<p>Diese E-Mail wurde automatisch erstellt.</p>

Jetzt kann die neue E-Mail-Vorlage in einem Controller aufgerufen und benutzt werden:

    public function auszahlungswunsch( Request $request )
    {
        $email = new Auszahlungswunsch();
        Mail::to( 'empfaenger@domain.de' ) -> send( $email );
        return $this->view();
    }
laravel/mail.txt · Zuletzt geändert: 2020/06/06 16:38 von webproducer