Php 从DB发送带有模板的邮件
默认情况下,Laravel邮件方法是在视图/电子邮件文件夹中搜索模板。我希望使用mail方法,将模板存储在DB中。我应该如何修改邮件,使其能够从任何来源获取模板?Laravel mail方法不会在“视图/电子邮件”文件夹中搜索模板,您必须提及要用于邮件的刀片模板名称 假设您有一个名为mymailtemplates的文件夹和一个名为welcome.blade.php的模板,然后您可以使用此模板发送邮件,如下所示Php 从DB发送带有模板的邮件,php,laravel,laravel-4,Php,Laravel,Laravel 4,默认情况下,Laravel邮件方法是在视图/电子邮件文件夹中搜索模板。我希望使用mail方法,将模板存储在DB中。我应该如何修改邮件,使其能够从任何来源获取模板?Laravel mail方法不会在“视图/电子邮件”文件夹中搜索模板,您必须提及要用于邮件的刀片模板名称 假设您有一个名为mymailtemplates的文件夹和一个名为welcome.blade.php的模板,然后您可以使用此模板发送邮件,如下所示 Mail::send('mymailtemplates.welcome', $data
Mail::send('mymailtemplates.welcome', $data, function($message)
{
$message->from('us@example.com', 'Laravel');
$message->to('foo@example.com')->cc('bar@example.com');
$message->attach($pathToFile);
});
现在,如果您想使用存储在DB中的模板,将这些模板存储在变量中,并创建一个虚拟刀片文件(dummy.blade.php),该文件只会回显给定的内容(在本例中是来自DB的模板),您现在可以使用存储在DB中的模板发送邮件,如下所示:
Mail::send('mymailtemplates.welcome', $templatedata, function($message)
{
$message->from('us@example.com', 'Laravel');
$message->to('foo@example.com')->cc('bar@example.com');
$message->attach($pathToFile);
});
其中$templatedata将包含从DB分阶段生成的模板代码。为完整起见,请确认: 首先,您需要创建一个名为example.blade.php的模板,该模板是在resources/views/email中创建的:“email.example”
<!DOCTYPE html>
<html lang="en-EN">
<head>
<meta charset="utf-8">
</head>
<body bgcolor="#11C9FF">
{!! $body !!}
</body>
</html>
现在变量$mailtemplate包含:
[
'id' => '1'
'title' => 'The subject of the email',
'body' => '<p>The content of the email</p> '
]
在您的模板中,您可以通过元素名称(id、subject、body)使用变量。您可以分享如何执行此操作的代码:“在变量中获取这些变量并创建一个虚拟刀片文件(dummy.blade.php),该文件只会回显给定的内容”
[
'id' => '1'
'title' => 'The subject of the email',
'body' => '<p>The content of the email</p> '
]
Mail::send('email.example', $mailtemplate, function($message) use $mailtemplate
{
$message->subject($mailtemplate['title']);
$message->from('us@example.com', 'Laravel');
$message->to('foo@example.com');
});