くわこのpermission denied.

WEBエンジニアの僕がぶつかった技術的な問題や発見

【Laravel】Laravelのmailでtoなどに名前がつかない

Laravelのmailでtoなどに名前がつかない

Laravelでメールを送るときに、toにアドレスと名前を指定するんですが、いくら送っても名前の部分が表示されなかったので調べました⬇️がコード($data[’to_name’]や$data[‘cc_name’]、$data[‘bcc_name’]で指定した名前が送信先で表示されない、というバグです。)

          Mail::send($data['view_file'], $data['view_data'], function($message)use($data){

                $message->from($data['from_address'], $data['from_name'])

                    ->to($data['to_address'], $data['to_name'])

                    ->cc($data['cc_address'], $data['cc_name'])

                    ->bcc($data['bcc_address'], $data['bcc_name'])                                                                      

                    ->subject($data['subject']);

            });  

で、Laravelのコードを追っていたところ、アドレスに対して名前をつけて送信するには第一引数(⬆️でいう$data[‘to_address’]や$data[‘cc_address’]、$data[‘bcc_address’]をarrayではなく、stringで渡す必要があるみたい。

 

なので、複数のtoに対してnameを表示した状態で送りたい場合は

   ->to(‘hoge@hoge’, ‘HOGEさん’)

   ->to(‘page@page’, ‘PAGEさん’)

 

みたいな形にするといいみたいです。