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; }
/** * @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); }
/** * 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(); }
/** * 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; }
/** * 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(); }