Laravel-无法在没有发件人地址的情况下发送邮件

问题描述

我无法在Laravel中发送多个作业。

有时它可以正常工作。

有时我在cannot send message without a sender address表中收到此消息failed_job,只有1条有效。

有时都无法正常工作。

那是在我的本地,但是在服务器上根本不起作用。

我正在尝试清除缓存,配置等所有内容,但根本无法正常工作。

我不认为这是因为我在.env上进行的设置并不总是导致错误。

有时候会出错,有时候会起作用。

最常见的错误是1个正常工作,而1个没有正常工作。

enter image description here

enter image description here

它只运行1个作业,而1个作业将在failed_job表中引发失败

职位

class SendContactContentEmail implements ShouldQueue
{
    use Batchable,Dispatchable,InteractsWithQueue,Queueable,SerializesModels;
    public $data;
    public $emails;
    public $tries = 5;
    /**
     * Create a new job instance.
     *
     * @param array $_data
     */
    public function __construct(
        $_data
    )
    {
        $this->data = $_data;
        $this->emails = config('email.admin');
    }
    /**
     * Execute the job.
     *
     * @return void
     */
    public function handle()
    {
        $content = new ContactContentEmail($this->data);
        if (!empty($this->emails)){
            foreach ($this->emails as $email){
                Mail::to($email)->send($content);
            }
        }
    }
}
class SendContactEmail implements ShouldQueue
{
    use Batchable,SerializesModels;
    protected $email_address;
    public $tries = 5;
    /**
     * Create a new job instance.
     *
     * @param string $_email_address
     */
    public function __construct(
        string $_email_address
    )
    {
        $this->email_address = $_email_address;
    }
    /**
     * Execute the job.
     *
     * @return void
     */
    public function handle()
    {
        $email = new ContactEmail();
        Mail::to($this->email_address)->send($email);
    }
}

邮件

class ContactContentEmail extends Mailable
{
    use Queueable,SerializesModels;
    protected $data;
    /**
     * Create a new message instance.
     *
     * @return void
     */
    public function __construct($_data)
    {
        $this->data = $_data;
    }
    /**
     * Build the message.
     *
     * @return $this
     */
    public function build()
    {
        return $this->view('contact.emails.contact_content')->with([
                'data' => $this->data
            ]);
    }
}
class ContactEmail extends Mailable
{
    use Queueable,SerializesModels;
    /**
     * Create a new message instance.
     *
     * @return void
     */
    public function __construct()
    {
    }
    /**
     * Build the message.
     *
     * @return $this
     */
    public function build()
    {
        return $this->view('contact.emails.contact');
    }
}

控制器

public function send(ContactFormRequest $request){
     $data = $request->validated();
     dispatch(new SendContactContentEmail($data));
     dispatch(new SendContactEmail($data['mail_address']));
}

配置电子邮件

return [
    'admin' => [
        'kuriyama' => '[email protected]','negishi' => '[email protected]',]
];

ENV

MAIL_MAILER=smtp
MAIL_HOST=smtp.gmail.com
MAIL_PORT=587
[email protected]
MAIL_PASSWORD=xxxxxx
MAIL_ENCRYPTION=tls
[email protected]
MAIL_FROM_NAME="${APP_NAME}"

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)