gpt4 book ai didi

php - Laravel-5 如何从存储在数据库中的模板发送电子邮件

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:08:09 29 4
gpt4 key购买 nike

如何使用 Laravel-5 发送存储在数据库中的电子邮件模板?

我目前使用以下代码:

/* Queue thank you email for sending */

Mail::queue('emails.orderthankyou', $order->get()->first()->toArray(), function ($message) {
$message->to('me@myemail.com')->subject('Thank you for your order');
});

但是,目前上述模板是从Resources/views 目录中提取的。我需要更改此设置,因为我的电子邮件模板现在存储在数据库中,如下所示:

Dear {{ $first_name }},<br><br>

Thank you for your order.

我如何从数据库中提取这些模板并使用 Mail::Queue 呈现它们以发送?

提前致谢。

最佳答案

首先您需要从字符串编译您的模板,如果您需要在字符串模板上使用 Blade 语法,请参见示例:https://github.com/TerrePorter/StringBladeCompiler

如果您不需要任何困难的操作,只需替换名字等,我会选择:

// This will extract your array to variables like $first_name = 'John'
extract($order->get()->first()->toArray());
$generated = "Dear $first_name,<br><br>
Thank you for your order.";

现在在消息中

Mail::queue([], [], function ($message) use ($generated)
{
$message->queue('me@myemail.com')
->subject('Thank you for your order')
->setBody($generated, 'text/html');
});

注意,Mail::queue/send 的第一个参数是空数组,还有 setBody() 方法,您首先传递生成的 html,然后告诉它格式为 text/html。

关于php - Laravel-5 如何从存储在数据库中的模板发送电子邮件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31338436/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com