/** * {@inheritDoc} */ public function send(EmailEntity $email) { $time = time(); $message = $this->buildMessage($email); $result = $this->mandrill->messages->send($message); $result = array_shift($result); $email->setStatus($result['status']); $email->setSent($time); $email->setUpdated($time); $this->mapper->update($email); return [$email, $result]; }
/** * {@inheritDoc} */ public function send(EmailEntity $email) { $time = time(); $message = $this->buildMessage($email); // Get domain from the "from" address if (!preg_match('/@(.+)$/', $email->getSenderEmail(), $matches)) { throw new \Exception("Invalid from address: {$email->getSenderEmail()}"); } $domain = $matches[1]; $result = $this->mailgun->sendMessage($domain, $message); $email->setStatus($result->http_response_code === 200 ? 'sent' : 'error'); $email->setSent($time); $email->setUpdated($time); $this->mapper->update($email); return [$email, $result]; }