Ejemplo n.º 1
0
 /**
  * @param string $from
  * @param string $name
  * @param string | \Zend\View\Model\ViewModel $body
  * @param \Zend\View\Renderer\RendererInterface $renderer
  */
 public function __construct($from = "", $name = "", RendererInterface $renderer = null)
 {
     $this->message = new Message();
     $this->message->setEncoding(self::DEFAULT_CHARSET);
     if ($from) {
         $this->message->setFrom($from, $name);
     }
     $this->renderer = $renderer;
 }
Ejemplo n.º 2
0
 /**
  * Build Message
  *
  * @return MailMessage
  */
 public function buildMessage()
 {
     // prepare html body
     $htmlBody = $this->renderer->render($this->viewModel);
     // prepare text body
     $textBody = $this->buildTextBody($htmlBody);
     // prepare subject
     $subject = $this->buildSubject($htmlBody);
     // prepare html part
     $htmlPart = new MimePart($this->buildHtmlHeader() . $htmlBody . $this->buildHtmlFooter());
     $htmlPart->type = 'text/html';
     // prepare text part
     $textPart = new MimePart($textBody);
     $textPart->type = 'text/plain';
     // prepare mime message
     $mailBody = new MimeMessage();
     $mailBody->setParts(array($textPart, $htmlPart));
     // prepare message
     $this->message = new MailMessage();
     $this->message->setEncoding($this->encoding);
     $this->message->setFrom($this->senderMail, $this->senderName);
     $this->message->setSubject($subject);
     $this->message->setBody($mailBody);
     // return mailer
     return $this;
 }
 static function sendEmail($emailTo, $emailFrom, $subject, $body, $transport)
 {
     $message = new Message();
     $message->setEncoding('UTF-8')->addTo($emailTo)->addFrom($emailFrom)->setSubject($subject)->setBody($body);
     $transport->send($message);
     return;
 }
Ejemplo n.º 4
0
 public function submitAction()
 {
     $result = "";
     $contact = $this->params()->fromPost();
     $captcha = new Captcha(array('name' => 'captcha', 'wordLen' => 6, 'timeout' => 600));
     if ($captcha->isValid($_POST['captcha'], $_POST)) {
         unset($contact['submit']);
         $contact = array_filter($contact);
         if ($contact && is_array($contact)) {
             $mail = new Mail\Message();
             $html = '<p>Contact from Kingsy.co.uk</p><p>=-=-=-=-=-=-=-=-=-=-=-=-=-=</p><p><span></span>From: <span>' . $contact["name"] . '</span></p><p><span></span>Email: <span>' . $contact["email"] . '</span></p><p><span></span>Content<p>' . $contact["content"] . '</p></p>';
             $mail->setFrom('*****@*****.**', 'Contact Form - Kingsy.co.uk')->addTo("*****@*****.**")->setSubject('Contacted');
             $bodyPart = new MimeMessage();
             $bodyMessage = new MimePart($html);
             $bodyMessage->type = 'text/html';
             $bodyPart->setParts(array($bodyMessage));
             $mail->setBody($bodyPart);
             $mail->setEncoding('UTF-8');
             try {
                 $transport = new Mail\Transport\Sendmail();
                 $transport->send($mail);
                 $result = true;
             } catch (Exception $e) {
                 print_r($e);
             }
         } else {
             $result = false;
         }
     } else {
         $result = false;
     }
     return new ViewModel(array('result' => $result));
 }
Ejemplo n.º 5
0
 public function send($fromAddress, $fromName, $replyToAddress, $replyToName, $toAddress, $toName, $subject, array $mimeParts)
 {
     $mail = new Message();
     if ($fromAddress && $fromName) {
         $mail->setFrom($fromAddress, $fromName);
     } else {
         if ($fromAddress) {
             $mail->setFrom($fromAddress);
         }
     }
     if ($replyToAddress && $replyToName) {
         $mail->setReplyTo($replyToAddress, $replyToName);
     } else {
         if ($replyToAddress) {
             $mail->setReplyTo($replyToAddress);
         }
     }
     if ($toAddress && $toName) {
         $mail->setTo($toAddress, $toName);
     } else {
         if ($toAddress) {
             $mail->setTo($toAddress);
         }
     }
     $mail->setSubject($subject);
     $mail->setEncoding('utf-8');
     $mime = new MimeMessage();
     $mime->setParts($mimeParts);
     $mail->setBody($mime);
     $this->mailTransport->send($mail);
     $this->getEventManager()->trigger('send', $mail);
 }
Ejemplo n.º 6
0
 public function send(SmtpTransport $transport = null, Message $message, array $attachments = array())
 {
     if ($transport == null) {
         $transport = new Sendmail();
     }
     $content = $message->getBody();
     $parts = $attachments;
     $parts = array();
     $bodyMessage = new \Zend\Mime\Message();
     $multiPartContentMessage = new \Zend\Mime\Message();
     $text = new Part(html_entity_decode(strip_tags(str_replace("<br />", "\n", $content))));
     $text->type = "text/plain";
     $text->encoding = Mime::ENCODING_QUOTEDPRINTABLE;
     $text->charset = 'UTF-8';
     $multiPartContentMessage->addPart($text);
     $html = new Part($content);
     $html->type = Mime::TYPE_HTML;
     $html->encoding = Mime::ENCODING_QUOTEDPRINTABLE;
     $html->charset = 'utf-8';
     $multiPartContentMessage->addPart($html);
     $multiPartContentMimePart = new Part($multiPartContentMessage->generateMessage());
     $multiPartContentMimePart->type = 'multipart/alternative;' . PHP_EOL . ' boundary="' . $multiPartContentMessage->getMime()->boundary() . '"';
     $bodyMessage->addPart($multiPartContentMimePart);
     foreach ($attachments as $attachment) {
         $bodyMessage->addPart($attachment);
     }
     $message->setBody($bodyMessage);
     $message->setEncoding("UTF-8");
     $transport->send($message);
 }
Ejemplo n.º 7
0
 public function setEncoding($encoding = null)
 {
     if ($encoding == null) {
         $encoding = $this->mailMessageConfigObj->getEncoding();
     }
     parent::setEncoding($encoding);
     return $this;
 }
Ejemplo n.º 8
0
 protected function sendMessage()
 {
     $oMessage = new Message();
     $oMessage->setEncoding('UTF-8')->addFrom($this->_sFrom)->addTo($this->_sEmailAddress)->setSubject($this->_sSubject)->setBody($this->_oBody);
     $oHeaders = $oMessage->getHeaders();
     $oHeaders->removeHeader('Content-Type');
     $oHeaders->addHeaderLine('Content-Type', 'text/html; charset=UTF-8');
     $this->_oTransport->send($oMessage);
     $this->clearAll();
 }
Ejemplo n.º 9
0
 /**
  * @group ZF2-507
  */
 public function testDefaultDateHeaderEncodingIsAlwaysAscii()
 {
     $this->message->setEncoding('utf-8');
     $headers = $this->message->getHeaders();
     $header = $headers->get('date');
     $date = date('r');
     $date = substr($date, 0, 16);
     $test = $header->getFieldValue();
     $test = substr($test, 0, 16);
     $this->assertEquals($date, $test);
 }
Ejemplo n.º 10
0
 /**
  * Get a blank email message object.
  *
  * @return Message
  */
 public function getNewMessage()
 {
     $message = new Message();
     $message->setEncoding('UTF-8');
     $headers = $message->getHeaders();
     $ctype = new ContentType();
     $ctype->setType('text/plain');
     $ctype->addParameter('charset', 'UTF-8');
     $headers->addHeader($ctype);
     return $message;
 }
Ejemplo n.º 11
0
 /**
  * @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;
 }
 /**
  * @param TodoWasMarkedAsExpired $event
  * @return void
  */
 public function __invoke(TodoWasMarkedAsExpired $event)
 {
     $todo = $this->todoFinder->findById($event->todoId()->toString());
     $user = $this->userFinder->findById($todo->assignee_id);
     $message = sprintf('Hi %s! Just a heads up: your todo `%s` has expired on %s.', $user->name, $todo->text, $todo->deadline);
     $mail = new Mail\Message();
     $mail->setBody($message);
     $mail->setEncoding('utf-8');
     $mail->setFrom('*****@*****.**', 'Proophessor-do');
     $mail->addTo($user->email, $user->name);
     $mail->setSubject('Proophessor-do Todo expired');
     $this->mailer->send($mail);
 }
Ejemplo n.º 13
0
 /**
  * Create record feedback form and send feedback to correct recipient.
  *
  * @return mixed
  * @throws \Exception
  */
 public function feedbackAction()
 {
     $view = $this->createViewModel();
     if ($this->formWasSubmitted('submitFeedback')) {
         $flashMsg = $this->flashMessenger();
         $message = $this->params()->fromPost('feedback_message');
         $senderEmail = $this->params()->fromPost('from');
         $validator = new \Zend\Validator\EmailAddress();
         if (!$validator->isValid($senderEmail)) {
             $flashMsg->setNamespace('error')->addMessage('Email address is invalid');
             return $view;
         }
         $driver = $this->loadRecord();
         $dataSource = $driver->getDataSource();
         $dataSources = $this->getServiceLocator()->get('VuFind\\Config')->get('datasources');
         $inst = isset($dataSources->{$dataSource}) ? $dataSources->{$dataSource} : null;
         $recipientEmail = isset($inst->feedbackEmail) ? $inst->feedbackEmail : null;
         if ($recipientEmail == null) {
             throw new \Exception('Feedback Module Error:' . 'Recipient Email Unset (see datasources.ini)');
         }
         $emailSubject = $this->translate('feedback_on_record', ['%%record%%' => $driver->getBreadcrumb()]);
         $serverUrl = $this->getRequest()->getServer('REQUEST_SCHEME');
         $serverUrl .= '://' . $this->getRequest()->getServer('HTTP_HOST');
         $emailMessage = "\n" . $this->translate('This email was sent from');
         $emailMessage .= ": " . $senderEmail . "\n";
         $emailMessage .= "------------------------------------------------------------\n";
         $emailMessage .= $this->getViewRenderer()->partial('RecordDriver/SolrDefault/result-email.phtml', ['driver' => $driver, 'info' => ['baseUrl' => $serverUrl]]);
         $emailMessage .= "------------------------------------------------------------\n";
         if (!empty($message)) {
             $emailMessage .= "\n" . $this->translate('Message From Sender') . ":\n";
             $emailMessage .= "\n" . $message . "\n\n";
         }
         // This sets up the email to be sent
         $mail = new Mail\Message();
         $mail->setEncoding('UTF-8');
         $mail->setBody($emailMessage);
         $mail->setFrom($senderEmail);
         $mail->addTo($recipientEmail);
         $mail->setSubject($emailSubject);
         $headers = $mail->getHeaders();
         $headers->removeHeader('Content-Type');
         $headers->addHeaderLine('Content-Type', 'text/plain; charset=UTF-8');
         $this->getServiceLocator()->get('VuFind\\Mailer')->getTransport()->send($mail);
         if (!$this->inLightbox()) {
             $flashMsg->setNamespace('info')->addMessage('Thank you for your feedback');
             $this->redirectToRecord('');
         }
     }
     return $view;
 }
Ejemplo n.º 14
0
 public function addMail($to, $from, $subject, $body)
 {
     $message = new Message();
     $bodyPart = new MimeMessage();
     $bodyMessage = new MimePart($body);
     $bodyMessage->type = 'text/html';
     $bodyMessage->charset = 'UTF-8';
     $bodyPart->setParts([$bodyMessage]);
     $message->setFrom($from);
     $message->addTo($to);
     $message->setEncoding("UTF-8");
     $message->setSubject($subject);
     $message->setBody($bodyPart);
     $message->type = 'text/html';
     $this->queue[] = $message;
 }
Ejemplo n.º 15
0
 public function send()
 {
     $this->initialise();
     $body = new MimeMessage();
     $htmlPart = new MimePart($this->body);
     $htmlPart->type = "text/html";
     $partArray = array($htmlPart);
     $body->setParts($partArray);
     $message = new Mail\Message();
     $message->setFrom($this->from);
     $message->addTo($this->to);
     $message->setSubject($this->subject);
     $message->setEncoding("UTF-8");
     $message->setBody($body);
     $transport = $this->getTransport();
     $transport->send($message);
 }
Ejemplo n.º 16
0
 public function sendMail($email, $fullname, $linkActive)
 {
     $message = new \Zend\Mail\Message();
     $smtpOption = new SmtpOptions($this->_config);
     $message->setFrom($this->_config['connectionConfig']['username'], "bookStoreOnline");
     $message->setTo($email, $fullname);
     $message->setSubject("Kích hoạt tài khoản");
     $message->setEncoding("utf-8");
     //set HTML
     $content = new \Zend\Mime\Part("<p>Xin chào " . $fullname . "</p> \n\t\t\t<p>Bạn vừa đăng ký tài khoản tại website BookOnline,\n\t\t\tđể hoàn thành việc đăng ký bạn cui lòng <a href='" . $linkActive . "'>Click vào đây</a>\n\t\t\tđể kích hoạt tài khoản</p>");
     $content->type = Mime::TYPE_HTML;
     $content->charset = "utf-8";
     $mimeMessage = new \Zend\Mime\Message();
     $mimeMessage->setParts(array($content));
     $message->setBody($mimeMessage);
     $transport = new \Zend\Mail\Transport\Smtp($smtpOption);
     $transport->send($message);
 }
Ejemplo n.º 17
0
 function send($to, $subject, $html, $ical = null)
 {
     $message = new Message();
     $message->addTo($to)->addFrom('*****@*****.**')->setSubject($subject);
     $bodyPart = new \Zend\Mime\Message();
     $bodyMessage = new \Zend\Mime\Part($html);
     $bodyMessage->type = 'text/html';
     $parts = array($bodyMessage);
     if ($ical) {
         $icalMessage = new \Zend\Mime\Part($ical);
         $icalMessage->type = 'text/calendar';
         $parts = array_merge($parts, array($icalMessage));
     }
     $bodyPart->setParts($parts);
     $message->setBody($bodyPart);
     $message->setEncoding('UTF-8');
     $this->transport->send($message);
 }
 public function enviar()
 {
     $body = $this->assunto;
     $htmlPart = new MimePart($body);
     $htmlPart->type = "text/html";
     $textPart = new MimePart($body);
     $textPart->type = "text/plain";
     $body = new MimeMessage();
     $body->setParts(array($textPart, $htmlPart));
     $message = new Mail\Message();
     $message->setFrom($this->rementente);
     $message->addTo($this->destinatario);
     $message->setSubject($this->titulo);
     $message->setEncoding("UTF-8");
     $message->setBody($body);
     $message->getHeaders()->get('content-type')->setType('multipart/alternative');
     $transport = new Mail\Transport\Sendmail();
     $transport->send($message);
 }
 private function sendEmail($destino, $subject, $body)
 {
     try {
         $trans = new SmtpTransport();
         $msg = new Message();
         $qb = $this->getEntityManager()->getRepository("Application\\Entity\\Email")->createQueryBuilder('e');
         $emails = $qb->select()->getQuery()->getResult();
         $email = $emails[0];
         $options = new SmtpOptions(array('name' => $email->getEmailSmtp(), 'host' => $email->getEmailSmtp(), 'port' => 587, 'connection_class' => 'login', 'connection_config' => array('username' => $email->getEmailUsername(), 'password' => $email->getEmailPassword(), 'ssl' => 'tls')));
         $msg->addFrom($email->getEmailUsername())->addTo($destino)->setsubject($subject);
         $msg->setBody($body);
         $msg->setEncoding("UTF-8");
         $trans->setOptions($options);
         $trans->send($msg);
     } catch (Exception $e) {
         $this->flashMessenger()->addErrorMessage("Falha ao enviar email");
     }
     return $this->redirect()->toRoute("questions-list");
 }
Ejemplo n.º 20
0
 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);
     }
 }
Ejemplo n.º 21
0
 /**
  * 
  * @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;
 }
Ejemplo n.º 22
0
 public function indexAction()
 {
     $config = $this->getServiceLocator()->get('Config');
     // Setup SMTP transport using LOGIN authentication
     $transport = new SmtpTransport();
     $options = new SmtpOptions(array('name' => 'gmail', "host" => "smtp.gmail.com", "port" => 587, "connection_class" => "plain", "connection_config" => array("username" => "*****@*****.**", "password" => "noeliabelen", "ssl" => "tls")));
     $transport->setOptions($options);
     $message = new Message();
     $message->addFrom("*****@*****.**", "Tineo")->addTo("*****@*****.**")->setSubject("Sending an email from Zend\\Mail!");
     $message->setBody("This is the message body.");
     $message->setEncoding("UTF-8");
     $transport = new SmtpTransport();
     $transport->setOptions($options);
     // $transport->send($message);
     // $translator = $this->getServiceLocator ()->get ( 'translator' );
     // $translator->setLocale ( "en_US" );
     // $config['translator']['locale'] = "En_US" ;
     // var_dump($config['translator']['locale']);
     return new ViewModel();
 }
Ejemplo n.º 23
0
 /**
  * Contact page 
  * 
  * @author Stoyan Rangelov
  * @param array $data
  * @return integer|array
  */
 public function contactPage(array $data)
 {
     //Input filters
     $inputFilter = new \Common\InputFilter\Contact();
     $customFilter = $inputFilter->contactPageEmail();
     $inputFilter->setInputFilter($customFilter);
     $filter = $inputFilter->getInputFilter();
     $filter->setData($data);
     if ($filter->isValid()) {
         $from = $this->getSenderEmail();
         $to = $this->getReceiverEmail();
         $subject = "You have message from the contact form";
         $htmlBody = "Hello Incoverage Team<br /> \n                        <b>{$data['email']}</b>\n                        <br />\n                        <b>{$data['name']} wrote:</b>\n                        <hr />\n                        {$data['message']}\n                        <br /> ";
         if (isset($data['phone'])) {
             $htmlBody .= "<hr /> phone: {$data['phone']}";
         }
         $textBody = "";
         $htmlPart = new MimePart($htmlBody);
         $htmlPart->type = "text/html; charset=UTF-8";
         $textPart = new MimePart($textBody);
         $textPart->type = "text/plain; charset=UTF-8";
         $body = new MimeMessage();
         $body->setParts(array($textPart, $htmlPart));
         $message = new Mail\Message();
         $message->setFrom($from)->addTo($to)->setSubject($subject);
         $message->setEncoding("UTF-8");
         $message->setBody($body);
         $transport = new SmtpTransport();
         if ($this->getDefaultConfig()['user_module']['using_gmail']) {
             $transport->setOptions($this->getSMTPOptions());
         }
         $transport->send($message);
         $result = array();
         $result['status_code'] = 201;
         return $result;
     } else {
         return $this->getErrorMessages($filter);
     }
 }
Ejemplo n.º 24
0
 public function send($email, $subject, $content, $url = null)
 {
     $view = new ViewModel();
     $view->setTemplate('email/common');
     $view->setVariables(array('title' => $subject, 'content' => $content, 'url' => $url));
     $viewRender = $this->getServiceLocator()->get('ViewRenderer');
     $htmlBody = $viewRender->render($view);
     $htmlPart = new MimePart($htmlBody);
     $htmlPart->type = Mime::TYPE_HTML;
     $body = new MimeMessage();
     $body->setParts(array($htmlPart));
     $message = new Message();
     $message->setEncoding("UTF-8");
     $fromEmail = $this->config['transport']['options']['connection_config']['username'];
     $message->addFrom($fromEmail, "e财会")->addTo($email)->setSubject($subject);
     $message->setBody($body);
     // Set UTF-8 charset
     $headers = $message->getHeaders();
     $headers->removeHeader('Content-Type');
     $headers->addHeaderLine('Content-Type', 'text/html; charset=UTF-8');
     $this->smtp->send($message);
 }
Ejemplo n.º 25
0
 /**
  * @param string $queue_name
  * @param string $to
  * @param string $subject
  * @param string $body
  * @param null $from
  * @param true $html
  */
 public function addMail($queue_name, $to, $subject, $body, $from = null, $html = false)
 {
     $message = new \Zend\Mail\Message();
     $message->setTo($to);
     $message->setSubject($this->translate ? $this->translate->translate($subject) : $subject);
     if ($html) {
         $bodyPart = new \Zend\Mime\Message();
         $bodyMessage = new \Zend\Mime\Part($body);
         $bodyMessage->type = 'text/html';
         $bodyPart->setParts(array($bodyMessage));
         $message->setBody($bodyPart);
     } else {
         $message->setBody($body);
     }
     $message->setEncoding("UTF-8");
     if ($from) {
         $message->setFrom($from);
     } else {
         $message->setFrom($this->config['default_from']);
     }
     $this->table->add($queue_name, $message);
 }
Ejemplo n.º 26
0
 public function send($data = array(), $viewModel)
 {
     if ($viewModel instanceof ModelInterface) {
         $body = $this->renderModel($viewModel);
     } elseif (is_string($viewModel)) {
         $body = $this->renderText($viewModel);
     } else {
         throw new \Exception('Invalid viewModel for mail body');
     }
     $text = new MimePart('');
     $text->type = "text/plain";
     $html = new MimePart($body);
     $html->type = "text/html";
     $body_html = new MimeMessage();
     $body_html->setParts(array($text, $html));
     $mail = new Mail\Message();
     $mail->setEncoding("UTF-8");
     $mail->setBody($body_html);
     $mail->setFrom($this->_from_mail, $this->_from_name);
     $mail->addTo($data['to']);
     if (isset($data['cc'])) {
         $mail->addCc($data['cc']);
     }
     if (isset($data['bcc'])) {
         $mail->addBcc($data['bcc']);
     }
     if (isset($data['replyTo'])) {
         $mail->addReplyTo($data['replyTo'], $data['replyNameTo']);
     } else {
         $mail->addReplyTo($this->_from_mail, $this->_from_name);
     }
     if (isset($data['dkimSign'])) {
         $signer = $this->getController()->getServiceLocator()->get('DkimSigner');
         $signer->signMessage($mail);
     }
     $mail->setSubject($data['subject']);
     return $this->_transport->send($mail);
 }
Ejemplo n.º 27
0
 /**
  * @param  UserInterface $user
  * @return Message
  */
 protected function getMessage(UserInterface $user)
 {
     // Emailing logic here
     $content = $this->renderMessageContent($user);
     $htmlPart = new MimePart($content);
     $htmlPart->type = "text/html";
     $textPart = new MimePart($content);
     $textPart->type = "text/plain";
     $body = new MimeMessage();
     $body->setParts(array($textPart, $htmlPart));
     $message = new Message();
     $message->addFrom($this->getOptions()->get('from_email'), $this->getOptions()->get('from_name'));
     $message->addTo($user->getEmail(), $user->getFirstName() . ' ' . $user->getLastName());
     $ccs = $this->getOptions()->get('copy_to', array());
     foreach ($ccs as $cc) {
         $message->addCc($cc);
     }
     $message->setSubject($this->getOptions()->get('reset_subject', 'Please Reset Your Password'));
     $message->setEncoding("UTF-8");
     $message->setBody($body);
     $message->getHeaders()->get('content-type')->setType('multipart/alternative');
     return $message;
 }
Ejemplo n.º 28
0
 /**
  * @param string $to
  * @param string $toName
  * @param string $subject
  * @param string $message
  * @param string $from
  * @param string $fromName
  *
  * @return bool|FlashMessenger
  */
 public function sendMail($to, $toName, $subject, $message, $from, $fromName)
 {
     $transport = new SmtpTransport();
     $options = new SmtpOptions(['host' => $this->settings->__invoke('mail', 'host'), 'name' => $this->settings->__invoke('mail', 'name'), 'connection_class' => $this->settings->__invoke('mail', 'connection_class'), 'connection_config' => ['username' => $this->settings->__invoke('mail', 'username'), 'password' => $this->settings->__invoke('mail', 'password'), 'ssl' => $this->settings->__invoke('mail', 'ssl')], 'port' => $this->settings->__invoke('mail', 'port')]);
     $htmlPart = new MimePart($message);
     $htmlPart->type = 'text/html';
     $body = new MimeMessage();
     $body->setParts([$htmlPart]);
     $mail = new Message();
     $mail->setFrom($from, $fromName);
     $mail->addTo($to, $toName);
     $mail->setSubject($subject);
     $mail->setEncoding('UTF-8');
     $mail->setBody($body);
     $mail->getHeaders()->addHeaderLine('MIME-Version: 1.0');
     $mail->getHeaders()->addHeaderLine('Content-Type', 'text/html; charset=UTF-8');
     try {
         $transport->setOptions($options);
         $transport->send($mail);
         return true;
     } catch (\Exception $e) {
         return $this->flashMessenger->addMessage('Email not send', 'error');
     }
 }
Ejemplo n.º 29
0
 public function send(ZendMessage $message = null)
 {
     $message = $message ? $message : $this->message;
     if (!$message) {
         throw new Exception\InvalidArgumentException(sprintf('Mail message not set'));
     }
     $transports = $this->transports;
     if (!$transports) {
         throw new Exception\InvalidArgumentException(sprintf('Mail transport not set'));
     }
     $conflictTransports = $this->conflictTransports;
     $transportTypes = array_keys($transports);
     if (count(array_intersect($conflictTransports, $transportTypes)) > 1) {
         throw new Exception\InvalidArgumentException(sprintf('Mail transports conflicted by %s', implode(",", array_intersect($conflictTransports, $transportTypes))));
     }
     $zendMessage = new ZendMessage();
     $zendMessage->setBody($message->getBody());
     $zendMessage->setHeaders($message->getHeaders());
     $zendMessage->setEncoding($message->getEncoding());
     $message = $zendMessage;
     foreach ($transports as $transportType => $transport) {
         $transport->send($message);
     }
 }
Ejemplo n.º 30
0
 public function testSettingNonAsciiEncodingForcesMimeEncodingOfSomeHeaders()
 {
     $this->message->addTo('*****@*****.**', 'ZF DevTeam');
     $this->message->addFrom('*****@*****.**', "Matthew Weier O'Phinney");
     $this->message->addCc('*****@*****.**', 'ZF Contributors List');
     $this->message->addBcc('*****@*****.**', 'ZF CR Team');
     $this->message->setSubject('This is a subject');
     $this->message->setEncoding('UTF-8');
     $test = $this->message->getHeaders()->toString();
     $expected = '=?UTF-8?Q?ZF=20DevTeam?=';
     $this->assertContains($expected, $test);
     $this->assertContains('<*****@*****.**>', $test);
     $expected = "=?UTF-8?Q?Matthew=20Weier=20O'Phinney?=";
     $this->assertContains($expected, $test, $test);
     $this->assertContains('<*****@*****.**>', $test);
     $expected = '=?UTF-8?Q?ZF=20Contributors=20List?=';
     $this->assertContains($expected, $test);
     $this->assertContains('<*****@*****.**>', $test);
     $expected = '=?UTF-8?Q?ZF=20CR=20Team?=';
     $this->assertContains($expected, $test);
     $this->assertContains('<*****@*****.**>', $test);
     $expected = 'Subject: =?UTF-8?Q?This=20is=20a=20subject?=';
     $this->assertContains($expected, $test);
 }