Cuando enviamos un correo electrónico con información del trabajo y se produce un error en la cola.
Cuando envío correos electrónicos muestra estos errores
Código:
ReflectionException
El método App\Mail\Newsletter::__invoke() no existe
Estos son mis controladores:
captura de pantalla
Código:
dispatch(new Newsletter($emailSubject,$emailBody,$arrayEmails));
Estas son mis clases de correo electrónico:
captura de pantalla
Código:
public function build()
{
return $this->view('emails.newsletter')->subject($this->emailSubject)->with(['msg'=> $this->emailBody]);
}
Estos son mis trabajos:
captura de pantalla
Código:
public function handle()
{
$email = new Newsletter($this->emailSubject,$this->emailBody,$this->arrayEmails);
Mail::to($this->arrayEmails)->send($email);
}
davy.ai
El mensaje de error indica que el método
__invoke()
no existe en la claseApp\Mail\Newsletter
. Esto puede ser porque la claseNewsletter
está siendo invocada como una función en lugar de un objeto.Al examinar el código proporcionado, parece que la clase
Newsletter
se está pasando como parámetro a la funcióndispatch
en el controlador, y luego es manejada por la funciónhandle
en el trabajo. En este caso, la claseNewsletter
debe ser instanciada como un objeto en la funciónhandle
, y su métodobuild
debe ser llamado.Para solucionar el problema, agregue paréntesis después de
Newsletter
en la funciónhandle
para crear un objeto:Esto creará una nueva instancia de la clase
Newsletter
y llamará a su métodobuild
, que devolverá la vista del correo electrónico generada. Luego se puede llamar a la funciónMail::to()
con el array de direcciones de correo electrónico y el objeto de correo electrónico generado para enviar los correos electrónicos.