You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel 5.8发送邮件时发件人含特殊字符不显示问题求助

解决Laravel 5.8发件人名称含特殊字符无法显示的问题

嘿,这个问题我之前碰到过!Laravel 5.8里直接在发件人名称里用@这类特殊字符,会因为邮件协议的格式要求导致名称无法正常解析显示——毕竟@是邮箱地址的分隔符,邮件客户端会把它当成地址的一部分处理,自然就看不到你想要的名称了。

给你两个可行的解决方案:

方案1:用MIME编码处理特殊字符

最稳妥的方式是用PHP的mb_encode_mimeheader()函数对发件人名称进行编码,让它符合MIME邮件头的标准格式。修改你的代码如下:

Mail::send('emails.purchase-token', $data, function($message){ 
    $message->from('noreply@thetanos.com', mb_encode_mimeheader('TheTh@nos')); 
    $message->subject('New Tokens Have Been Added To Your Wallet'); 
    $message->to("recipient01@gmail.com"); 
});

这个函数会把特殊字符转换成邮件客户端能正确识别的编码格式,不管是Gmail、Outlook还是其他客户端,都能正常显示发件人名称。

方案2:手动用引号包裹名称

另一种方式是把包含特殊字符的名称用双引号括起来,告诉邮件客户端这是完整的名称部分:

Mail::send('emails.purchase-token', $data, function($message){ 
    $message->from('noreply@thetanos.com', '"TheTh@nos"'); 
    $message->subject('New Tokens Have Been Added To Your Wallet'); 
    $message->to("recipient01@gmail.com"); 
});

不过这个方法在少数老旧邮件客户端可能存在兼容性问题,所以优先推荐方案1。

修改后记得发送测试邮件,多在几个主流客户端里检查显示效果,确保问题解决~

内容的提问来源于stack exchange,提问作者Syamsoul Azrien

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.12 05:22:37