Twinkle
Twinkle
Laravel Notifications メール通知で改行させる方法
普通にline()
で「改行を含む文字列」を追加しても届くメールでは改行が消えている。
public function toMail(object $notifiable): MailMessage
{
return (new MailMessage)
->line('改行を含む文字列');
}
改行が消える処理がどこにあるか調べるとformatLine()
の最後。
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 ?? ''))));
}
入力された$line
がHtmlableやarrayなら改行が消えないことも分かる。
arrayにすれば簡単に解決。
public function toMail(object $notifiable): MailMessage
{
return (new MailMessage)
->line(['改行を含む文字列']);
}
問い合わせフォームなどで改行も正しく表示したい場合はこれがいいだろう。