/** * Create a new message instance. * * @return \Mail\Message */ protected function createMessage() { $message = new Message(new Swift_Message()); // If a global from address has been specified we will set it on every message // instances so the developer does not have to repeat themselves every time // they create a new message. We will just go ahead and push the address. if (isset($this->from['address'])) { $message->from($this->from['address'], $this->from['name']); } return $message; }
/** * Send an email. * * @param Message $msg * @throws Protocol\Exception * if the the sender address or recpients are undefined. * @return bool */ public function send(Message $mail) { if ($mail->getFrom() === null) { throw new Protocol\Exception("The message does not have a from address."); } if (count($mail->getTo()) + count($mail->getCc()) + count($mail->getBcc()) < 1) { throw new Protocol\Exception("The message must have a recipient."); } if ($mail->getReturnPath() !== null) { $reversePath = $mail->getReturnPath(); } elseif ($mail->getSender() !== null) { $reversePath = $mail->getSender(); } else { $reversePath = $mail->getFrom()->email; } $this->mail($reversePath); foreach ($mail->getTo() as $recipient) { $this->rcpt($recipient->email); } foreach ($mail->getCc() as $recipient) { $this->rcpt($recipient->email); } foreach ($mail->getBcc() as $recipient) { $this->rcpt($recipient->email); } $data = $mail->toString(); $this->data($data); $this->close(); return true; }
/** * Add the content to a given message. * * @param \Mail\Message $message * @param string $view * @param string $plain * @param array $data * @return void */ protected function addContent($message, $view, $plain, $data) { if (isset($view)) { $message->setBody($this->getView($view, $data), 'text/html'); } if (isset($plain)) { $message->addPart($this->getView($plain, $data), 'text/plain'); } }
public function testSmtpSendHtml() { $this->_connection->ehlo(); $this->_connection->authenticate($this->_authConfig); $mail = Message::newInstance()->setFrom(TESTS_MAIL_SMTP_SENDER, 'Test Sender')->addTo(TESTS_MAIL_SMTP_RECIPIENT, 'Test Recipient')->addCc(TESTS_MAIL_SMTP_CC_RECIPIENT, 'Test CC')->addBcc(TESTS_MAIL_SMTP_BCC_RECIPIENT, 'Test BCC')->setPriority(Message::PRIORITY_HIGHEST)->setUserAgent('MailKit')->setSubject("Test message from PHPUnit.")->setBody("<strong>Sent by SmtpTest::testSmtpSendHtml.")->setContentType('text/html'); $this->assertTrue($this->_connection->send($mail)); }