此功能是为了能及时跟踪网站中的重大错误。
bug的跟踪方式有几种。
1.[[yii\log\DbTarget]]:把日志信息保存到数据库。
2.[[yii\log\EmailTarget]]: 把日志信息发送到指定的邮箱
3.[[yii\log\FileTarget]]: 把日志写到到文件。
4.[[yii\log\SyslogTarget]]: 调用PHP的syslog()方法将日志写入到系统日志。
这里只提第2、3点
在config配置中,配置如下:
$config = [
'compents' => [
//以下是关于邮箱发送的设置
'mailer' => [
'class' => 'yii\swiftmailer\Mailer',
'useFileTransport' => false,//强烈注意,这里一定要配置成false才能发送
'transport' => [
'class' => 'Swift_SmtpTransport',
'host' => 'smtp.163.com',
'username' => '1111g@163.com',
'password' => '******',
'port' => '25',
//'encryption'=>'tls'
],
'messageConfig' => [
'charset' => 'UTF-8',
'from' => ['ouyangyanzhong@163.com' => 'admin']
]
],
//以下是关于debug日志的配置
'log' => [
'traceLevel' => YII_DEBUG ? 3 : 0,//追踪等级
'targets' => [
[
'class' => 'yii\log\FileTarget',//文件日志
'levels' => ['error', 'warning'],
],
[
'class' => 'yii\log\EmailTarget',//邮箱日志
'levels' => ['trace'],
'message' => [
'from' => '1111g@163.com',
'to' => '11@qq.com',
'subject' => 'log message'
]
]
]
]
]
];
如果在其他地方需要使用到邮件发送,具体代码如下
$mail= \Yii::$app->mailer->compose();
$mail->setTo('111@qq.com');
$mail->setSubject("邮件测试");
//$mail->setTextBody('zheshi '); //发布纯文字文本
$mail->setHtmlBody("<br>问我我我我我"); //发布可以带html标签的文本
if($mail->send()){
echo "success";
}else{
echo "failse";
}
exit;