/** * 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); } }
/** * 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(); }
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(); }
/** * @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 } }