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

时间:2017-12-20 11:35:35

标签: php email laravel-5

我有联系表格,有人提供他的姓名和电子邮件。我现在想给他发一封电子邮件给Laravel。

我在docs

中找到了
  

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

实际上

  

\ Mail :: to(' example@gmail.com') - > send(new \ App \ Mail \ Hello);

的工作原理。但是,是否也可以为电子邮件收据提供名称

我想在Mail Facade的Laravel API中查看,但令我惊讶的是,Facade没有功能?

那么如何才能找到函数的真正功能以及我是否也可以传递名称参数?

6 个答案:

答案 0 :(得分:10)

在laravel 5.6中,回答你的问题是:对每个recpient使用关联数组' email'和' name'密钥,应该使用$ to,$ cc,$ bcc

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

答案 1 :(得分:2)

您可以在Laravel中使用Mailable类: enter image description here

php artisan make:mail YouMail

这些类存储在app / Mail目录中。

在config / mail.php中,您可以配置电子邮件设置:

'from' => ['address' => 'example@example.com', 'name' => 'App Name'],

答案 2 :(得分:2)

您可以使用在callable中注入[^"']*类的Mail :: send()函数。 Message类的函数Message带有您正在搜索的签名,即:

to($email, $name)

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

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

$ data参数将传递给$ view。

答案 3 :(得分:0)

对于Laravel< 5.6可以使用这个:

$object = new \stdClass();
$object->email = $email;
$object->name  = $user->getName();

\Mail::to($object)->queue($mailclass);

请参阅here

答案 4 :(得分:0)

我更喜欢这种解决方案,因为它更具可读性(无需使用数组和静态字符串键)。

\Mail::send((new \App\Mail\Hello)
    ->to('example@gmail.com', 'John Doe');

答案 5 :(得分:0)

对于Laravel 8来说是这样的:

const mailchimpFactory = require("@mailchimp/mailchimp_transactional/src/index.js");
const mailchimp = mailchimpFactory("OfPom5DzJHCpKpfdX0Mfgg");

您的Mail是由$user = new User; $user->email = 'example@example.com'; Mail::to($user)->send(new YourMail); 创建的Mailable类