/** * Test body in advanced hierarchy */ public function testBodyAdvanced() { $message1 = new Mime\Message(); $htmlPart = new Mime\Part('simple <b>html</b>'); $htmlPart->type = 'text/html'; $textPart = new Mime\Part('simple text'); $textPart->type = 'text/plain'; $emptPart = new Mime\Part('simple text alternative'); $emptPart->type = ''; $message1->addPart($htmlPart); $message2 = clone $message1; $message2->addPart($textPart); $this->message->setBody(array($message1, $message2, 'text/plain' => $emptPart)); $body = $this->message->getBody(); $this->assertInstanceOf('Zend\\Mime\\Message', $body); $this->assertMimeMessages(array('multipart/mixed' => $message2->generateMessage(\Zend\Mail\Headers::EOL), 'text/html' => 'simple <b>html</b>', 'text/plain' => 'simple text alternative'), $body); }
/** * * @return \Zend\View\Model\ViewModel */ public function indexAction() { $sentSuccess = null; $request = $this->getRequest(); $postdata = $request->getPost(); $serviceLocator = $this->getServiceLocator(); $form = $serviceLocator->get('Form')->get('Grid\\Share\\Email'); $translator = $serviceLocator->get('translator'); $auth = $serviceLocator->get('Zend\\Authentication\\AuthenticationService'); if ($request->isPost()) { $form->setData($postdata); if ($form->isValid()) { $data = $form->getData(); $renderer = $serviceLocator->get('ViewRenderer'); $messageView = new ViewModel(); $messageView->setTemplate('grid/share/email/message'); $messageView->setVariables(array('senderName' => $data['senderName'], 'recipientName' => $data['recipientName'], 'shareUrl' => $data['shareUrl'], 'message' => $data['message'])); $bodyHtml = $renderer->render($messageView); $mail = new Message(); $mail->setBody($bodyHtml); $mail->setFrom($data['senderEmail'], $data['senderName']); $mail->addTo($data['recipientEmail'], $data['recipientName']); $mail->setSubject($translator->translate('share.email.message.subject', 'share')); $mailServiceFactory = new ServiceFactory(); $mailSender = $mailServiceFactory->createService($serviceLocator); $mailSender->send($mail); $sentSuccess = true; } } else { $prefillData = array('shareUrl' => $this->params()->fromQuery('shareUrl')); if ($auth->hasIdentity()) { $prefillData['senderEmail'] = $auth->getIdentity()->email; $prefillData['senderName'] = $auth->getIdentity()->displayName; } $form->setData($prefillData); } $view = new ViewModel(); $view->setVariable('form', $form); $view->setVariable('sentResultSuccess', $sentSuccess); $view->setTerminal(true); return $view; }
/** * @param array|\Traversable|\Zend\Mail\Message $message * @return \Zend\Mail\Message */ public function createMessage($message) { if (!$message instanceof Mail\Message) { $mail = new Message(); foreach ($message as $option => $value) { $method = array($mail, 'set' . ucfirst($option)); if (is_callable($method)) { $method($value); } else { $mail->getHeaders()->addHeaderLine($option, $value); } } $message = $mail; } $from = $message->getFrom(); if (empty($from) || $from->count() < 1) { $defaultFrom = $this->getDefaultFrom(); $defaultReplyTo = $this->getDefaultReplyTo(); $message->setFrom($defaultFrom['email'], $defaultFrom['name']); $message->setReplyTo($defaultReplyTo['email'], $defaultReplyTo['name']); } return $message; }