我的任务是向我网站的用户发送电子邮件。
我想收集我网站所有用户的电子邮件,并向他们发送邮件,即批量电子邮件。
我现在使用mailgun服务在用户注册我的网站时发送确认电子邮件。下面是我使用的一些代码的示例。
我想知道我是否可以使用类似的代码发送批量电子邮件。
public function sendEmail($sub)
{
$user = $this;
Mail::send('mail.confirm',['user' => $user, $sub => $sub], function($mail) use ($user,$sub) {
$mail->from('website@gmail.com', 'Website');
$mail->to($user->email, $user->name)->subject($sub . ' Confirm Website Email');
});
}
任何想法?
答案 0 :(得分:0)
我建议你为这些东西使用队列
制作如下所示的队列文件
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('no-reply@testmail.com', '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("email1@email.com","email2@email.com")
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