setType() public method

Should only be used for manually setting multipart content types.
public setType ( string $type ) : Zend_Mail
$type string Content type
return Zend_Mail Implements fluent interface
Beispiel #1
0
 /**
  * Send email notification to moderators when a new comment is posted
  * 
  * @todo move logic to model / library class
  * 
  * @param HumanHelp_Model_Comment $comment
  * @param HumanHelp_Model_Page $page
  */
 public function _sendNewCommentEmail(HumanHelp_Model_Comment $comment, HumanHelp_Model_Page $page)
 {
     $config = Zend_Registry::get('config');
     $emailTemplate = new Zend_View();
     $emailTemplate->setScriptPath(APPLICATION_PATH . '/views/emails');
     $emailTemplate->addHelperPath(APPLICATION_PATH . '/views/helpers', 'HumanHelp_View_Helper_');
     $emailTemplate->setEncoding('UTF-8');
     $emailTemplate->comment = $comment;
     $emailTemplate->page = $page;
     $emailTemplate->baseUrl = 'http://' . $_SERVER['HTTP_HOST'] . $this->view->baseUrl;
     $bodyHtml = $emailTemplate->render('newComment.phtml');
     $bodyText = $emailTemplate->render('newComment.ptxt');
     $mail = new Zend_Mail();
     $mail->setType(Zend_Mime::MULTIPART_ALTERNATIVE)->setBodyHtml($bodyHtml, 'UTF-8')->setBodyText($bodyText, 'UTF-8')->setSubject("New comment on '{$page->getTitle()}' in '{$page->getBook()->getTitle()}'")->setFrom($config->fromAddress, $config->fromName);
     if (is_object($config->notifyComments)) {
         foreach ($config->notifyComments->toArray() as $rcpt) {
             $mail->addTo($rcpt);
         }
     } else {
         $mail->addTo($config->notifyComments);
     }
     if ($config->smtpServer) {
         $transport = new Zend_Mail_Transport_Smtp($config->smtpServer, $config->smtpOptions->toArray());
     } else {
         $transport = new Zend_Mail_Transport_Sendmail();
     }
     $mail->send($transport);
 }
 /**
  * Send email to user
  *
  * @param string $emailAddress
  * @param string $subject   the subject string
  * @param string $message   the message string
  * @return  object/boolean  if failed will return false otherwise boolean false will be returned.
  * @example
  *          $e = new RM_Module_Emailnotifications();
  *          $result = $e->email(RM_User_Row $user, "This is the email subject", "This is the message body");
  *
  */
 public function email($emailAddress, $subject, $message)
 {
     $configModel = new RM_Config();
     $mail = new Zend_Mail('UTF-8');
     $mail->setType(Zend_Mime::MULTIPART_MIXED);
     $mail->addTo($emailAddress);
     $mail->setFrom($configModel->getValue('rm_config_email_settings_mailfrom'), $configModel->getValue('rm_config_email_settings_fromname'));
     $mail->setBodyHtml($message);
     $mail->setSubject($subject);
     $emailType = $configModel->getValue('rm_config_email_settings_mailer');
     try {
         if ($emailType == 'PHP') {
             return $mail->send();
         } else {
             $smtpConfig = array('auth' => 'Login', 'username' => $configModel->getValue('rm_config_email_settings_smtpuser'), 'password' => $configModel->getValue('rm_config_email_settings_smtppass'), 'port' => $configModel->getValue('rm_config_email_settings_smtpport'));
             if ($configModel->getValue('rm_config_email_settings_smtpsecure') != "") {
                 $smtpConfig['ssl'] = strtolower($configModel->getValue('rm_config_email_settings_smtpsecure'));
             }
             return $mail->send(new Zend_Mail_Transport_Smtp($configModel->getValue('rm_config_email_settings_smtphost'), $smtpConfig));
         }
     } catch (Zend_Mail_Exception $e) {
         RM_Log::toLog("Notification error: " . $e->getMessage());
         return false;
     }
 }
Beispiel #3
0
 /**
  * @param string $fromTitle
  * @param string $fromMail
  * @param string $toEmail
  * @param array $recipientCC
  * @param array $recipientBCC
  * @param string $subject
  * @param string $body
  * @param string $attachments
  * @param string $smtpHost
  * @param string $smtpPort
  * @param string $serverLogin
  * @param string $serverPassword
  * @param string $charCode
  * @param boolean $isHtml
  * @return type
  */
 public function handle($fromTitle, $fromMail, $toEmail, array $recipientCC, array $recipientBCC, $subject, $body, $attachments, $smtpHost = null, $smtpPort = null, $serverLogin = null, $serverPassword = null, $charCode = 'UTF-8', $isHtml = false, $replyto = null)
 {
     if ($smtpHost) {
         $params = array('name' => 'ZendMailHandler', 'port' => $smtpPort);
         if ($serverLogin) {
             $params['auth'] = 'login';
             $params['username'] = $serverLogin;
             $params['password'] = $serverPassword;
         }
         $transport = new Zend_Mail_Transport_Smtp($smtpHost, $params);
     } else {
         $transport = new Zend_Mail_Transport_Sendmail(array('name' => 'ZendMailHandler'));
     }
     $mail = new Zend_Mail($charCode);
     $mail->setFrom($fromMail, $fromTitle)->addTo($toEmail)->setSubject($subject);
     if (!empty($recipientCC)) {
         $mail->addCc($recipientCC);
     }
     if (!empty($recipientBCC)) {
         $mail->addBcc($recipientBCC);
     }
     //$mail->setReturnPath($replyto);
     if (!empty($replyto)) {
         $mail->setReplyTo($replyto);
     }
     if ($isHtml) {
         $mail->setBodyHtml($body);
     } else {
         $mail->setBodyText($body);
     }
     if (is_object($attachments) && $attachments->areAttachments()) {
         $mail->setType(Zend_Mime::MULTIPART_RELATED);
         $attachments->handle($mail);
     }
     if ($mail->send($transport)) {
         return true;
     } else {
         return false;
     }
 }
 public function postAction()
 {
     $post = $this->getRequest()->getPost();
     try {
         $mail = new Zend_Mail();
         $mail->setType(Zend_Mime::MULTIPART_RELATED);
         $mail->setBodyHtml('email: ' . $post['email'] . '<br />name: ' . $post['name'] . '<br />message:<br />' . $post['feedback']);
         $mail->setFrom($post['email'], $post['name']);
         #$mail->setFrom('*****@*****.**', 'fashioneyewear');
         $mail->addTo('*****@*****.**', '');
         $mail->addTo('*****@*****.**', '');
         $mail->setSubject(Mage::helper('contacts')->__('New feedback'));
         $mail->send();
         Mage::getSingleton('customer/session')->addSuccess(Mage::helper('contacts')->__('Your feedback was submitted.'));
         $this->_redirectReferer();
         return;
     } catch (Exception $e) {
         Mage::getSingleton('customer/session')->addSuccess(Mage::helper('contacts')->__('Unable to submit your request. Please, try again later.'));
         $this->_redirectReferer();
         return;
     }
 }
Beispiel #5
0
 function mail($data)
 {
     $mail = new Zend_Mail('utf-8');
     $mail->setType(Zend_Mime::MULTIPART_ALTERNATIVE);
     $mail->setHeaderEncoding(Zend_Mime::ENCODING_BASE64);
     $body = $this->view->partial('mail/frame.phtml', array('message' => @$data['body'] ? $data['body'] : $this->view->partial('mail/' . $data['view'] . '.phtml', $data)));
     preg_match_all('/src\\=\\"\\/(img|upload\\/mce\\/image)\\/([^\\"]+)\\"/si', $body, $res);
     if (@$res[1]) {
         $r = array();
         foreach ($res[1] as $k => $v) {
             $fn = PUBLIC_PATH . '/' . $res[1][$k] . '/' . $res[2][$k];
             $s = getimagesize($fn);
             if ($s) {
                 $cid = md5($res[1][$k] . '/' . $res[2][$k]);
                 $at = $mail->createAttachment(file_get_contents($fn), $s['mime'], Zend_Mime::DISPOSITION_INLINE, Zend_Mime::ENCODING_BASE64);
                 $at->id = $cid;
                 $r[] = 'src="cid:' . $cid . '"';
             } else {
                 $r[] = $res[0][$k];
             }
         }
         $body = str_ireplace($res[0], $r, $body);
     }
     preg_match_all('/href\\=\\"\\/upload\\/mce\\/file\\/([^\\"]+)\\"/si', $body, $res);
     if (@$res[1]) {
         $r = array();
         foreach ($res[1] as $k => $v) {
             $fn = PUBLIC_PATH . '/upload/mce/file/' . $res[1][$k];
             $s = file_exists($fn);
             if ($s) {
                 $cid = md5('upload/mce/file/' . $res[1][$k]);
                 $at = $mail->createAttachment(file_get_contents($fn), Zend_Mime::TYPE_OCTETSTREAM, Zend_Mime::DISPOSITION_ATTACHMENT, Zend_Mime::ENCODING_BASE64, basename($fn));
                 $at->id = $cid;
                 $r[] = 'href="cid:' . $cid . '"';
             } else {
                 $r[] = $res[0][$k];
             }
         }
         $body = str_ireplace($res[0], $r, $body);
     }
     $mail->setBodyHtml($body);
     $fm = $this->view->txt('site_mail');
     $from = @$data['from'] ? $data['from'] : $this->view->txt('site_mail');
     $to = @$data['to'] ? $data['to'] : $this->view->txt('site_mail');
     $to = preg_split('/(\\;|\\,)/i', $to);
     $reply_to = @$data['reply_to'];
     $from_name = @$data['from_name'] ? $data['from_name'] : ($from == $fm ? $this->view->txt('site_title') : $from);
     if ($reply_to) {
         $mail->setReplyTo($reply_to, $from_name);
     }
     $mail->setFrom($from, $from_name);
     $tn = @$data['to_name'] ? $data['to_name'] : $to;
     foreach ($to as $n => $el) {
         $el = trim($el);
         if (!$el) {
             continue;
         }
         $tn_el = is_array($tn) ? isset($tn[$n]) ? $tn[$n] : @$tn[0] : $tn;
         $mail->addTo($el, $tn_el);
     }
     if (@$data['subject_full']) {
         $mail->setSubject($data['subject_full']);
     } else {
         $mail->setSubject($this->view->txt('site_title') . ($data['subject'] ? ' — ' . $data['subject'] : ''));
     }
     $ok = false;
     try {
         $tr = null;
         $bt = Zend_Controller_Front::getInstance()->getParam('bootstrap');
         if ($bt) {
             $config = $bt->getOptions();
             if (@$config['mail']) {
                 if (@$config['mail']['transports'] && @$config['mail']['transports']['transport']) {
                     foreach ($config['mail']['transports']['transport'] as $k => $v) {
                         $class = 'Zend_Mail_Transport_' . ucfirst($v);
                         $tr = new $class($config['mail']['transports'][$v]['host'][$k], array('host' => $config['mail']['transports'][$v]['host'][$k], 'port' => $config['mail']['transports'][$v]['port'][$k], 'auth' => $config['mail']['transports'][$v]['auth'][$k], 'username' => $config['mail']['transports'][$v]['username'][$k], 'password' => $config['mail']['transports'][$v]['password'][$k], 'ssl' => $config['mail']['transports'][$v]['ssl'][$k]));
                         try {
                             $mail->send($tr);
                             $ok = true;
                             break;
                         } catch (Exception $e) {
                             //$ok = false;
                             //@file_put_contents(DATA_PATH.'/mail-'.time().microtime(true).'.txt', var_export($e, 1));
                         }
                     }
                     $tr = null;
                 } else {
                     if (@$config['mail']['transport']) {
                         $k = $config['mail']['transport'];
                         if (@$config['mail'][$k] && @$config['mail'][$k]['host']) {
                             try {
                                 $class = 'Zend_Mail_Transport_' . ucfirst($k);
                                 $tr = new $class($config['mail']['smtp']['host'], $config['mail'][$k]);
                             } catch (Exception $e) {
                                 $tr = null;
                                 //$ok = false;
                             }
                         }
                     }
                 }
             }
         }
         if (!$ok) {
             $ok = $mail->send($tr);
         }
     } catch (Zend_Mail_Transport_Exception $e) {
         $ok = false;
     }
     return $ok;
 }
Beispiel #6
0
	function send()
	{
		global $config;
		//echo "export show data";
		
		// Create authentication with SMTP server
		$authentication = array();
		if($config->email->smtp_auth == true) {
			$authentication = array(
				'auth' => 'login',
				'username' => $config->email->username,
				'password' => $config->email->password,
				'ssl' => $config->email->secure,
				'port' => $config->email->smtpport
				);
		}
		$transport = new Zend_Mail_Transport_Smtp($config->email->host, $authentication);

		// Create e-mail message
		$mail = new Zend_Mail('utf-8');
		$mail->setType(Zend_Mime::MULTIPART_MIXED);
		$mail->setBodyText($this->notes);
		$mail->setBodyHTML($this->notes);
		$mail->setFrom($this->from, $this->from_friendly);

		$to_addresses = preg_split('/\s*[,;]\s*/', $this->to);
		if (!empty($to_addresses)) {
			foreach ($to_addresses as $to) {
			    $mail->addTo($to);
		   }
		}
		if (!empty($this->bcc)) {
		    $bcc_addresses = preg_split('/\s*[,;]\s*/', $this->bcc);
		foreach ($bcc_addresses as $bcc) {
				$mail->addBcc($bcc);
			}
		}
		$mail->setSubject($this->subject);

        if($this->attachment)
        {
            // Create attachment
            #$spc2us_pref = str_replace(" ", "_", $preference[pref_inv_wording]);
            $content = file_get_contents('./tmp/cache/'.$this->attachment);
            $at = $mail->createAttachment($content);
            $at->type = 'application/pdf';
            $at->disposition = Zend_Mime::DISPOSITION_ATTACHMENT;
            $at->filename = $this->attachment;
        }
		// Send e-mail through SMTP
		try {
			$mail->send($transport);
		} catch(Zend_Mail_Protocol_Exception $e) {
			echo '<strong>Zend Mail Protocol Exception:</strong> ' .  $e->getMessage();
			exit;
		}

		// Remove temp invoice
		unlink("./tmp/cache/$this->attachment");

		switch ($this->format)
		{
			case "invoice":
			{

				// Create succes message
				$message  = "<meta http-equiv=\"refresh\" content=\"2;URL=index.php?module=invoices&amp;view=manage\">";
				$message .= "<br />$this->attachment has been emailed";

				break;
			}	
			case "statement":
			{

				// Create succes message
				$message  = "<meta http-equiv=\"refresh\" content=\"2;URL=index.php?module=statement&amp;view=index\">";
				$message .= "<br />$this->attachment has been emailed";

				break;
			}	
			case "cron":
			{

				// Create succes message
				$message .= "<br />Cron email for today has been sent";

				break;
			}
			case "cron_invoice":
			{

				// Create succes message
				$message .= "$this->attachment has been emailed";

				break;
			
			}	
		}	



		return $message;
	}
Beispiel #7
0
 /**
  * Generate MIME compliant message from the current configuration
  *
  * If both a text and HTML body are present, generates a
  * multipart/alternative Zend_Mime_Part containing the headers and contents
  * of each. Otherwise, uses whichever of the text or HTML parts present.
  *
  * The content part is then prepended to the list of Zend_Mime_Parts for
  * this message.
  *
  * @return void
  */
 protected function _buildBody()
 {
     //        if (($text = $this->_mail->getBodyText())
     //            && ($html = $this->_mail->getBodyHtml()))
     //
     $text = $this->_mail->getBodyText();
     $html = $this->_mail->getBodyHtml();
     $htmlAttachments = $this->_mail->getHtmlRelatedAttachments();
     $htmlAttachmentParts = $htmlAttachments->getParts();
     $hasHtmlRelatedParts = count($htmlAttachmentParts);
     if ($text && $html || $html && $hasHtmlRelatedParts && count($this->_parts)) {
         // Generate unique boundary for multipart/alternative
         $mime = new Zend_Mime(null);
         $boundaryLine = $mime->boundaryLine($this->EOL);
         $boundaryEnd = $mime->mimeEnd($this->EOL);
         //            $text->disposition = false;
         $html->disposition = false;
         //            $body = $boundaryLine
         //                  . $text->getHeaders($this->EOL)
         //                  . $this->EOL
         //                  . $text->getContent($this->EOL)
         //                  . $this->EOL
         //                  . $boundaryLine
         //                  . $html->getHeaders($this->EOL)
         if ($hasHtmlRelatedParts) {
             $message = new Zend_Mime_Message();
             array_unshift($htmlAttachmentParts, $html);
             $message->setParts($htmlAttachmentParts);
             $htmlMime = $htmlAttachments->getMime();
             $message->setMime($htmlMime);
             $html = new Zend_Mime_Part($message->generateMessage($this->EOL, false));
             $html->boundary = $htmlMime->boundary();
             $html->type = Zend_Mime::MULTIPART_RELATED;
             $html->encoding = null;
         }
         $body = $boundaryLine;
         if ($text) {
             $text->disposition = false;
             $body .= $text->getHeaders($this->EOL) . $this->EOL . $text->getContent($this->EOL) . $this->EOL . $boundaryLine;
         }
         $body .= $html->getHeaders($this->EOL) . $this->EOL . $html->getContent($this->EOL) . $this->EOL . $boundaryEnd;
         $mp = new Zend_Mime_Part($body);
         $mp->type = Zend_Mime::MULTIPART_ALTERNATIVE;
         $mp->boundary = $mime->boundary();
         $this->_isMultipart = true;
         // Ensure first part contains text alternatives
         array_unshift($this->_parts, $mp);
         // Get headers
         $this->_headers = $this->_mail->getHeaders();
         return;
     }
     // If not multipart, then get the body
     if (false !== ($body = $this->_mail->getBodyHtml())) {
         array_unshift($this->_parts, $body);
         if ($hasHtmlRelatedParts) {
             $this->_mail->setType(Zend_Mime::MULTIPART_RELATED);
             foreach ($htmlAttachmentParts as $part) {
                 $this->_parts[] = $part;
             }
         }
     } elseif (false !== ($body = $this->_mail->getBodyText())) {
         array_unshift($this->_parts, $body);
     }
     if (!$body) {
         /**
          * @see Zend_Mail_Transport_Exception
          */
         require_once 'Zend/Mail/Transport/Exception.php';
         throw new Zend_Mail_Transport_Exception('No body specified');
     }
     // Get headers
     $this->_headers = $this->_mail->getHeaders();
     $headers = $body->getHeadersArray($this->EOL);
     foreach ($headers as $header) {
         // Headers in Zend_Mime_Part are kept as arrays with two elements, a
         // key and a value
         $this->_headers[$header[0]] = array($header[1]);
     }
 }
Beispiel #8
0
 public function testTypeAccessor()
 {
     $mail = new Zend_Mail();
     $this->assertNull($mail->getType());
     $mail->setType(Zend_Mime::MULTIPART_ALTERNATIVE);
     $this->assertEquals(Zend_Mime::MULTIPART_ALTERNATIVE, $mail->getType());
     $mail->setType(Zend_Mime::MULTIPART_RELATED);
     $this->assertEquals(Zend_Mime::MULTIPART_RELATED, $mail->getType());
     try {
         $mail->setType('text/plain');
         $this->fail('Invalid Zend_Mime type should throw an exception');
     } catch (Exception $e) {
     }
 }