в приложении Я хочу отправить электронное письмо нескольким получателям. Прямо сейчас я использую l oop, и он работает, но если будет 100 / x получателей, очередь будет работать 100 / k раз для этого. Как лучше всего отправлять электронную почту 100 / k получателям или это нормально для l oop?
BlogController. php
public function store(Request $request)
{
$request->validate([
'title' => 'required|string|max:100|unique:blogs,title',
'description' => 'sometimes|nullable|string|max:255',
'body' => 'required|string',
'hit' => 'sometimes|nullable|integer',
'file' => 'sometimes|nullable|image|mimes:jpg,jpeg,png|max:2048'
]);
$request['published_at'] = now();
$request['title'] = $request->title.'-'.time();
// create slug
$request['slug'] = Str::slug($request->title.'-'.time());
// upload image and get filename
$uploaded_file_name = $request->file('file')
? upload_img($request->file('file'), 'blog-'.time(), 'storage/blogs',
true, 200) : '';
if($uploaded_file_name){
$request['image'] = 'storage/blogs/thumbnail/'.$uploaded_file_name;
}
$blog = Blog::create($request->all());
if($blog){
// get users who wants to get news
$users = User::whereNotNull('send_me_news')->get();
// send blog created email to multiple recipients
foreach ($users as $user) {
Mail::to($user)->send(new BlogCreated($blog));
}
session()->flash('success', 'Blog was created');
}else{
session()->flash('error', 'Blog was not created!');
return back()->withInput();
}
dd($blog);
return back();
}
BlogCreated. php
class BlogCreated extends Mailable implements ShouldQueue
{
use Queueable, SerializesModels;
public $blog;
/**
* Create a new message instance.
*
* @return void
*/
public function __construct($blog)
{
$this->blog = $blog;
}
/**
* Build the message.
*
* @return $this
*/
public function build()
{
return $this->from(env('MAIL_FROM_ADDRESS'))
->subject('Eflowering.com news')
->markdown('emails.blogs.created');
}
}