Laravel:在Mail :: to中使用电子邮件和名称

Ada*_*dam 6 php email laravel-5

我有一个联系表,其中有人提供了他的姓名和电子邮件。我现在想与Laravel发送电子邮件。

我在文档中找到了

若要发送消息,请使用Mail外观上的to方法。to方法接受电子邮件地址,用户实例或用户集合。

实际上

\ Mail :: to('example@gmail.com')->发送(新\ App \ Mail \ Hello);

作品。但是也可以提供电子邮件收据的名称吗?

我想看看那个了Laravel API中的邮件门面,但让我吃惊的门面有没有功能?

那么,如何确定to函数真正的作用以及是否可以传递名称参数呢?

plu*_*olt 15

在laravel 5.6中,您的问题的答案是:对每个带有'email'和'name'键的收件人使用关联数组,应与$ to,$ cc,$ bcc一起使用

$to = [
    [
        'email' => $email, 
        'name' => $name,
    ]
];
\Mail::to($to)->send(new \App\Mail\Hello);
Run Code Online (Sandbox Code Playgroud)

  • 注意传递数组数组(不仅是带有`email`和`name`的数组)。 (8认同)

dpa*_*oli 5

您可以使用 Mail::send() 函数Message在可调用对象中注入一个类。该Message班有一个函数to($email, $name)与您正在搜索的签名,即:

Mail::send($view, $data, function($message) use ($email, $name) {
    $m->to($email,  $name);
    $m->from('youremail@example.com', 'Your Name'); 
    $m->subject('Hi there');
})
Run Code Online (Sandbox Code Playgroud)

$view 可以是一个字符串(一个实际的视图)或一个像这样的数组:

['text'=> 'body here']
['html'=> 'body here']
['raw'=> 'body here']
Run Code Online (Sandbox Code Playgroud)

$data 参数将传递给 $view。