Esempio n. 1
0
 public function testCanProvideAddressObjectWhenSettingSender()
 {
     $sender = new Address('*****@*****.**');
     $this->message->setSender($sender);
     $test = $this->message->getSender();
     $this->assertSame($sender, $test);
 }
 /**
  * 
  * @param Message $message
  * @return ZendMessage
  */
 public static function convert(Message $message)
 {
     $mailMessage = new ZendMessage();
     $mailMessage->setSubject($message->getSubject());
     $mailMessage->setFrom($message->getFrom());
     $mailMessage->setTo($message->getTo());
     $mailMessage->setCc($message->getCc());
     $mailMessage->setBcc($message->getBcc());
     $mailMessage->setReplyTo($message->getReplyTo());
     $mailMessage->getHeaders()->addHeaders($message->getHeaders());
     if ($mailMessage->getSender()) {
         $mailMessage->setSender($message->getSender());
     }
     if ($message->isMultipart()) {
         $mimePart = new MimeMessage();
         if ($message->getBodyHtml()) {
             $part = new Part($message->getBodyHtml());
             $part->charset = $message->getCharset();
             $part->encoding = $message->getEncoding();
             $part->type = Mime::TYPE_HTML;
             $mimePart->addPart($part);
         }
         if ($message->getBodyText()) {
             $part = new Part($message->getBodyText());
             $part->charset = $message->getCharset();
             $part->encoding = $message->getEncoding();
             $part->type = Mime::TYPE_TEXT;
             $mimePart->addPart($part);
         }
         foreach ($message->getAttachments() as $attachment) {
             $mimePart->addPart($attachment->asMimePart());
         }
         foreach ($message->getParts() as $part) {
             $mimePart->addPart($part);
         }
         $mailMessage->setBody($mimePart);
     } else {
         $mailMessage->getHeaders()->addHeaderLine('Content-Type', $message->getContentType());
         $mailMessage->setEncoding($message->getEncoding());
         $mailMessage->setBody($message->getFilledBody());
     }
     return $mailMessage;
 }
Esempio n. 3
0
 /**
  * @param Message $message
  * @param null $transport
  * @return mixed
  */
 public function send(Message $message, $transport = null)
 {
     if (!$message->getSender()) {
         $sender = $transport ? $transport : 'default';
         $emailAddress = $this->getOption('addressList')[$sender];
         $message->setSender($emailAddress['address'], $emailAddress['name']);
     }
     return $this->getMailTransport($transport)->send($message);
 }
Esempio n. 4
0
 /**
  * Retrieve email address for envelope FROM 
  * 
  * @param  Message $message 
  * @return string
  */
 protected function prepareFromAddress(Message $message)
 {
     $sender = $message->getSender();
     if ($sender instanceof AddressDescription) {
         return $sender->getEmail();
     }
     $from = $message->from();
     if (!count($from)) {
         throw new Exception\RuntimeException(sprintf('%s transport expects either a Sender or at least one From address in the Message; none provided', __CLASS__));
     }
     $from->rewind();
     $sender = $from->current();
     return $sender->getEmail();
 }
Esempio n. 5
0
 /**
  * Prepare additional_parameters argument
  *
  * Basically, overrides the MAIL FROM envelope with either the Sender or
  * From address.
  *
  * @param  \Zend\Mail\Message $message
  * @return string
  */
 protected function prepareParameters(Mail\Message $message)
 {
     if ($this->isWindowsOs()) {
         return null;
     }
     $parameters = (string) $this->parameters;
     $sender = $message->getSender();
     if ($sender instanceof AddressInterface) {
         $parameters .= ' -f ' . $sender->getEmail();
         return $parameters;
     }
     $from = $message->getFrom();
     if (count($from)) {
         $from->rewind();
         $sender = $from->current();
         $parameters .= ' -f ' . $sender->getEmail();
         return $parameters;
     }
     return $parameters;
 }
Esempio n. 6
0
 /**
  * Retrieve email address for envelope FROM
  *
  * @param  Message $message
  * @throws Exception\RuntimeException
  * @return string
  */
 protected function prepareFromAddress(Message $message)
 {
     if ($this->getEnvelope() && $this->getEnvelope()->getFrom()) {
         return $this->getEnvelope()->getFrom();
     }
     $sender = $message->getSender();
     if ($sender instanceof Address\AddressInterface) {
         return $sender->getEmail();
     }
     $from = $message->getFrom();
     if (!count($from)) {
         // Per RFC 2822 3.6
         throw new Exception\RuntimeException(sprintf('%s transport expects either a Sender or at least one From address in the Message; none provided', __CLASS__));
     }
     $from->rewind();
     $sender = $from->current();
     return $sender->getEmail();
 }