/** * @param MailgunManager $transport * @param MailWrappedMessage|null $message * @return bool|int * @throws MailWrapperSetupException * @throws \Exception * @throws \Mailgun\Messages\Exceptions\TooManyParameters */ public static function send(MailgunManager $transport, MailWrappedMessage $message = null) { if (!$message) { throw new MailWrapperSetupException('No Message'); } if (MailgunMessage::RECIPIENT_COUNT_LIMIT <= count($message->getToRecipients())) { throw new MailWrapperSetupException(MailgunMessage::RECIPIENT_COUNT_LIMIT . ' limit exceeded'); } $batch = MessageTransformerMailgun::fromWrappedMessage($message, $transport); try { $batch->finalize(); } catch (\Exception $e) { throw new MailWrapperSendException($e->getMessage(), $e->getCode(), $e); } $ids = $batch->getMessageIds(); return 1 == count($ids) ? $ids[0] : false; }
/** * @inheritDoc */ public static function toWrappedMessage($message, $transport = null) { if (!$message instanceof \Swift_Message) { throw new MailWrapperSetupException('Invalid Message'); } $wrappedMessage = new MailWrappedMessage(); $wrappedMessage->setWrappedMessage($message); $subject = $message->getSubject(); $content = $message->getBody(); $toRecipients = $message->getTo(); $ccRecipients = $message->getCc(); $bccRecipients = $message->getBcc(); $from = $message->getFrom() ? key($message->getFrom()) : null; $replyTo = $message->getReplyTo() ? key($message->getReplyTo()) : null; // $wrappedMessage->setSubject($subject); $wrappedMessage->setContentText($content); $address = MailManager::isEmailAddress($from); if ($address) { $wrappedMessage->setFrom($address); } $address = MailManager::isEmailAddress($replyTo); if ($address) { $wrappedMessage->setReplyTo($address); } if ($toRecipients) { foreach (array_keys($toRecipients) as $address) { $wrappedMessage->addToRecipient($address); } } if ($ccRecipients) { foreach (array_keys($ccRecipients) as $address) { $wrappedMessage->addCcRecipient($address); } } if ($bccRecipients) { foreach (array_keys($bccRecipients) as $address) { $wrappedMessage->addBccRecipient($address); } } return $wrappedMessage; }
/** * @inheritDoc */ public static function toWrappedMessage($message, $transport = null) { if (!$message instanceof \PHPMailer) { throw new MailWrapperSetupException('Invalid Message'); } $wrappedMessage = new MailWrappedMessage(); $wrappedMessage->setWrappedMessage($message); $subject = $message->Subject; $content = $message->Body; $from = $message->From; $toRecipients = $message->getToAddresses(); $ccRecipients = $message->getCcAddresses(); $bccRecipients = $message->getBccAddresses(); $replyToAddresses = $message->getReplyToAddresses(); // $wrappedMessage->setSubject($subject); $wrappedMessage->setContentText($content); $address = MailManager::isEmailAddress($from); if ($address) { $wrappedMessage->setFrom($address); } foreach ($replyToAddresses as $address) { $wrappedMessage->setReplyTo($address[0]); } foreach ($toRecipients as $address) { $wrappedMessage->addToRecipient($address[0]); } foreach ($ccRecipients as $address) { $wrappedMessage->addCcRecipient($address[0]); } foreach ($bccRecipients as $address) { $wrappedMessage->addBccRecipient($address[0]); } return $wrappedMessage; }