/** * Send email reports of unresolved transactions * (that need to be resolved manually via AdminInterface). * * @param array $report Transactions to be reported. * * @return void */ protected function sendReports($report) { $renderer = $this->viewManager->getRenderer(); $subject = 'Finna: ilmoitus tietokannan %s epäonnistuneista verkkomaksuista'; foreach ($report as $driver => $cnt) { if ($cnt) { $settings = $this->configReader->get("VoyagerRestful_{$driver}"); if (!$settings || !isset($settings['OnlinePayment']['errorEmail'])) { $this->err(" No error email for expired transactions not defined for " . "driver {$driver} ({$cnt} expired transactions)"); continue; } $email = $settings['OnlinePayment']['errorEmail']; $this->msg(" [{$driver}] Inform {$cnt} expired transactions " . "for driver {$driver} to {$email}"); $params = ['driver' => $driver, 'cnt' => $cnt]; $messageSubject = sprintf($subject, $driver); $message = $renderer->render('Email/online-payment-alert.phtml', $params); try { $this->mailer->send($email, $this->fromEmail, $messageSubject, $message); } catch (\Exception $e) { $this->err(" Failed to send error email to customer: {$email} " . "(driver: {$driver})"); continue; } } } }