Laravel 邮件:传递字符串而不是视图

2022-08-30 08:19:42

我想使用 laravel 发送确认电子邮件。laravel Mail::send() 函数似乎只接受系统上文件的路径。问题是我的邮件模板存储在数据库中,而不是存储在系统上的文件中。

如何将普通内容传递到电子邮件?

例:

$content = "Hi,welcome user!";

Mail::send($content,$data,function(){});

答案 1

2022 年 7 月 20 日更新:对于更多最新版本的 Laravel,下面 Mail::send() 示例中的 setBody() 方法已替换为 text()html() 方法。

更新:在Laravel 5中,你可以改用:raw

Mail::raw('Hi, welcome user!', function ($message) {
  $message->to(..)
    ->subject(..);
});

这是你如何做到的:

Mail::send([], [], function ($message) {
  $message->to(..)
    ->subject(..)
    // here comes what you want
    ->setBody('Hi, welcome user!'); // assuming text/plain
    // or:
    ->setBody('<h1>Hi, welcome user!</h1>', 'text/html'); // for HTML rich messages
});

答案 2

对于 Html 电子邮件

Mail::send(array(), array(), function ($message) use ($html) {
  $message->to(..)
    ->subject(..)
    ->from(..)
    ->setBody($html, 'text/html');
});

推荐