Laravel 8应用中多行邮件发送失败的原因及修复方案
Laravel 8 联系表单邮件多行文本显示单行问题解决
1. 问题成因
浏览器提交textarea的多行内容时,换行是以\n(换行符)的形式存储的,但默认发送的HTML格式邮件不会解析\n为换行,只会将其视为普通空格,所以直接通过{!! $msg !!}输出时,多行文本就会合并成单行显示。
2. 最简单的修复方法
使用Laravel内置的nl2br()辅助函数,它可以将文本中的换行符\n转换为HTML的<br>标签,让HTML邮件正确识别换行。修改邮件模板中的代码为:
{!! nl2br(e($msg)) !!}
e($msg)用于转义文本中的特殊HTML字符,避免XSS风险;nl2br()负责将换行符替换为<br>,实现多行显示效果。
内容的提问来源于stack exchange,提问作者Razvan Zamfir
相关产品推荐
相关产品推荐

