2016-09-10 5 views
1

私は自動的に私の電子メールをプレーンテキストバージョンを追加するために、私のLaravelアプリでいくつかの変更を作っているを追加する..私はやってそのライブラリLaravelオーバーライドメールが自動的にプレーンテキスト版

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

を使用して、

私は今、私はautomaticalyテキストを生成するlaravels Mailable.php buildView()関数をオーバーライドしたい

\Html2Text\Html2Text::convert($content) 

を実行して、テキストバージョンになるだろう。私の質問は、それを適切に上書きする方法です。どこで再宣言できますか?あなたがする必要があるすべては、削除されているので、

\Illuminate\Mail\MailServiceProvider::class, 

:メーラーは、メーラーサービスプロバイダによって定義され

答えて

1

、あなたはこれを見する場所、'providers'の下であなたのconfig/app.phpでの登録を見ることができますMailServiceProviderの登録を行い、それに基づいて独自のプロバイダを作成し、変更して登録します。

Illuminate\Contracts\Mail\Mailer契約を必ず実行してください。

しかし、あなたがする必要はありません! Laravelが付属しています

メーラーは、すでにHTMLや電子メールの平原バージョンの送信をサポート。

Mailer::send()メソッドの最初の引数はどこでし

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

...あなたの代わりにこのような配列を送信することができ、あなたは通常、電子メールのHTML版のビュー名を送信@param string|array $view、ですが、別のテキストを定義してプレーンテキストバージョンに入れないものを削除したり、プレーンテキストで見栄えの良い別のシグネチャを調整したり、さまざまな書式を設定することもできます。あなたはIlluminate\Mail\MailerクラスでparseView()を見ることができます詳細については

だから、そこにあなたはそれを持って、2つのオプション:

  • は、あなた自身のメーラーを作成し、デフォルトの1
  • か、単にビューの配列とメーラーを呼び出すのではなく、それを登録します。
関連する問題