/** * @param string $subject * @param string $message * @param null|string|array $to * @param null|string|array $cc * @param null|string|array $bcc * @return array */ public function sendMail($subject, $message, $to = null, $cc = null, $bcc = null) { $return = array('success' => true, 'msg' => null); $partBody = new MimePart($this->getPartHeader() . $message . $this->getPartFooter()); $partBody->type = Mime::TYPE_HTML; $partBody->charset = 'utf-8'; $this->body->setParts(array($partBody)); $subject = '[' . APPLICATION_NAME . '] ' . $subject; $mail = new Message(); $mail->addFrom(self::FROM); $mail->setSubject($subject); $mail->setBody($this->body); $mail->setTo($to); if ($cc) { $mail->setCc($cc); } if ($bcc) { $mail->setBcc($bcc); } try { $this->transport->send($mail); } catch (\Exception $e) { $return['success'] = false; $return['msg'] = _('mail.message.not_sent'); //throw new \Exception($e->getMessage(), $e->getCode()); } return $return; }
public function sendEmail($from, $to, $cc, $subject, $body, $attachmentFilename) { $message = new Message(); $message->setFrom($from); $message->setTo($to); $message->setCc($cc); $message->setSubject($subject); $mimeMessage = new \Zend\Mime\Message(); $part = new \Zend\Mime\Part($body); $part->setType(Mime::TYPE_TEXT); $part->setCharset('UTF-8'); $mimeMessage->addPart($part); $part = new \Zend\Mime\Part('<p>' . $body . '<p>'); $part->setType(Mime::TYPE_HTML); $part->setCharset('UTF-8'); $mimeMessage->addPart($part); $part = new \Zend\Mime\Part($body); $part->setType(Mime::TYPE_OCTETSTREAM); $part->setEncoding(Mime::ENCODING_BASE64); $part->setFileName($attachmentFilename); $part->setDisposition(Mime::DISPOSITION_ATTACHMENT); $mimeMessage->addPart($part); $message->setBody($mimeMessage); $this->transport->send($message); $this->debugSection('ZendMailer', $subject . ' ' . $from . ' -> ' . $to); }
public function testCanSetCcListFromAddressList() { $list = new AddressList(); $list->add('*****@*****.**'); $this->message->addCc('*****@*****.**'); $this->message->setCc($list); $cc = $this->message->getCc(); $this->assertEquals(1, count($cc)); $this->assertFalse($cc->has('*****@*****.**')); $this->assertTrue($cc->has('*****@*****.**')); }
/** * @param ZendMailInterface $mail * * @return Mail\Message */ protected function createMessage(ZendMailInterface $mail) { $message = new Mail\Message(); $message->getHeaders()->addHeaders($mail->getHeaders()); $message->setTo($mail->getTo()); $message->setCc($mail->getCc()); $message->setBcc($mail->getBcc()); $message->setFrom($mail->getFrom()); $message->setReplyTo($mail->getReplyTo()); $message->setSubject($mail->getSubject()); $message->setBody($this->messageCreator->createMessage($mail)); return $message; }
public function sendMail() { if (false === $this->checkMailValidity()) { throw new \InvalidArgumentException('E-Mail can not be sent as the required fields where not filled in.'); } $mimeBody = new MimeMessage(); if ($this->mailBodyHtml instanceof ViewModel) { $htmlBodyPart = new MimePart($this->createBodyFromViewModel($this->mailBodyHtml)); $htmlBodyPart->charset = $this->mailCharset; $htmlBodyPart->encoding = $this->mailEncoding; $htmlBodyPart->type = 'text/html'; $mimeBody->addPart($htmlBodyPart); } if ($this->mailBodyText instanceof ViewModel) { $textBodyPart = new MimePart($this->createBodyFromViewModel($this->mailBodyText)); $textBodyPart->charset = $this->mailCharset; $textBodyPart->encoding = $this->mailEncoding; $textBodyPart->type = 'text/plain'; $mimeBody->addPart($textBodyPart); } $mailMessage = new MailMessage(); $mailMessage->setBody($mimeBody); $mailMessage->setEncoding($this->mailEncoding); $mailMessage->setFrom($this->mailFrom); $mailMessage->setSender($this->mailFrom); $mailMessage->setTo($this->mailTo); if ($this->mailBcc != '') { $mailMessage->setBcc($this->mailBcc); } if ($this->mailCc != '') { $mailMessage->setCc($this->mailCc); } $mailMessage->setSubject($this->mailSubject); if (2 <= count($mimeBody->getParts())) { $mailMessage->getHeaders()->get('content-type')->setType('multipart/alternative'); } try { $this->transport->send($mailMessage); return true; } catch (\Exception $e) { throw new \Exception($e); } }
/** * * @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 string $tpl * @param array $data * @return Message */ public function getMessage($tpl, array $data) { $mail = new Message(); $mail->setEncoding('UTF-8'); if (isset($data['encoding'])) { $mail->setEncoding($data['encoding']); } if (isset($data['from_address'])) { if (isset($data['from_name'])) { $mail->setFrom($data['from_address'], $data['from_name']); } else { $mail->setFrom($data['from_address']); } } if (isset($data['to'])) { if (isset($data['to_name'])) { $mail->setTo($data['to'], $data['to_name']); } else { $mail->setTo($data['to']); } } if (isset($data['cc'])) { $mail->setCc($data['cc']); } if (isset($data['bcc'])) { $mail->setBcc($data['bcc']); } if (isset($data['subject'])) { $mail->setSubject($data['subject']); } if (isset($data['sender'])) { $mail->setSender($data['sender']); } if (isset($data['replyTo'])) { $mail->setReplyTo($data['replyTo']); } $content = $this->renderMail($tpl, $data); $mail->setBody($content); $mail->getHeaders()->addHeaderLine('Content-Type', 'text/html; charset=UTF-8')->addHeaderLine('Content-Transfer-Encoding', '8bit'); return $mail; }
/** * @return Message */ protected function createMessage() { $options = $this->mailOptions->getMessageOptions(); // Prepare Mail Message $message = new Message(); $from = $options->getFrom(); if (!empty($from)) { $message->setFrom($from, $options->getFromName()); } $replyTo = $options->getReplyTo(); if (!empty($replyTo)) { $message->setReplyTo($replyTo, $options->getReplyToName()); } $to = $options->getTo(); if (!empty($to)) { $message->setTo($to); } $cc = $options->getCc(); if (!empty($cc)) { $message->setCc($cc); } $bcc = $options->getBcc(); if (!empty($bcc)) { $message->setBcc($bcc); } return $message; }
/** * @param string|Address\AddressInterface|array|AddressList|Traversable $toList * @param string|Address\AddressInterface|array|AddressList|Traversable $ccList * @param string|Address\AddressInterface|array|AddressList|Traversable $bccList * @param array $expectedResult * * @covers \EscoMail\Service\MailLogger::prepareAddressList * @dataProvider provideAddressList */ public function testPrepareAddressList($toList, $ccList, $bccList, $expectedResult) { $serviceManager = new ServiceManager(); $options = new ModuleOptions(); $mailLogger = new MailLogger($options, $serviceManager); $message = new Message(); if ($toList !== null) { $message->setTo($toList); } if ($ccList !== null) { $message->setCc($ccList); } if ($bccList !== null) { $message->setBcc($bccList); } $result = $this->invokeMethod($mailLogger, 'prepareAddressList', array($message)); $this->assertEquals($expectedResult, $result); }