示例#1
0
文件: Mail.php 项目: jasmun/Noco100
 /**
  *
  * @return IfwPsn_Vendor_Zend_Mail_Transport_Abstract|null
  */
 public function getMail()
 {
     if (null === $this->_transport) {
         $options = $this->getOptions();
         foreach ($options as $key => $option) {
             $options[strtolower($key)] = $option;
         }
         $this->setOptions($options);
         if (isset($options['transport']) && !is_numeric($options['transport'])) {
             $this->_transport = $this->_setupTransport($options['transport']);
             if (!isset($options['transport']['register']) || $options['transport']['register'] == '1' || isset($options['transport']['register']) && !is_numeric($options['transport']['register']) && (bool) $options['transport']['register'] == true) {
                 IfwPsn_Vendor_Zend_Mail::setDefaultTransport($this->_transport);
             }
         }
         $this->_setDefaults('from');
         $this->_setDefaults('replyTo');
     }
     return $this->_transport;
 }
示例#2
0
文件: Mail.php 项目: jasmun/Noco100
 /**
  * Sends mail to recipient(s) if log entries are present.  Note that both
  * plaintext and HTML portions of email are handled here.
  *
  * @return void
  */
 public function shutdown()
 {
     // If there are events to mail, use them as message body.  Otherwise,
     // there is no mail to be sent.
     if (empty($this->_eventsToMail)) {
         return;
     }
     if ($this->_subjectPrependText !== null) {
         // Tack on the summary of entries per-priority to the subject
         // line and set it on the IfwPsn_Vendor_Zend_Mail object.
         $numEntries = $this->_getFormattedNumEntriesPerPriority();
         $this->_mail->setSubject("{$this->_subjectPrependText} ({$numEntries})");
     }
     // Always provide events to mail as plaintext.
     $this->_mail->setBodyText(implode('', $this->_eventsToMail));
     // If a IfwPsn_Vendor_Zend_Layout instance is being used, set its "events"
     // value to the lines formatted for use with the layout.
     if ($this->_layout) {
         // Set the required "messages" value for the layout.  Here we
         // are assuming that the layout is for use with HTML.
         $this->_layout->events = implode('', $this->_layoutEventsToMail);
         // If an exception occurs during rendering, convert it to a notice
         // so we can avoid an exception thrown without a stack frame.
         try {
             $this->_mail->setBodyHtml($this->_layout->render());
         } catch (Exception $e) {
             trigger_error("exception occurred when rendering layout; " . "unable to set html body for message; " . "message = {$e->getMessage()}; " . "code = {$e->getCode()}; " . "exception class = " . get_class($e), E_USER_NOTICE);
         }
     }
     // Finally, send the mail.  If an exception occurs, convert it into a
     // warning-level message so we can avoid an exception thrown without a
     // stack frame.
     try {
         $this->_mail->send();
     } catch (Exception $e) {
         trigger_error("unable to send log entries via email; " . "message = {$e->getMessage()}; " . "code = {$e->getCode()}; " . "exception class = " . get_class($e), E_USER_WARNING);
     }
 }