我正在尝试通过抄送和/或密送发送电子邮件,并且仅向收件人发送电子邮件。
我正在这样分配工作:
$user = User::where('email', 'test1@test.com')->first();
$sender = 'test@test.com';
$cc = User::where('email', 'test2@test.com')->first();
$bcc = User::where('email', 'test3@test.com')->first();
$subject = "Test subject";
$text = "Text mail body";
dispatch(new SendEmailJob($user,$sender,$cc,$bcc,$subject, $text))->delay(now()->addSeconds(10));
然后在SendEmailJob的构造函数中,我接受这些参数并发送电子邮件:
public function handle()
{
Mail::to($this->user)->cc($this->cc)->bcc($this->bcc)->send(new TestMail($this->sender, $this->subject, $this->text));
}
和实际的TestMail:
public function build()
{
return $this
->from($this->sender)
->subject($this->subject)
->markdown('emails.test');
}
降价:
@component('mail::message')
{!! nl2br($text) !!}
@endcomponent
SendEmailJob和TestMail都正在实现ShouldQueue并具有php artisan queue:work运行。 $ user可以正常接收电子邮件,但是$ cc和$ bcc不能。在Mailtrap和生产上都进行了尝试。一项作业排队并进动,一封电子邮件排队并处理。
有人知道为什么不发送抄送和密件抄送电子邮件吗?
答案 0 :(得分:1)
所以我想通了。
首先,在localhost上,php artisan队列:需要重新启动工作,否则,它仍然可以在启动时使用那里的任何代码。
在生产服务器上,保持php artisan队列的主管或其他服务:处理需要重新启动的NEEDS,否则该队列将无法工作。
在localhost上,使用密件抄送您会收到2封相同的电子邮件,一封是发给收件人的邮件,另一封是发给密件抄送收件人的邮件-这是一种邮件陷阱功能,表示它正在工作。
在生产中,我用错误的代码尝试了很多次,并且office365反垃圾邮件阻止了服务器的ip,因此在尝试使用个人gmail后,它可以正常工作。
这是我正在使用的代码:
我在其中调度作业的控制器(电子邮件可以是字符串或用户模型):
$user = User::where('email', 'test1@test.com')->first();
$sender = 'test@test.com';
$cc = User::where('email', 'test2@test.com')->first();
$bcc = User::where('email', 'test3@test.com')->first();
$subject = "Test subject";
$text = "Text mail body";
dispatch(new SendEmailJob($user,$sender,$cc,$bcc,$subject, $text))->delay(now()->addSeconds(10));
在Job类中:
public function handle()
{
Mail::send(new TestMail($this->user, $this->cc, $this->bcc, $this->sender, $this->subject, $this->text));
}
以及实际的Mail类:
public function build()
{
return $this
->to($this->user->email, 'Main recipient') //can be $this->user
->bcc($this->cc->email, 'Hidden recipient') //can be $this->cc
->from($this->sender)
->subject($this->subject)
->markdown('emails.test');
}
答案 1 :(得分:0)
Mail::to($request->user())
->cc($moreUsers)
->bcc($evenMoreUsers)
->send(new OrderShipped($order))