public function send(Message $message) { // most documentation of sendmail using the "-f" flag lacks a space after it, however // we've encountered servers that seem to require it to be in place. $sent = mail($message->getHeader('To'), $message->getSubject(), $message->getEncodedBody(true), $message->headersToString(), '-f ' . $message->getHeader('Return-Path')); if ($sent) { $this->logger && $this->logger->addDebug('Sent: ' . $message->getHeader('To')); } else { throw new SendException('The message could not be delivered using mail().'); } return $sent; }
public function send(Message $message) { $in = $message->toString(); $email = !is_null($message->getFakeFromEmail()) ? $message->getFakeFromEmail() : $message->getFromEmail(); // is popen() enabled? if (!function_exists('popen') || FALSE === ($fp = @popen($this->mailpath . ' -oi -f ' . $email . ' -t -r ' . $email, 'w'))) { // server probably has popen disabled, so nothing we can do to get a verbose error. throw new SendException('The message could not be delivered using sendmail. The function popen() is disabled.'); } fputs($fp, $message->headersToString()); fputs($fp, $in); $status = pclose($fp); if ($status !== 0) { throw new SendException('Cannot open a socket to Sendmail. Check settings. Status code: ' . $status . '.'); } $this->logger && $this->logger->addDebug('Sent: ' . $message->getHeader('To')); return true; }