2016-09-10 4 views
1

Ich habe einige Veränderungen in meinem Laravel app machen reine Textversion an meine E-Mails automatisch hinzuzufügen .. Ich mache das durch die BibliothekLaravel Überschreibung Mail automatisch hinzufügen Textversion

https://packagist.org/packages/html2text/html2text mit

ich würde die Textversion erhalten, indem

Lauf
\Html2Text\Html2Text::convert($content) 

Jetzt möchte ich laravels Mailable.php buildView() -Funktion automatisch zu erzeugen, um den Text zu überschreiben. Meine Frage ist: Wie man es richtig überschreibt? Wo kann ich es neu deklarieren?

Antwort

1

Der Mailer durch den Mailer Service Provider definiert ist, können Sie die Registrierung in Ihrem config/app.php unter 'providers' sehen, wo Sie dies sehen:

\Illuminate\Mail\MailServiceProvider::class, 

Also, alles, was Sie tun müssen, ist entfernen die MailServiceProvider-Registrierung und erstellen Sie Ihren eigenen Provider basierend auf diesem mit Ihren Änderungen und registrieren Sie Ihre.

Stellen Sie sicher, dass Sie den Illuminate\Contracts\Mail\Mailer Vertrag implementieren.

Aber Sie müssen nicht!

Der Mailer, der mit Laravel kommt, unterstützt bereits das Senden der HTML- und Plain-Versionen Ihrer E-Mail.

Das erste Argument der Mailer::send() Methode ist @param string|array $view, wo Sie in der Regel den Namen der Ansicht der HTML-Version Ihrer E-Mail senden, aber Sie können stattdessen ein Array wie folgt senden ...

Mailer::send([ 
    'html' => 'my-mails.notification-in-html', 
    'text' => 'my-mails.notification-in-text', 
    ], $data, $callback); 

Wo könnte man Definieren Sie sogar einen anderen Text und entfernen Sie Dinge, die Sie nicht in Ihre Klartextversion einfügen würden, oder passen Sie eine andere Signatur an, die auf einer einfachen Ebene gut aussieht, und formatieren Sie die Dinge auch anders.

Für weitere Informationen können Sie die parseView() in Illuminate\Mail\Mailer Klasse betrachten. So

, da haben Sie es, 2 Möglichkeiten:

  • Ihre eigene Mailer erstellen und registrieren Sie es anstelle des Standard ein
  • oder rufen Sie einfach den Mailer mit einer Reihe von Ansichten.