在laravel困难中发送电子邮件

时间:2015-07-22 10:53:59

标签: php email laravel laravel-4

我正在尝试用laravel发送邮件。不确定我是否正确地做了但我将所有内容都基于教程,并尽量保持简单。 我究竟做错了什么?它目前给我一个错误:"传递给Illuminate \ Mail \ Mailer :: send()的参数2必须是数组类型,字符串" 如果我留下一个空的$ data,它表示未定义。我不知道怎么做所有这些事情。有什么帮助吗?

 $data = "helloooo";

 Mail::send('emails.welcome', $data, function($message) { 
 $message->to('thatsmymail123@gmail.com', 'me')->subject('Welcome!'); });

2 个答案:

答案 0 :(得分:7)

线索出现在您的错误中。 “传递给Illuminate\Mail\Mailer::send()的参数2必须是类型数组,字符串给出”

您需要传递给Mail::send()函数的数组与呈现视图的通常方式完全相同。

例如,您可以执行此操作来渲染视图。

$data['foo'] = 'bar';

return View::make('my.view', $data);

在您的视图中,您可以使用$foo变量。这同样适用于发送电子邮件。 Laravel仍然需要呈现您的电子邮件视图。解决上面的问题...

$data = ['foo' => 'bar'];

Mail::send('emails.welcome', $data, function($message)
{
    $message->to('email@example.com', 'Jon Doe')->subject('Welcome!');
});

如果您没有/需要将任何数据传递给您的视图,只需使用一个空数组。

$data = []; // Empty array

Mail::send('emails.welcome', $data, function($message)
{
    $message->to('email@example.com', 'Jon Doe')->subject('Welcome!');
});

答案 1 :(得分:0)

$ data =" helloooo&#34 ;; 而是使用$ data使它成为数组。像这样 $ data [' message'] =" helloooo";

由于传递给Illuminate \ Mail \ Mailer :: send()的参数必须是数组类型,所以我们以数组格式传递它。

并在电子邮件视图中:emails.welcome 使用$ message显示变量值。