web-dev-qa-db-ja.com

ビューを使用せずにLaravel 4のメールを送信するにはどうすればよいですか?

Laravel 4 を使用してサイトを開発していますが、テスト中にアドホックメールを送信したいのですが、メールを送信する唯一の方法はビューを経由することのようです。

このようなことをすることは可能ですか?

Mail::queue('This is the body of my email', $data, function($message)
{
    $message->to('[email protected]', 'John Smith')->subject('This is my subject');
});
19
Jason Thuli

Laravelメール:ビューの代わりに文字列を渡す の回答で述べたように、これを行うことができます(Jarekの回答からコードをそのままコピー):

Mail::send([], [], function ($message) {
  $message->to(..)
    ->subject(..)
    // here comes what you want
    ->setBody('Hi, welcome user!');
});

空のビューを使用することもできます。これをapp/views/email/blank.blade.phpに入れます。

{{{ $msg }}}

何もありません。次に、コーディングします

Mail::queue('email.blank', array('msg' => 'This is the body of my email'), function($message)
{
    $message->to('[email protected]', 'John Smith')->subject('This is my subject');
});

これにより、アプリケーションごとに異なるビューを作成しなくても、アプリケーションのさまざまな部分からカスタムの空白の電子メールを送信できます。

38
Laurence

テキストだけを送信したい場合は、includedメソッドを使用できます。

Mail::raw('Message text', function($message) {
    $message->from('[email protected]', 'Laravel');
    $message->to('[email protected]')->cc('[email protected]');
});
13
Aron Balog

いいえ、そのままではLaravel Mailの場合、ビューが空であってもビューを渡す必要があります。この機能を有効にするには、独自のメーラーを作成する必要があります。

0
TunaMaxx