Laravel Notifications メール通知で改行させる方法 ==== 普通に`line()`で「改行を含む文字列」を追加しても届くメールでは改行が消えている。 ```php public function toMail(object $notifiable): MailMessage { return (new MailMessage) ->line('改行を含む文字列'); } ``` 改行が消える処理がどこにあるか調べると`formatLine()`の最後。 ```php protected function formatLine($line) { if ($line instanceof Htmlable) { return $line; } if (is_array($line)) { return implode(' ', array_map('trim', $line)); } return trim(implode(' ', array_map('trim', preg_split('/\\r\\n|\\r|\\n/', $line ?? '')))); } ``` https://github.com/laravel/framework/blob/8d4eaebc25d4349368d326f5fff80e15a0ffdd1d/src/Illuminate/Notifications/Messages/SimpleMessage.php#L232 入力された`$line`がHtmlableやarrayなら改行が消えないことも分かる。 arrayにすれば簡単に解決。 ```php public function toMail(object $notifiable): MailMessage { return (new MailMessage) ->line(['改行を含む文字列']); } ``` 問い合わせフォームなどで改行も正しく表示したい場合はこれがいいだろう。