Fixes for mail

This commit is contained in:
David Bomba 2020-11-12 20:41:19 +11:00
parent ef9043db44
commit f1c1243146
9 changed files with 61 additions and 75 deletions

View File

@ -116,13 +116,13 @@ class EmailEntity extends BaseMailerJob implements ShouldQueue
$this->invitation->contact->client $this->invitation->contact->client
) )
); );
} catch (Swift_TransportException $e) { } catch (\Exception $e) {
$this->failed($e);
$this->entityEmailFailed($e->getMessage()); $this->entityEmailFailed($e->getMessage());
$this->logMailError($e->getMessage(), $this->entity->client);
} }
if (count(Mail::failures()) > 0) { if (count(Mail::failures()) == 0) {
$this->logMailError(Mail::failures(), $this->entity->client);
} else {
$this->entityEmailSucceeded(); $this->entityEmailSucceeded();
} }
@ -130,19 +130,6 @@ class EmailEntity extends BaseMailerJob implements ShouldQueue
$this->entity->service()->markSent()->save(); $this->entity->service()->markSent()->save();
} }
public function failed($exception = null)
{
info('the job failed');
$job_failure = new EmailInvoiceFailure();
$job_failure->string_metric5 = $this->entity_string;
$job_failure->string_metric6 = $exception->getMessage();
LightLogs::create($job_failure)
->batch();
}
private function resolveEntityString() :string private function resolveEntityString() :string
{ {
if($this->invitation instanceof InvoiceInvitation) if($this->invitation instanceof InvoiceInvitation)

View File

@ -94,9 +94,15 @@ class ZipInvoices extends BaseMailerJob implements ShouldQueue
$this->setMailDriver(); $this->setMailDriver();
Mail::to($this->email) try {
->send(new DownloadInvoices(Storage::disk(config('filesystems.default'))->url($path.$file_name), $this->company)); Mail::to($this->email)
->send(new DownloadInvoices(Storage::disk(config('filesystems.default'))->url($path.$file_name), $this->company));
}
catch (\Exception $e) {
$this->failed($e);
}
UnlinkFile::dispatch(config('filesystems.default'), $path.$file_name)->delay(now()->addHours(1)); UnlinkFile::dispatch(config('filesystems.default'), $path.$file_name)->delay(now()->addHours(1));
} }
} }

View File

@ -90,15 +90,9 @@ class EntityPaidMailer extends BaseMailerJob implements ShouldQueue
Mail::to($this->user->email) Mail::to($this->user->email)
->send(new EntityNotificationMailer($mail_obj)); ->send(new EntityNotificationMailer($mail_obj));
} catch (Swift_TransportException $e) { } catch (\Exception $e) {
$this->failed($e->getMessage()); $this->failed($e);
//$this->entityEmailFailed($e->getMessage()); $this->logMailError($e->getMessage(), $this->payment->client);
}
if (count(Mail::failures()) > 0) {
$this->logMailError(Mail::failures(), $this->payment->client);
} else {
// $this->entityEmailSucceeded();
} }
} }

View File

@ -88,13 +88,15 @@ class EntitySentMailer extends BaseMailerJob implements ShouldQueue
$mail_obj = (new EntitySentObject($this->invitation, $this->entity_type))->build(); $mail_obj = (new EntitySentObject($this->invitation, $this->entity_type))->build();
$mail_obj->from = [$this->entity->user->email, $this->entity->user->present()->name()]; $mail_obj->from = [$this->entity->user->email, $this->entity->user->present()->name()];
//send email try {
Mail::to($this->user->email) Mail::to($this->user->email)
->send(new EntityNotificationMailer($mail_obj)); ->send(new EntityNotificationMailer($mail_obj));
}catch(\Exception $e) {
$this->failed($e);
$this->logMailError($e->getMessage(), $this->entity->client);
//catch errors
if (count(Mail::failures()) > 0) {
return $this->logMailError(Mail::failures(), $this->entity->client);
} }
} }
} }

View File

@ -89,12 +89,15 @@ class EntityViewedMailer extends BaseMailerJob implements ShouldQueue
$mail_obj->from = [$this->entity->user->email, $this->entity->user->present()->name()]; $mail_obj->from = [$this->entity->user->email, $this->entity->user->present()->name()];
//send email //send email
Mail::to($this->user->email) try{
->send(new EntityNotificationMailer($mail_obj)); Mail::to($this->user->email)
->send(new EntityNotificationMailer($mail_obj));
}
catch (\Exception $e) {
$this->failed($e);
$this->logMailError($e->getMessage(), $this->entity->client);
//catch errors
if (count(Mail::failures()) > 0) {
return $this->logMailError(Mail::failures(), $this->invoice->client);
} }
} }
} }

View File

@ -22,7 +22,6 @@ use App\Models\Company;
use App\Models\SystemLog; use App\Models\SystemLog;
use App\Models\User; use App\Models\User;
use App\Providers\MailServiceProvider; use App\Providers\MailServiceProvider;
use Dacastro4\LaravelGmail\Services\Message\Mail;
use Illuminate\Bus\Queueable; use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue; use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Foundation\Bus\Dispatchable; use Illuminate\Foundation\Bus\Dispatchable;
@ -77,12 +76,16 @@ class MailRouter extends BaseMailerJob implements ShouldQueue
$this->setMailDriver(); $this->setMailDriver();
//send email //send email
Mail::to($this->to_user->email) try {
->send($this->mailable); Mail::to($this->to_user->email)
->send($this->mailable);
//catch errors
if (count(Mail::failures()) > 0) {
$this->logMailError(Mail::failures(), $this->to_user);
} }
catch (\Exception $e) {
$this->failed($e);
$this->logMailError($e->getMessage(), $this->to_user);
}
} }
} }

View File

@ -100,13 +100,17 @@ class PaymentFailureMailer extends BaseMailerJob implements ShouldQueue
$mail_obj->from = [$this->company->owner()->email, $this->company->owner()->present()->name()]; $mail_obj->from = [$this->company->owner()->email, $this->company->owner()->present()->name()];
//send email //send email
Mail::to($company_user->user->email) try {
->send(new EntityNotificationMailer($mail_obj)); Mail::to($company_user->user->email)
->send(new EntityNotificationMailer($mail_obj));
//catch errors
if (count(Mail::failures()) > 0) {
return $this->logMailError(Mail::failures(), $this->client);
} }
catch(\Exception $e) {
$this->failed($e);
$this->logMailError($e->getMessage(), $this->client);
}
} }
}); });
} }

View File

@ -95,33 +95,15 @@ class EmailPayment extends BaseMailerJob implements ShouldQueue
info("mailing failed with message " . $e->getMessage()); info("mailing failed with message " . $e->getMessage());
event(new PaymentWasEmailedAndFailed($this->payment, $this->company, Mail::failures(), Ninja::eventVars())); event(new PaymentWasEmailedAndFailed($this->payment, $this->company, Mail::failures(), Ninja::eventVars()));
$this->failed($e);
return $this->logMailError($e->getMessage(), $this->payment->client); return $this->logMailError($e->getMessage(), $this->payment->client);
} }
// if (count(Mail::failures()) > 0) {
// info("logging mail failures");
// info(print_r(Mail::failures(),1));
// }
event(new PaymentWasEmailed($this->payment, $this->payment->company, Ninja::eventVars())); event(new PaymentWasEmailed($this->payment, $this->payment->company, Ninja::eventVars()));
} }
} }
public function failed($exception = null)
{
info('the job failed');
$job_failure = new EmailInvoiceFailure();
$job_failure->string_metric5 = 'payment';
$job_failure->string_metric6 = $exception->getMessage();
LightLogs::create($job_failure)
->batch();
}
} }

View File

@ -72,16 +72,21 @@ class UserEmailChanged extends BaseMailerJob implements ShouldQueue
$mail_obj->data = $this->getData(); $mail_obj->data = $this->getData();
//Send email via a Mailable class //Send email via a Mailable class
//
try {
Mail::to($this->old_email) Mail::to($this->old_email)
->send(new UserNotificationMailer($mail_obj)); ->send(new UserNotificationMailer($mail_obj));
Mail::to($this->new_email) Mail::to($this->new_email)
->send(new UserNotificationMailer($mail_obj)); ->send(new UserNotificationMailer($mail_obj));
//Catch errors and report.
if (count(Mail::failures()) > 0) {
return $this->logMailError(Mail::failures(), $this->company);
} }
catch (\Exception $e) {
$this->failed($e);
$this->logMailError($e->getMessage(), $this->company->owner());
}
} }
private function getData() private function getData()