簡體   English   中英

如何在 Laravel 中添加發送郵件隊列?

[英]How to add queue in sending mails in Laravel?

我已經將我的.env編輯為 QUEUE_CONNECTION=database 並嘗試從發送替換為隊列。 我還嘗試將工具 ShouldQueue 添加到我的CertificatEmail但不起作用。 我不知道缺少什么。

發送郵件 Controller

public function sendEmail(Request $request)
{
    $users = StudentApplicants::whereIn("id", $request->ids)->get();

    foreach ($users as $key => $user) {
        $data = [
            'fname' => $user->users->first_name,
            'mname' => $user->users->middle_name,
            'lname' => $user->users->last_name,
            'gwa'  => $user->gwa,
            'sy'  => $user->school_year
        ];

        $qrcode = base64_encode(QrCode::format('svg')->color(128, 0, 0)->size(200)->errorCorrection('H')->generate($user->users->stud_num));
        $pdf = app('dompdf.wrapper');
        $pdf->loadView('admin.send-awardees-certificates.certificate', $data, array('qrcode' => $qrcode));
        $pdf->setPaper('A4', 'landscape');
        Mail::to(config('mail.notification_recipient'))->queue(new CertificateEmail($user, $pdf));
    }
    return response()->json(['success' => 'Send email successfully. Refresh the page']);
}

來自郵件的證書電子郵件

class CertificateEmail extends Mailable implements ShouldQueue
{
use Queueable, SerializesModels;
public $pdf;
public $user;

/**
 * Create a new message instance.
 *
 * @return void
 */
public function __construct($user, $pdf)
{
    $this->pdf = $pdf;
    $this->user = $user;
}

/**
 * Build the message.
 *
 * @return $this
 */
public function build()
{
    // return $this->view('view.name');

    return $this->from(env('info@gmail.com'))
        ->subject('Certificate from ABC EFG')
        ->view('email.certificate-email')
        ->attachData($this->pdf->output(), 'stock_report.pdf');
}

}


你在命令中運行這兩個查詢嗎

php artisan queue:table # creates a table for queued jobs

php artisan migrate # migrates the table

然后運行 php 工匠隊列:工作

在來自 env 我認為它寫不正確請檢查它應該是 USER_EMAIL 類似的東西

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM