我想发送许多电子邮件。 目前,我使用PHPMailler编写基本代码以使用队列发送邮件。它可以工作,但是每次运行新队列时,它都必须再次连接到SMTP,因此性能不佳。
我在PHPMailler文档中找到SMTPKeepAlive属性:
$phpMailer = New PHPMailer();
$phpMailer->SMTPKeepAlive = true;
这是不可能的,如何将$ phpMailler对象保留为下一个队列?因此,PHPMailler不必使用以前的连接来再次连接。
答案 0 :(得分:1)
如果您使用Laravel,则必须使用Laravel内置的功能。
请找到以下文件: https://laravel.com/docs/5.6/mail
请找到一段用于发送邮件并添加到队列中的代码:
use App\Mail\EmailVerifyMail;
\Mail::queue(new EmailVerifyMail($users));
EmailVerifyMail.php
<?php
namespace App\Mail;
use App\User;
use Illuminate\Bus\Queueable;
use Illuminate\Mail\Mailable;
use Illuminate\Queue\SerializesModels;
class EmailVerifyMail extends Mailable
{
use Queueable, SerializesModels;
public $user;
/**
* Create a new message instance.
*
* @return void
*/
public function __construct(User $user)
{
$this->user = $user;
}
/**
* Build the message.
*
* @return $this
*/
public function build()
{
$this->to($this->user)->subject(__('mail.subjects.verification_link', ['USERNAME' => $this->user->name]));
return $this->view('mails/emailVerify', ['user' => $this->user]);
}
}