Back | Home
الـ Path الحالي: /home/picotech/domains/instantly.picotech.app/public_html/public/../app/Listeners
الملفات الموجودة في هذا الـ Path:
.
..
MailEventListener.php
SendMailListener.php

مشاهدة ملف: MailEventListener.php

<?php

namespace App\Listeners;

use App\Events\MailEvent;
use App\Models\Campaign;
use App\Models\EmailQueue;
use App\Models\MessageLog;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Support\Facades\Log;

class MailEventListener implements ShouldQueue
{

    use InteractsWithQueue;

    /**
     * Create the event listener.
     *
     * @return void
     */
    public function __construct()
    {
        //
    }

    /**
     * Handle the event.
     *
     * @param  \App\Events\MailEvent  $event
     * @return void
     */
    public function handle(MailEvent $event)
    {
        $campaignId = $event->campaign_id;
        $email_queue_id = $event->email_queue_id;
        $emailQueue=EmailQueue::find($email_queue_id);
        if(!$emailQueue) return;

        $campaign = Campaign::where('id', $campaignId)->first();
        if ($campaign) {
            $messageLog = MessageLog::where('random_ref_key', $emailQueue->random_ref_key)->where('campaign_id', $campaign->id)->first();
        } else {
            $messageLog = MessageLog::where('random_ref_key', $emailQueue->random_ref_key)->first();
        }
        if ($messageLog) {
            if($event->type=='opened'){
                $messageLog->is_open = 'yes';
            }elseif ($event->type=='clicked'){
                $messageLog->is_clicked = 'yes';
            }elseif ($event->type=='bounced'){
                $messageLog->is_bounced = 'yes';
            }
            $messageLog->save();
        }

        dd($messageLog);
    }
}