Beispiel #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);
        }
    }
Beispiel #2
0
    /**
     * @group ZF-9011
     *
     */
    public function testSendmailTransportThrowsExceptionWithInvalidParams()
    {
        $mail = new Mail\Mail("UTF-8");
        $mail->setBodyText('My Nice Test Text');
        $mail->addTo('*****@*****.**');
        $mail->setSubject('hello world!');

        $transport = new Transport\Sendmail();
        $transport->parameters = true;
        try {
            $mail->send($transport);
            $this->fail('Exception should have been thrown, but wasn\'t');
        } catch(Transport\Exception $e) {
        	// do nothing
        }
    }
Beispiel #3
0
 protected function _prepareMail()
 {
     $mail = new Mail\Mail();
     $mail->setBodyText('This is the text of the mail.');
     $mail->setFrom('*****@*****.**', 'Alexander Steshenko');
     $mail->addTo('*****@*****.**', 'Oleg Lobach');
     $mail->setSubject('TestSubject');
     return $mail;
 }