我想使用 laravel 发送一封确认电子邮件。 laravel Mail::send() 函数似乎只接受系统上文件的路径。问题是我的邮件模板存储在数据库中,而不是系统上的文件中。
如何将纯内容传递到电子邮件?
例子:
$content = "Hi,welcome user!";
Mail::send($content,$data,function(){});
原文由 nexana 发布,翻译遵循 CC BY-SA 4.0 许可协议
我想使用 laravel 发送一封确认电子邮件。 laravel Mail::send() 函数似乎只接受系统上文件的路径。问题是我的邮件模板存储在数据库中,而不是系统上的文件中。
如何将纯内容传递到电子邮件?
例子:
$content = "Hi,welcome user!";
Mail::send($content,$data,function(){});
原文由 nexana 发布,翻译遵循 CC BY-SA 4.0 许可协议
laravel 9 内置了发送不带视图的 HTML 的功能。这是示例:
\Illuminate\Support\Facades\Mail::html($content, function ($message) {
$message->to("email@example.com")
->subject("Test dev 4")
->from("email@example.com");
});
如果我们使用接受的答案,也会返回:
Symfony\Component\Mime\Message::setBody(): 参数 #1 ($body) 必须是 ?Symfony\Component\Mime\Part\AbstractPart 类型,给定字符串,在 /Users/yaskur/Sites/laravel/mail 中调用-builder/vendor/laravel/framework/src/Illuminate/Support/Traits/ForwardsCalls.php 第 23 行
发生这种情况是因为 laravel 使用新库发送电子邮件。以前使用 Swiftmailer,现在使用 Symfony Mailer。要发送不带视图的 HTML 电子邮件,您还可以使用以下代码:
Mail::raw("", function ($message) use ($content) {
$body = new \Symfony\Component\Mime\Part\TextPart($content);
$message->to("dyas@example.com")
->subject("Test dev")
->from("no-reply@example.com")
->setBody($body);
});
原文由 Muhammad Dyas Yaskur 发布,翻译遵循 CC BY-SA 4.0 许可协议
1 回答4.2k 阅读✓ 已解决
3 回答1.9k 阅读✓ 已解决
2 回答2.3k 阅读✓ 已解决
2 回答832 阅读✓ 已解决
1 回答1.4k 阅读✓ 已解决
2 回答2.3k 阅读
1 回答710 阅读✓ 已解决
2022 年 7 月 20 日更新:对于最新版本的 Laravel,下面的
Mail::send()
示例中的setBody()
方法已被替换为text()
html()
方法。_更新_:在 Laravel 5 中,您可以使用
raw
代替:这就是你的做法: