diff --git a/app/Http/Controllers/ConnectedAccountController.php b/app/Http/Controllers/ConnectedAccountController.php index f212396af2f2..456f519c2634 100644 --- a/app/Http/Controllers/ConnectedAccountController.php +++ b/app/Http/Controllers/ConnectedAccountController.php @@ -23,8 +23,8 @@ class ConnectedAccountController extends BaseController parent::__construct(); } -/** - * Refreshes the data feed with the current Company User. + /** + * Connect an OAuth account to a regular email/password combination account * * @param Request $request * @return User Refresh Feed. diff --git a/app/Jobs/Entity/EmailEntity.php b/app/Jobs/Entity/EmailEntity.php index 95c16acbf030..63b859906cd8 100644 --- a/app/Jobs/Entity/EmailEntity.php +++ b/app/Jobs/Entity/EmailEntity.php @@ -105,7 +105,7 @@ class EmailEntity implements ShouldQueue MultiDB::setDB($this->company->db); $nmo = new NinjaMailerObject; - $nmo->mailable = new TemplateEmail($this->email_entity_builder,$this->invitation->contact); + $nmo->mailable = new TemplateEmail($this->email_entity_builder,$this->invitation->contact, $this->invitation); $nmo->company = $this->company; $nmo->settings = $this->settings; $nmo->to_user = $this->invitation->contact; diff --git a/app/Listeners/Mail/MailSentListener.php b/app/Listeners/Mail/MailSentListener.php new file mode 100644 index 000000000000..603c8f2b94f5 --- /dev/null +++ b/app/Listeners/Mail/MailSentListener.php @@ -0,0 +1,47 @@ +company->db); + //$postmark_id = $message->getHeaders()->get('x-pm-message-id')->getValue(); + + if(property_exists($event->message, 'invitation')){ + nlog($event->message->invitation); + } + + } +} diff --git a/app/Mail/Engine/BaseEmailEngine.php b/app/Mail/Engine/BaseEmailEngine.php index 982487ff448b..01727dfd8aef 100644 --- a/app/Mail/Engine/BaseEmailEngine.php +++ b/app/Mail/Engine/BaseEmailEngine.php @@ -31,6 +31,8 @@ class BaseEmailEngine implements EngineInterface public $text; + public $invitation; + public function setFooter($footer) { $this->footer = $footer; @@ -141,4 +143,15 @@ class BaseEmailEngine implements EngineInterface public function build() { } + + public function setInvitation($invitation) + { + $this->invitation = $invitation; + } + + public function getInvitation() + { + return $this->invitation; + } } + diff --git a/app/Mail/Engine/CreditEmailEngine.php b/app/Mail/Engine/CreditEmailEngine.php index 57b0ffb45c4c..c97827b0fdb5 100644 --- a/app/Mail/Engine/CreditEmailEngine.php +++ b/app/Mail/Engine/CreditEmailEngine.php @@ -85,7 +85,8 @@ class CreditEmailEngine extends BaseEmailEngine ->setBody($body_template) ->setFooter("".ctrans('texts.view_credit').'') ->setViewLink($this->invitation->getLink()) - ->setViewText(ctrans('texts.view_credit')); + ->setViewText(ctrans('texts.view_credit')) + ->setInvitation($this->invitation); if ($this->client->getSetting('pdf_email_attachment') !== false) { $this->setAttachments(['path' => $this->credit->pdf_file_path(), 'name' => basename($this->credit->pdf_file_path())]); diff --git a/app/Mail/Engine/InvoiceEmailEngine.php b/app/Mail/Engine/InvoiceEmailEngine.php index 07f857aaafcb..40cd3eee7211 100644 --- a/app/Mail/Engine/InvoiceEmailEngine.php +++ b/app/Mail/Engine/InvoiceEmailEngine.php @@ -94,7 +94,8 @@ class InvoiceEmailEngine extends BaseEmailEngine ->setBody($body_template) ->setFooter("".ctrans('texts.view_invoice').'') ->setViewLink($this->invitation->getLink()) - ->setViewText(ctrans('texts.view_invoice')); + ->setViewText(ctrans('texts.view_invoice')) + ->setInvitation($this->invitation); if ($this->client->getSetting('pdf_email_attachment') !== false) { $this->setAttachments([$this->invoice->pdf_file_path()]); diff --git a/app/Mail/Engine/QuoteEmailEngine.php b/app/Mail/Engine/QuoteEmailEngine.php index 574ade2ea57a..a79a1fa0779b 100644 --- a/app/Mail/Engine/QuoteEmailEngine.php +++ b/app/Mail/Engine/QuoteEmailEngine.php @@ -85,7 +85,9 @@ class QuoteEmailEngine extends BaseEmailEngine ->setBody($body_template) ->setFooter("".ctrans('texts.view_quote').'') ->setViewLink($this->invitation->getLink()) - ->setViewText(ctrans('texts.view_quote')); + ->setViewText(ctrans('texts.view_quote')) + ->setInvitation($this->invitation); + if ($this->client->getSetting('pdf_email_attachment') !== false) { // $this->setAttachments([$this->quote->pdf_file_path()]); diff --git a/app/Mail/TemplateEmail.php b/app/Mail/TemplateEmail.php index f6382ffafad4..62c7ed921763 100644 --- a/app/Mail/TemplateEmail.php +++ b/app/Mail/TemplateEmail.php @@ -29,7 +29,9 @@ class TemplateEmail extends Mailable private $company; - public function __construct($build_email, ClientContact $contact) + private $invitation; + + public function __construct($build_email, ClientContact $contact, $invitation = null) { $this->build_email = $build_email; @@ -38,6 +40,8 @@ class TemplateEmail extends Mailable $this->client = $contact->client; $this->company = $contact->company; + + $this->invitation = $invitation; } public function build() @@ -77,6 +81,7 @@ class TemplateEmail extends Mailable ]) ->withSwiftMessage(function ($message) use($company){ $message->getHeaders()->addTextHeader('Tag', $company->company_key); + $message->invitation = $this->invitation; }); //conditionally attach files diff --git a/app/Providers/EventServiceProvider.php b/app/Providers/EventServiceProvider.php index 8a5209f6ff49..8728ecb8d81c 100644 --- a/app/Providers/EventServiceProvider.php +++ b/app/Providers/EventServiceProvider.php @@ -136,6 +136,7 @@ use App\Listeners\Invoice\InvoiceRestoredActivity; use App\Listeners\Invoice\InvoiceReversedActivity; use App\Listeners\Invoice\InvoiceViewedActivity; use App\Listeners\Invoice\UpdateInvoiceActivity; +use App\Listeners\Mail\MailSentListener; use App\Listeners\Misc\InvitationViewedListener; use App\Listeners\Payment\PaymentEmailFailureActivity; use App\Listeners\Payment\PaymentEmailedActivity; @@ -157,6 +158,8 @@ use App\Listeners\User\RestoredUserActivity; use App\Listeners\User\UpdateUserLastLogin; use App\Listeners\User\UpdatedUserActivity; use Illuminate\Foundation\Support\Providers\EventServiceProvider as ServiceProvider; +use Illuminate\Mail\Events\MessageSending; +use Illuminate\Mail\Events\MessageSent; class EventServiceProvider extends ServiceProvider { @@ -166,6 +169,11 @@ class EventServiceProvider extends ServiceProvider * @var array */ protected $listen = [ + MessageSending::class =>[ + ], + MessageSent::class => [ + MailSentListener::class, + ], UserWasCreated::class => [ CreatedUserActivity::class, SendVerificationNotification::class,