REDROOM
PHP 8.1.33
Path:
Logout
Edit File
Size: 4.30 KB
Close
/home/jambtst2015/www/framework/logging/CEmailLogRoute.php
Text
Base64
<?php /** * CEmailLogRoute class file. * * @author Qiang Xue <qiang.xue@gmail.com> * @link http://www.yiiframework.com/ * @copyright 2008-2013 Yii Software LLC * @license http://www.yiiframework.com/license/ */ /** * CEmailLogRoute sends selected log messages to email addresses. * * The target email addresses may be specified via {@link setEmails emails} property. * Optionally, you may set the email {@link setSubject subject}, the * {@link setSentFrom sentFrom} address and any additional {@link setHeaders headers}. * * @property array $emails List of destination email addresses. * @property string $subject Email subject. Defaults to CEmailLogRoute::DEFAULT_SUBJECT. * @property string $sentFrom Send from address of the email. * @property array $headers Additional headers to use when sending an email. * * @author Qiang Xue <qiang.xue@gmail.com> * @package system.logging * @since 1.0 */ class CEmailLogRoute extends CLogRoute { /** * @var boolean set this property to true value in case log data you're going to send through emails contains * non-latin or UTF-8 characters. Emails would be UTF-8 encoded. * @since 1.1.13 */ public $utf8=false; /** * @var array list of destination email addresses. */ private $_email=array(); /** * @var string email subject */ private $_subject; /** * @var string email sent from address */ private $_from; /** * @var array list of additional headers to use when sending an email. */ private $_headers=array(); /** * Sends log messages to specified email addresses. * @param array $logs list of log messages */ protected function processLogs($logs) { $message=''; foreach($logs as $log) $message.=$this->formatLogMessage($log[0],$log[1],$log[2],$log[3]); $message=wordwrap($message,70); $subject=$this->getSubject(); if($subject===null) $subject=Yii::t('yii','Application Log'); foreach($this->getEmails() as $email) $this->sendEmail($email,$subject,$message); } /** * Sends an email. * @param string $email single email address * @param string $subject email subject * @param string $message email content */ protected function sendEmail($email,$subject,$message) { $headers=$this->getHeaders(); if($this->utf8) { $headers[]="MIME-Version: 1.0"; $headers[]="Content-Type: text/plain; charset=UTF-8"; $subject='=?UTF-8?B?'.base64_encode($subject).'?='; } if(($from=$this->getSentFrom())!==null) { $matches=array(); preg_match_all('/([^<]*)<([^>]*)>/iu',$from,$matches); if(isset($matches[1][0],$matches[2][0])) { $name=$this->utf8 ? '=?UTF-8?B?'.base64_encode(trim($matches[1][0])).'?=' : trim($matches[1][0]); $from=trim($matches[2][0]); $headers[]="From: {$name} <{$from}>"; } else $headers[]="From: {$from}"; $headers[]="Reply-To: {$from}"; } mail($email,$subject,$message,implode("\r\n",$headers)); } /** * @return array list of destination email addresses */ public function getEmails() { return $this->_email; } /** * @param mixed $value list of destination email addresses. If the value is * a string, it is assumed to be comma-separated email addresses. */ public function setEmails($value) { if(is_array($value)) $this->_email=$value; else $this->_email=preg_split('/[\s,]+/',$value,-1,PREG_SPLIT_NO_EMPTY); } /** * @return string email subject. Defaults to CEmailLogRoute::DEFAULT_SUBJECT */ public function getSubject() { return $this->_subject; } /** * @param string $value email subject. */ public function setSubject($value) { $this->_subject=$value; } /** * @return string send from address of the email */ public function getSentFrom() { return $this->_from; } /** * @param string $value send from address of the email */ public function setSentFrom($value) { $this->_from=$value; } /** * @return array additional headers to use when sending an email. * @since 1.1.4 */ public function getHeaders() { return $this->_headers; } /** * @param mixed $value list of additional headers to use when sending an email. * If the value is a string, it is assumed to be line break separated headers. * @since 1.1.4 */ public function setHeaders($value) { if (is_array($value)) $this->_headers=$value; else $this->_headers=preg_split('/\r\n|\n/',$value,-1,PREG_SPLIT_NO_EMPTY); } }
Save
Close
Exit & Reset
Text mode: syntax highlighting auto-detects file type.
Directory Contents
Dirs: 0 × Files: 11
Delete Selected
Select All
Select None
Sort:
Name
Size
Modified
Enable drag-to-move
Name
Size
Perms
Modified
Actions
CChainedLogFilter.php
1.23 KB
lrw-r--r--
2024-11-22 17:53:16
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
CDbLogRoute.php
3.84 KB
lrw-r--r--
2024-11-22 17:53:16
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
CEmailLogRoute.php
4.30 KB
lrw-r--r--
2024-11-22 17:53:16
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
CFileLogRoute.php
5.13 KB
lrw-r--r--
2024-11-22 17:53:16
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
CLogFilter.php
4.26 KB
lrw-r--r--
2024-11-22 17:53:16
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
CLogger.php
11.17 KB
lrw-r--r--
2024-11-22 17:53:16
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
CLogRoute.php
4.11 KB
lrw-r--r--
2024-11-22 17:53:16
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
CLogRouter.php
3.48 KB
lrw-r--r--
2024-11-22 17:53:16
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
CProfileLogRoute.php
5.73 KB
lrw-r--r--
2024-11-22 17:53:16
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
CWebLogRoute.php
2.82 KB
lrw-r--r--
2024-11-22 17:53:16
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
error_log
68.04 KB
lrw-r--r--
2025-11-03 19:43:12
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
Zip Selected
If ZipArchive is unavailable, a
.tar
will be created (no compression).