CEmailLogRoute
Package | system.logging |
---|---|
Inheritance | class CEmailLogRoute » CLogRoute » CComponent |
Since | 1.0 |
Source Code | 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.
Public Properties
Property | Type | Description | Defined By |
---|---|---|---|
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 |
Public Methods
Method | Description | Defined By |
---|---|---|
__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 |
Protected Methods
Method | Description | Defined By |
---|---|---|
formatLogMessage() | Formats a log message given different fields. | CLogRoute |
processLogs() | Sends log messages to specified email addresses. | CEmailLogRoute |
sendEmail() | Sends an email. | CEmailLogRoute |
Property Details
emails property
public array getEmails()
public void setEmails(mixed $value)
list of destination email addresses
headers property (available since v1.1.4)
public array getHeaders()
public void setHeaders(mixed $value)
additional headers to use when sending an email.
sentFrom property
public string getSentFrom()
public void setSentFrom(string $value)
send from address of the email
subject property
public string getSubject()
public void setSubject(string $value)
email subject. Defaults to CEmailLogRoute::DEFAULT_SUBJECT
utf8 property (available since 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.
Method Details
getEmails() method
public array getEmails() | ||
{return} | array | list of destination email addresses |
Source Code: framework/logging/CEmailLogRoute.php#104 (show)
public function getEmails()
{
return $this->_email;
}
getHeaders() method (available since v1.1.4)
public array getHeaders() | ||
{return} | array | additional headers to use when sending an email. |
Source Code: framework/logging/CEmailLogRoute.php#157 (show)
public function getHeaders()
{
return $this->_headers;
}
getSentFrom() method
public string getSentFrom() | ||
{return} | string | send from address of the email |
Source Code: framework/logging/CEmailLogRoute.php#140 (show)
public function getSentFrom()
{
return $this->_from;
}
getSubject() method
public string getSubject() | ||
{return} | string | email subject. Defaults to CEmailLogRoute::DEFAULT_SUBJECT |
Source Code: framework/logging/CEmailLogRoute.php#124 (show)
public function getSubject()
{
return $this->_subject;
}
processLogs() method
protected void processLogs(array $logs) | ||
$logs | array | list of log messages |
Source Code: framework/logging/CEmailLogRoute.php#56 (show)
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() method
protected void sendEmail(string $email, string $subject, string $message) | ||
string | single email address | |
$subject | string | email subject |
$message | string | email content |
Source Code: framework/logging/CEmailLogRoute.php#75 (show)
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() method
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. |
Source Code: framework/logging/CEmailLogRoute.php#113 (show)
public function setEmails($value)
{
if(is_array($value))
$this->_email=$value;
else
$this->_email=preg_split('/[\s,]+/',$value,-1,PREG_SPLIT_NO_EMPTY);
}
setHeaders() method (available since 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. |
Source Code: framework/logging/CEmailLogRoute.php#167 (show)
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() method
public void setSentFrom(string $value) | ||
$value | string | send from address of the email |
Source Code: framework/logging/CEmailLogRoute.php#148 (show)
public function setSentFrom($value)
{
$this->_from=$value;
}
setSubject() method
public void setSubject(string $value) | ||
$value | string | email subject. |
Source Code: framework/logging/CEmailLogRoute.php#132 (show)
public function setSubject($value)
{
$this->_subject=$value;
}
© 2008–2017 by Yii Software LLC
Licensed under the three clause BSD license.
http://www.yiiframework.com/doc/api/1.1/CEmailLogRoute