CEmailLogRoute
包 | system.logging |
---|---|
继承 | class CEmailLogRoute » CLogRoute » CComponent |
可用自 | 1.0 |
源码 | framework/logging/CEmailLogRoute.php |
CEmailLogRoute sends selected log messages to email addresses.
The target email addresses may be specified via emails property. Optionally, you may set the email subject, the sentFrom address and any additional headers.
The target email addresses may be specified via emails property. Optionally, you may set the email subject, the sentFrom address and any additional headers.
公共属性
属性 | 类型 | 描述 | 被定义在 |
---|---|---|---|
categories | mixed | array of categories, or string list separated by comma or space. | CLogRoute |
emails | array | list of destination email addresses | CEmailLogRoute |
enabled | boolean | whether to enable this log route. | CLogRoute |
except | mixed | array of categories, or string list separated by comma or space, to EXCLUDE from logs. | CLogRoute |
filter | mixed | the additional filter (eg CLogFilter) that can be applied to the log messages. | CLogRoute |
headers | array | additional headers to use when sending an email. | CEmailLogRoute |
levels | string | list of levels separated by comma or space. | CLogRoute |
logs | array | the logs that are collected so far by this log route. | CLogRoute |
sentFrom | string | send from address of the email | CEmailLogRoute |
subject | string | email subject. | CEmailLogRoute |
utf8 | 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. | CEmailLogRoute |
公共方法
方法 | 描述 | 被定义在 |
---|---|---|
__call() | Calls the named method which is not a class method. | CComponent |
__get() | Returns a property value, an event handler list or a behavior based on its name. | CComponent |
__isset() | Checks if a property value is null. | CComponent |
__set() | Sets value of a component property. | CComponent |
__unset() | Sets a component property to be null. | CComponent |
asa() | Returns the named behavior object. | CComponent |
attachBehavior() | Attaches a behavior to this component. | CComponent |
attachBehaviors() | Attaches a list of behaviors to the component. | CComponent |
attachEventHandler() | Attaches an event handler to an event. | CComponent |
canGetProperty() | Determines whether a property can be read. | CComponent |
canSetProperty() | Determines whether a property can be set. | CComponent |
collectLogs() | Retrieves filtered log messages from logger for further processing. | CLogRoute |
detachBehavior() | Detaches a behavior from the component. | CComponent |
detachBehaviors() | Detaches all behaviors from the component. | CComponent |
detachEventHandler() | Detaches an existing event handler. | CComponent |
disableBehavior() | Disables an attached behavior. | CComponent |
disableBehaviors() | Disables all behaviors attached to this component. | CComponent |
enableBehavior() | Enables an attached behavior. | CComponent |
enableBehaviors() | Enables all behaviors attached to this component. | CComponent |
evaluateExpression() | Evaluates a PHP expression or callback under the context of this component. | CComponent |
getEmails() | Returns list of destination email addresses | CEmailLogRoute |
getEventHandlers() | Returns the list of attached event handlers for an event. | CComponent |
getHeaders() | Returns additional headers to use when sending an email. | CEmailLogRoute |
getSentFrom() | Returns send from address of the email | CEmailLogRoute |
getSubject() | Returns email subject. Defaults to CEmailLogRoute::DEFAULT_SUBJECT | CEmailLogRoute |
hasEvent() | Determines whether an event is defined. | CComponent |
hasEventHandler() | Checks whether the named event has attached handlers. | CComponent |
hasProperty() | Determines whether a property is defined. | CComponent |
init() | Initializes the route. | CLogRoute |
raiseEvent() | Raises an event. | CComponent |
setEmails() | Sets list of destination email addresses. If the value is a string, it is assumed to be comma-separated email addresses. | CEmailLogRoute |
setHeaders() | Sets 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. | CEmailLogRoute |
setSentFrom() | Sets send from address of the email | CEmailLogRoute |
setSubject() | Sets email subject. | CEmailLogRoute |
受保护的方法
方法 | 描述 | 被定义在 |
---|---|---|
formatLogMessage() | Formats a log message given different fields. | CLogRoute |
processLogs() | Sends log messages to specified email addresses. | CEmailLogRoute |
sendEmail() | Sends an email. | CEmailLogRoute |
属性详情
emails
属性
list of destination email addresses
headers
属性
(自版本 v1.1.4 可用)
additional headers to use when sending an email.
sentFrom
属性
send from address of the email
subject
属性
email subject. Defaults to CEmailLogRoute::DEFAULT_SUBJECT
utf8
属性
(自版本 v1.1.13 可用)
public boolean $utf8;
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.
方法详情
getEmails()
方法
public array getEmails()
| ||
{return} | array | list of destination email addresses |
源码: framework/logging/CEmailLogRoute.php#104 (显示)
public function getEmails()
{
return $this->_email;
}
getHeaders()
方法
(自版本 v1.1.4 可用)
public array getHeaders()
| ||
{return} | array | additional headers to use when sending an email. |
源码: framework/logging/CEmailLogRoute.php#157 (显示)
public function getHeaders()
{
return $this->_headers;
}
getSentFrom()
方法
public string getSentFrom()
| ||
{return} | string | send from address of the email |
源码: framework/logging/CEmailLogRoute.php#140 (显示)
public function getSentFrom()
{
return $this->_from;
}
getSubject()
方法
public string getSubject()
| ||
{return} | string | email subject. Defaults to CEmailLogRoute::DEFAULT_SUBJECT |
源码: framework/logging/CEmailLogRoute.php#124 (显示)
public function getSubject()
{
return $this->_subject;
}
processLogs()
方法
protected void processLogs(array $logs)
| ||
$logs | array | list of log messages |
源码: framework/logging/CEmailLogRoute.php#56 (显示)
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 log messages to specified email addresses.
sendEmail()
方法
protected void sendEmail(string $email, string $subject, string $message)
| ||
string | single email address | |
$subject | string | email subject |
$message | string | email content |
源码: framework/logging/CEmailLogRoute.php#75 (显示)
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));
}
Sends an email.
setEmails()
方法
public void setEmails(mixed $value)
| ||
$value | mixed | list of destination email addresses. If the value is a string, it is assumed to be comma-separated email addresses. |
源码: framework/logging/CEmailLogRoute.php#113 (显示)
public function setEmails($value)
{
if(is_array($value))
$this->_email=$value;
else
$this->_email=preg_split('/[\s,]+/',$value,-1,PREG_SPLIT_NO_EMPTY);
}
setHeaders()
方法
(自版本 v1.1.4 可用)
public void setHeaders(mixed $value)
| ||
$value | mixed | 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. |
源码: framework/logging/CEmailLogRoute.php#167 (显示)
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);
}
setSentFrom()
方法
public void setSentFrom(string $value)
| ||
$value | string | send from address of the email |
源码: framework/logging/CEmailLogRoute.php#148 (显示)
public function setSentFrom($value)
{
$this->_from=$value;
}
setSubject()
方法
public void setSubject(string $value)
| ||
$value | string | email subject. |
源码: framework/logging/CEmailLogRoute.php#132 (显示)
public function setSubject($value)
{
$this->_subject=$value;
}