/** * 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 Message $message * @return string */ protected function prepareParameters(Message $message) { if ($this->isWindowsOs()) { return null; } $parameters = (string) $this->parameters; $sender = $message->getSender(); if ($sender instanceof AddressDescription) { $parameters .= ' -r ' . $sender->getEmail(); return $parameters; } $from = $message->from(); if (count($from)) { $from->rewind(); $sender = $from->current(); $parameters .= ' -r ' . $sender->getEmail(); return $parameters; } return $parameters; }