发送独特的邮件(Laravel)



告诉我该怎么想。

我一次把邮件寄到几个地址。我形成了一个视图,它被发送到地址。每封电子邮件都必须包含从模型中所有用户中选择的唯一用户名。因此,每个用户都应该有自己的视图(带有自己的名称(。

问题是,如何为邮件列表中的每封电子邮件创建一个唯一的视图?

我不能这样写,因为所有用户都会收到相同的电子邮件,其中包含所有用户名:

$foreach ($users as $user)
{{ $user->name }}
@endforeach 

如何得到每个用户在字母中都有自己名字的结果?

您需要为每个用户单独发送电子邮件,将用户数据传递给您创建的mailable类。

<?php
namespace AppMail;
use AppUser;
use IlluminateBusQueueable;
use IlluminateMailMailable;
use IlluminateQueueSerializesModels;
class MyCustomUserMail extends Mailable
{
use Queueable, SerializesModels;
public $user;
public function __construct(User $user)
{
$this->user = $user;
}
public function build()
{
return $this->view('emails.users.my_custom_user_view');
}
}

在您的自定义视图中:

{{ $user->name }}

发送电子邮件:

<?php
namespace AppHttpControllers;
use AppHttpControllersController;
use AppMailMyCustomUserMail;
use AppUser;
use IlluminateHttpRequest;
use IlluminateSupportFacadesMail;
class UserController extends Controller
{
public function doSomething()
{
$users = User::all();
$users->each(function ($user) {
Mail::to($user->email)->send(new MyCustomUserMail($user));
});
}
}

最新更新