Extending Yii Cemaillogroute Class Using Mailgun

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',

       ),

    ),

),

If you have any additional tips on how to improve this, please feel free to add them below.