0

添付ファイル付きのメールを送信しようとしていますが、タイムアウトになりました。とにかく必要だったので、キューを設定することにしましたが、今では送信せずに処理するだけです。

$ php artisan queue:work
[2018-10-16 13:42:21][1] Processing: App\Jobs\MailQueue
[2018-10-16 13:42:22][1] Processed:  App\Jobs\MailQueue
[2018-10-16 13:42:22][2] Processing: App\Mail\NotificationMail
[2018-10-16 13:42:55][3] Processing: App\Mail\NotificationMail
[2018-10-16 13:43:57][4] Processing: App\Mail\NotificationMail
[2018-10-16 13:44:59][5] Processing: App\Mail\NotificationMail
[2018-10-16 13:46:01][6] Processing: App\Mail\NotificationMail
[2018-10-16 13:47:04][7] Processing: App\Mail\NotificationMail
[2018-10-16 13:48:06][8] Processing: App\Mail\NotificationMail
[2018-10-16 13:49:09][9] Processing: App\Mail\NotificationMail
[2018-10-16 13:50:15][10] Processing: App\Mail\NotificationMail
[2018-10-16 13:51:19][11] Processing: App\Mail\NotificationMail
[2018-10-16 13:52:22][12] Processing: App\Mail\NotificationMail
[2018-10-16 13:53:24][13] Processing: App\Mail\NotificationMail
[2018-10-16 13:54:26][14] Processing: App\Mail\NotificationMail
[2018-10-16 13:55:29][15] Processing: App\Mail\NotificationMail
[2018-10-16 13:56:34][16] Processing: App\Mail\NotificationMail
[2018-10-16 13:57:36][17] Processing: App\Mail\NotificationMail

メールトラップを使用しています:

MAIL_DRIVER=smtp
MAIL_HOST=smtp.mailtrap.io
MAIL_PORT=2525
MAIL_USERNAME=*****************
MAIL_PASSWORD=*****************
MAIL_ENCRYPTION=null

私のキュードライバーはデータベースに設定されています:

'database' => [
    'driver' => 'database',
    'table' => 'jobs',
    'queue' => 'default',
    'retry_after' => 90,
],

ここに私のジョブクラスがあります:

<?php

namespace App\Jobs;

use App\Mail\NotificationMail;
use App\Models\Event;
use App\Models\Notification;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Foundation\Bus\Dispatchable;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Queue\SerializesModels;
use Illuminate\Support\Facades\Mail;

class MailQueue implements ShouldQueue
{
    use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;

    protected $event;

    /**
     * Create a new job instance.
     *
     * @return void
     */
    public function __construct(Event $event)
    {
        $this->event = $event;
    }

    /**
     * Execute the job.
     *
     * @return void
     */
    public function handle()
    {
        Mail::to($this->event->siteContacts[0]->email)->queue(
            new NotificationMail(Notification::where('slug', 'event-flyer')->first(), $this->event)
        );
    }
}

何かを添付した後にメールを送信しようとしている方法は次のとおりです。

public function build()
{
    $this->notification->body = $this->parse(
        merge_tags($this->notification->body), $this->notification->body
    );

    $path = null;

    if ($this->notification->slug == 'event-flyer') {
        $path = "events/{$this->event->agency->id}/{$this->event->id}/flyer.pdf";
        $pdf = PDF::loadView('event.print', ['event' => $this->event]);
        Storage::put($path, $pdf->output());
    }

    return $this->view('email.notification')
                ->attach($path)
                ->subject("MSU Notification: {$this->event->group_name_location}")
                ->with(['event' => $this->event, 'notification' => $this->notification]);
}

私は xampp セットアップを使用していますdefault_socket_timeout=60attachまた、電話を切ると、通常どおりメールが送信されることにも言及する必要があります。

4

0 に答える 0