Viewing File: /home/ubuntu/shop-website-base/app/Jobs/SendEmailJob.php

<?php

namespace App\Jobs;

use Illuminate\Bus\Queueable;
use Illuminate\Queue\SerializesModels;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Foundation\Bus\Dispatchable;


use App\Mail\Mail;

use Log;

use DB, Setting, Validator, Exception, Enveditor, File;

use Mailgun\Mailgun;




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

    protected $email_data;

    /**
     * The number of times the job may be attempted.
     *
     * @var int
     */
    public $tries = 2;

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

    }

    public function handle()
    {
        try {
            
            $mail_model = new Mail($this->email_data);


            $isValid = 1;

            if(envfile('MAIL_MAILER') == 'mailgun' && Setting::get('MAILGUN_PUBLIC_KEY')) {

                Log::info("isValid - START");

                # Instantiate the client.

                $email_address = Mailgun::create(Setting::get('MAILGUN_PRIVATE_KEY'));

                $validateAddress = $this->email_data['email'];

                # Issue the call to the client.

                $result =  $email_address->domains()->verify($validateAddress);
                // // # is_valid is 0 or 1

                $isValid = $result->http_response_body->is_valid;

                Log::info("isValid FINAL STATUS - ".$isValid);

            }

            if($isValid) {

                \Mail::queue($mail_model);

                Log::info("EmailJob Success");
            }

        } catch(Exception $e) {

            Log::info("SendEmailJob Error".print_r($e->getMessage(), true));

        }

    }
}
Back to Directory File Manager