/** * Handle the event. * * @param \CachetHQ\Cachet\Events\CustomerHasSubscribedEvent $event */ public function handle(CustomerHasSubscribedEvent $event) { $mail = ['email' => $event->subscriber->email, 'subject' => 'Confirm your subscription.', 'link' => route('subscribe-verify', ['code' => $event->subscriber->verify_code]), 'appUrl' => env('APP_URL')]; $this->mailer->queue(['html' => 'emails.subscribers.verify-html', 'text' => 'emails.subscribers.verify-text'], $mail, function (Message $message) use($mail) { $message->to($mail['email'])->subject($mail['subject']); }); }
/** * Handle the event. * * @param \CachetHQ\Cachet\Events\UserWasInvitedEvent $event * * @return void */ public function handle(UserWasInvitedEvent $event) { $mail = ['email' => $event->invite->email, 'subject' => 'You have been invited.', 'link' => route('signup.invite', ['code' => $event->invite->code]), 'app_url' => env('APP_URL')]; $this->mailer->queue(['html' => 'emails.users.invite-html', 'text' => 'emails.users.invite-text'], $mail, function (Message $message) use($mail) { $message->to($mail['email'])->subject($mail['subject']); }); }
/** * Handle the user has rage quit event. * * @param \StyleCI\StyleCI\Events\User\UserHasRageQuitEvent $event * * @return void */ public function handle(UserHasRageQuitEvent $event) { $user = $event->user; $mail = ['email' => $user->email, 'name' => AutoPresenter::decorate($user)->first_name, 'subject' => 'Account Deleted']; $this->mailer->queue(['html' => 'emails.html.goodbye', 'text' => 'emails.text.goodbye'], $mail, function (Message $message) use($mail) { $message->to($mail['email'])->subject($mail['subject']); }); }
/** * Handle the user has signed up event. * * @param \StyleCI\StyleCI\Events\User\UserHasSignedUpEvent $event * * @return void */ public function handle(UserHasSignedUpEvent $event) { $user = $event->user; $mail = ['email' => $user->email, 'name' => AutoPresenter::decorate($user)->first_name, 'subject' => 'Welcome']; $this->mailer->queue('emails.welcome', $mail, function (Message $message) use($mail) { $message->to($mail['email'])->subject($mail['subject']); }); }
/** * Handle the event. * * @param \CachetHQ\Cachet\Events\MaintenanceHasScheduledEvent $event */ public function handle(MaintenanceHasScheduledEvent $event) { $data = $this->presenter->decorate($event->incident); foreach ($this->subscriber->all() as $subscriber) { $mail = ['email' => $subscriber->email, 'subject' => 'Scheduled maintenance.', 'status' => $data->humanStatus, 'htmlContent' => $data->formattedMessage, 'textContent' => $data->message, 'token' => $subscriber->token, 'unsubscribeLink' => route('unsubscribe', ['code' => $subscriber->token]), 'appUrl' => env('APP_URL')]; $this->mailer->queue(['html' => 'emails.incidents.maintenance-html', 'text' => 'emails.incidents.maintenance-text'], $mail, function (Message $message) use($mail) { $message->to($mail['email'])->subject($mail['subject']); }); } }
/** * Send an e-mail. * * @param string $toEmail * @param string $toName * @param string $subject * @param string $view * @param array $data * @param callable $options * * @return void */ public function send($toEmail, $toName, $subject, $view, array $data = array(), $options = null) { $this->mail->queue($view, $data, function (Message $message) use($toEmail, $toName, $subject, $options) { $message->to($toEmail, $toName)->subject($subject); // Allow the caller to run additional functions // on the $msg SwiftMailer object (cc, bcc, attach, ...) if ($options && is_callable($options)) { call_user_func($options, $message); } }); }
/** * Handle the event. * * @param \CachetHQ\Cachet\Events\MaintenanceHasScheduledEvent $event * * @return void */ public function handle(MaintenanceWasScheduledEvent $event) { if (!$event->incident->notify) { return false; } $data = AutoPresenter::decorate($event->incident); foreach ($this->subscriber->all() as $subscriber) { $mail = ['email' => $subscriber->email, 'subject' => 'Scheduled maintenance.', 'status' => $data->humanStatus, 'html_content' => $data->formattedMessage, 'text_content' => $data->message, 'scheduled_at' => $data->scheduled_at_formatted, 'token' => $subscriber->token, 'unsubscribe_link' => route('subscribe.unsubscribe', ['code' => $subscriber->verify_code]), 'app_url' => env('APP_URL')]; $this->mailer->queue(['html' => 'emails.incidents.maintenance-html', 'text' => 'emails.incidents.maintenance-text'], $mail, function (Message $message) use($mail) { $message->to($mail['email'])->subject($mail['subject']); }); } }
/** * Notify collaborators of unsuccessful analyses. * * @param \StyleCI\StyleCI\Models\Analysis $analysis * @param \StyleCI\StyleCI\Models\Repo $repo * * @return void */ public function notifyNotSuccess(Analysis $analysis, Repo $repo) { $mail = ['repo' => $repo->name, 'commit' => $analysis->message, 'branch' => $analysis->branch, 'link' => route('analysis', AutoPresenter::decorate($analysis)->id)]; if (in_array($analysis->status, Analysis::HAS_FAILED, true)) { $status = 'failed'; $mail['subject'] = "[{$repo->name}] Analysis Failed"; } else { switch ($analysis->status) { case Analysis::CONFIG_ISSUES: $status = 'misconfigured'; $mail['subject'] = "[{$repo->name}] Analysis Misconfigured"; break; case Analysis::ACCESS_ISSUES: $status = 'access'; $mail['subject'] = "[{$repo->name}] Analysis Errored"; break; case Analysis::TIMEOUT: $status = 'timeout'; $mail['subject'] = "[{$repo->name}] Analysis Timed Out"; break; default: $status = 'errored'; $mail['subject'] = "[{$repo->name}] Analysis Errored"; } } foreach ($this->userRepository->collaborators($repo) as $user) { $mail['email'] = $user->email; $mail['name'] = AutoPresenter::decorate($user)->first_name; $this->mailer->queue(["emails.html.{$status}", "emails.text.{$status}"], $mail, function (Message $message) use($mail) { $message->to($mail['email'])->subject($mail['subject']); }); } }
/** * Sent the thanks message. * * @param string $name * @param string $email * @param string $quote * * @return void */ protected function sendThanks($name, $email, $quote) { $mail = ['email' => $email, 'subject' => $this->name . ' - Notification', 'platform' => $this->name, 'url' => $this->home, 'name' => $name, 'quote' => $quote]; $this->mail->queue('contact::thanks', $mail, function ($message) use($mail) { $message->to($mail['email'])->subject($mail['subject']); }); }
/** * Send notification to subscriber. * * @param \CachetHQ\Cachet\Bus\Events\MaintenanceWasScheduledEvent $event * @param \CachetHQ\Cachet\Models\Subscriber $subscriber * * @return \Illuminate\Database\Eloquent\Collection */ public function notify(MaintenanceWasScheduledEvent $event, $subscriber) { $incident = AutoPresenter::decorate($event->incident); $component = AutoPresenter::decorate($event->incident->component); $mail = ['email' => $subscriber->email, 'subject' => trans('cachet.subscriber.email.maintenance.subject', ['name' => $incident->name]), 'has_component' => $event->incident->component ? true : false, 'component_name' => $component ? $component->name : null, 'name' => $incident->name, 'timestamp' => $incident->scheduled_at_formatted, 'status' => $incident->human_status, 'html_content' => $incident->formattedMessage, 'text_content' => $incident->message, 'token' => $subscriber->token, 'manage_link' => route('subscribe.manage', ['code' => $subscriber->verify_code]), 'unsubscribe_link' => route('subscribe.unsubscribe', ['code' => $subscriber->verify_code])]; $this->mailer->queue(['html' => 'emails.incidents.maintenance-html', 'text' => 'emails.incidents.maintenance-text'], $mail, function (Message $message) use($mail) { $message->to($mail['email'])->subject($mail['subject']); }); }
/** * Handle the repo event. * * @param \StyleCI\StyleCI\Events\Repo\RepoEventInterface $event * * @return void */ public function handle(RepoEventInterface $event) { $repo = $event->repo; $mail = ['repo' => $repo->name]; if ($event instanceof RepoWasDisabledEvent) { $mail['subject'] = "[{$repo->name}] Disabled"; $view = 'disabled'; } else { $mail['subject'] = "[{$repo->name}] Enabled"; $mail['link'] = route('repo', $repo->id); $view = 'enabled'; } foreach ($this->userRepository->collaborators($repo) as $user) { $mail['email'] = $user->email; $mail['name'] = AutoPresenter::decorate($user)->first_name; $this->mailer->queue("emails.{$view}", $mail, function (Message $message) use($mail) { $message->to($mail['email'])->subject($mail['subject']); }); } }