Example #1
0
    /**
     * 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 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 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);
        }
    }
Example #2
0
 /**
  * E-mails the formatted text as attachment.
  *
  * @param string $formatedText
  */
 public function write($formatedText)
 {
     $mail = new Mail();
     $mail->addTo($this->to);
     $mail->setFrom($this->from);
     $mail->setSubject($this->subject);
     $mail->setBodyHtml(file_get_contents($this->emailTemplate));
     $at = new Part($formatedText);
     $at->type = 'text/html';
     $at->disposition = Mime::DISPOSITION_INLINE;
     $at->encoding = Mime::ENCODING_BASE64;
     $at->filename = $this->attachmentName;
     $at->description = 'LiveTest Attachment';
     $mail->addAttachment($at);
     $mail->send();
 }
Example #3
0
 private function writeMail($bodyText, $atText = null)
 {
     $mail = new Mail();
     $mail->addTo($this->to);
     $mail->setFrom($this->from);
     $mail->setSubject($this->subject);
     $mail->setBodyHtml(file_get_contents($this->template) . $bodyText);
     if ($at !== null) {
         $at = new Part($atText);
         $at->type = 'text/html';
         $at->disposition = Mime::DISPOSITION_INLINE;
         $at->encoding = Mime::ENCODING_BASE64;
         $at->filename = $this->attachmentName;
         $at->description = 'LiveTest Attachment';
         $mail->addAttachment($at);
     }
     $mail->send();
 }
Example #4
0
    public function testGetJustBodyHtml()
    {
        $text = "<html><head></head><body><p>Some body text</p></body></html>";
        $mail = new Mail\Mail();
        $mail->setBodyHtml($text);

        $this->assertContains('Some body text', $mail->getBodyHtml(true));
    }