我正在使用Mailgun Yii扩展程序(https://github.com/baibaratsky/php-mailgun),并且能够使用以下代码从“views / site / SiteController.php”文件中发送测试电子邮件:
$message = Yii::app()->mailgun->newMessage();
$message->setFrom('sender@domain.com', 'Sender Name');
$message->addTo('recipient@domain.com', 'Recipient Name');
$message->setSubject('Mailgun API library test');
$message->setText('Test Email Content Text');
$message->send();
现在我正在尝试扩展CEmailLogRoute类,以便我可以使用mailgun发送任何日志电子邮件但没有成功。这是我写的扩展它的类:
class CMailGunLogRoute extends CEmailLogRoute {
protected function sendEmail($email, $subject, $message) {
$message = Yii::app()->mailgun->newMessage();
$message->setFrom('sender@domain.com', 'Sender Name');
$message->addTo($email);
$message->setSubject($subject);
$message->setText($message);
$message->send();
}
}
这就是我在'config / main.php'文件中添加的内容:
'log'=>array(
'class'=>'CLogRouter',
'routes'=>array(
array(
'class'=>'CEmailLogRoute',
'levels'=>'info',
'emails'=>'recipient@domain.com',
'sentFrom'=>'sender@domain.com',
'subject'=>'Email Log File Message',
),
),
),
这是我在根索引文件中声明的日志记录功能:
function d2l($what, $where='fb.somewhere') {
$what = print_r($what,true);
Yii::log($what, 'info','application.'.$where);
}
这就是我在'SiteController.php'文件中调用该函数的地方:
d2l('Test Log Message','site.index');
不幸的是,这似乎都没有让它发送日志电子邮件。最初我试图在不使用mailgun的情况下发送日志电子邮件,但这也没有用,所以可能问题在于我为邮件日志记录编写的代码。
答案 0 :(得分:0)
我想出了如何做到这一点:
<强> CMailGunLogRoute.php 强>
// components/CMailGunLogRoute.php
class CMailGunLogRoute extends CEmailLogRoute {
protected function sendEmail($email, $subject, $message) {
$mail = Yii::app()->mailgun->newMessage();
$mail->setFrom($this->getSentFrom());
$mail->addTo($email);
$mail->setSubject($subject);
$mail->setText($message);
$mail->send();
}
}
的 SiteController.php 强>
// controllers/SiteController.php
Yii::log('Test Log Message', 'info','application');
的 main.php 强>
// config/main.php
'import'=>array(
'application.components.*',
),
'mailgun' => array(
'class' => 'application.extensions.php-mailgun.MailgunYii',
'domain' => 'mydomain.com',
'key' => 'API_KEY_NUM',
'tags' => array('yii'), // You may also specify some Mailgun parameters
'enableTracking' => true,
),
'log'=>array(
'class'=>'CLogRouter',
'routes'=>array(
array(
'class'=>'CMailGunLogRoute',
'levels'=>'info',
'filter'=>'CLogFilter',
'emails'=>'recipient@domain.com',
'sentFrom'=>'sender@domain.com',
'subject'=>'Email Log File Message',
),
),
),
如果您有关于如何改进此功能的任何其他提示,请随时在下面添加它们。