发送电子邮件时 Laravel htmlspecialchars() 错误
Posted
技术标签:
【中文标题】发送电子邮件时 Laravel htmlspecialchars() 错误【英文标题】:Laravel htmlspecialchars() error when sending email 【发布时间】:2019-11-22 22:42:27 【问题描述】:我正在尝试通过 Laravel 中的 Sendgrid 发送电子邮件。我一直在关注Sendgrid's Knowledge Base Article on Sending Email with Laravel
我已经在我的.env
文件中设置了所有内容(尽管我还必须更新~/config/mail.php
中的MAIL_HOST
)并且我能够发送测试电子邮件(我在刀片中执行此操作) .
电子邮件模板本身的刀片与 SendGrid 的文档完全相同:
<!DOCTYPE html>
<html lang="en-US">
<head>
<meta charset="utf-8">
</head>
<body>
<h2>Test Email</h2>
<p>$message</p>
</body>
</html>
我在单独的刀片中运行的代码(我只是为了测试而这样做)是:
@php
use App\Mail\TestEmail;
$data = ['message' => 'Oh, hai!'];
Mail::to('john@doe.com')->send(new TestEmail($data));
@endphp
上面我得到以下错误:
htmlspecialchars() expects parameter 1 to be string, object given
(View: ~/resources/views/emails/test.blade.php)
当我不在刀片中使用 message
时,一切都很好。
谁能告诉我发生了什么以及如何解决它?这是我第一次使用 Laravel,任何能指引我正确方向的东西都可以。
【问题讨论】:
【参考方案1】:$message
是自 Laravel 5.6 以来的保留变量,表示 Illuminate\Mail\Message
对象。
在 Blade 模板和 PHP 代码中将 $message
替换为 $content
或 $msg
之类的东西,一切正常!
【讨论】:
以上是关于发送电子邮件时 Laravel htmlspecialchars() 错误的主要内容,如果未能解决你的问题,请参考以下文章
使用 smtp 服务器发送自定义电子邮件地址时 Laravel 错误
Laravel 5.4 - 单击电子邮件中的验证链接时未传递或发送电子邮件验证令牌令牌。
在 Laravel 中使用 MailChimp 发送常规电子邮件
在 laravel 中发送邮件时缺少 Illuminate\Support\Manager::createDriver() 的参数 1