升级到 Laravel 5.3 - Mail::send 现在从 Mandrill 返回 null
Posted
技术标签:
【中文标题】升级到 Laravel 5.3 - Mail::send 现在从 Mandrill 返回 null【英文标题】:Upgrade to Laravel 5.3 - Mail::send now returns null from Mandrill 【发布时间】:2019-03-23 14:16:17 【问题描述】:我正在从 Laravel 5.2 升级到 5.3,但由于这样做,Mail::send 函数在通过 Mandrill 发送时没有返回 null。
我在 Laravel 4.2 中遇到了同样的问题,但似乎在升级到版本 5 时添加了此功能。
$response = Mail::send($template, $email, function($message) use($subject)
$message->to('test@example.com')->subject($subject);
);
dd($response)
消息发送正常,但响应为空,升级前在 5.1 和 5.2 中给出消息 ID/内容
我不明白他们为什么要添加该功能然后又将其删除?
【问题讨论】:
【参考方案1】:这是因为语法发生了根本性的变化。您需要使用Mailable Class 而不是回调。
您的代码应如下所示:
Mail::to('test@example.com')->send(new EmailExample($data));
其中EmailExample
是一个扩展Mailable
并处理您的电子邮件正文和任何适用逻辑的类。
见docs here for further information
【讨论】:
不,它也一样。我观看了有关 5.3 中新的 Mailable 功能的 Laracasts 视频,Jeffery 将其解释为只是 Mail::send 的包装器。无论如何,我只是尝试过,即使使用 Mailable 它仍然返回 null以上是关于升级到 Laravel 5.3 - Mail::send 现在从 Mandrill 返回 null的主要内容,如果未能解决你的问题,请参考以下文章
升级到 Laravel 5.3 - Mail::send 现在从 Mandrill 返回 null
Laravel 5.3 到 5.4 (mPdf - niklasravnsborg/laravel-pdf ) 升级问题
在升级laravel 5.2到5.3之后,无法在Route :: model中绑定模型
Laravel 5.3+ 中的 Route::controller() 替代方案