如何用Laravel和Mailgun发送大量电子邮件
问题描述:
我的任务是向我的网站的用户群发电子邮件。如何用Laravel和Mailgun发送大量电子邮件
我想收取我网站所有用户的电子邮件,并向他们发送消息,即批量电子邮件。
当用户注册到我的网站时,我正在使用mailgun服务发送确认电子邮件。下面是我使用的一些代码的一个例子。
我想知道我是否可以使用类似的代码发送批量电子邮件。
public function sendEmail($sub)
{
$user = $this;
Mail::send('mail.confirm',['user' => $user, $sub => $sub], function($mail) use ($user,$sub) {
$mail->from('[email protected]', 'Website');
$mail->to($user->email, $user->name)->subject($sub . ' Confirm Website Email');
});
}
有什么想法?
答
我建议你使用队列这个充塞
让像下面
class SendEmail extends Job implements ShouldQueue
{
use InteractsWithQueue, SerializesModels;
public $data , $email;
/**
* Create a new job instance.
*
* @return void
*/
public function __construct($data,$email)
{
$this->data=$data;
$this->email=$email;
}
/**
* Execute the job.
*
* @return void
*/
public function handle()
{
Mail::send('mail.confirm', [
'title' => $this->data['body'] ,
'body' => $this->data['body'],
,
], function ($message) {
$message->from('[email protected]', 'Test Notification');
$message->to($this->email)->subject($this->data['subject']));
}
);
}
}
从控制器说它是队列文件
use App\Jobs\SendEmail;
class EmailController extends Controller {
public function send() {
$data = array
(
'title' => 'title',
'body' => 'body',
'subject' => 'subject'
);
$emails=array("[email protected]","[email protected]")
foreach($emails as $val){
$this->dispatch(new SendAlertEmail($data, $val));
}
}
请检查https://laravel.com/docs/5.4/queues 和https://scotch.io/tutorials/why-laravel-queues-are-awesome
我不知道PHP sdk窝但是Mailgun本身具有列出高达250万收件人的概念。您需要先添加它们,然后发送到列表别名将向所有收件人发送副本。 – NoNameProvided