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); }
/** * Sent a email to a user based on the set template. * * @param string * @param string $name * @param array $variables * * @return EmailService * @throws \Exception */ public function send($address, $name = null, array $variables = null) { $config = $this->getServiceManager()->get('Config')['service-email']; if (null !== $variables) { $this->setVariables($variables); } $this->setVariable('baseurl', $this->constructBaseUrl()); $message = $this->_constructEmail($address, $name); switch (strtolower($config['transport'])) { case 'sendmail': $transport = new Sendmail(); break; case 'smtp': $transport = new Smtp(new SmtpOptions($config['smtp'])); break; case 'file': $transport = new File(new FileOptions($config['file'])); break; default: throw new Exception('Invalid transport type: ' . $config->transport . '.'); } try { $transport->send($message); } catch (\Exception $e) { throw new \Exception('Could not send out the requested e-mail. An error occured: ' . $e->getMessage()); } $this->clean(); return $this; }