2013-05-01 92 views
0

我想通過在我的應用程序的cron作業發送電子郵件通知給一些用戶。CakePHP如何發送電子郵件通知

經過幾個小時的閱讀,我明白了最好的方法是使用Shell。

請有人可以幫助我瞭解如何做到這一點,我怎樣才能使用一個myShell類的不同動作發送不同的通知?我的意思是如何cron訪問myShell的不同動作。例如

<?php 
    class MyShell extends Shell { 

    function send_task_notifications(){ 
     .... //this must send email every day at 00:00 am 
    } 

    function send_new_post_notifications() { 
     .... //this must send email every week// 
    } 

    } 
?> 

這兩個操作都在MyShell類中。

那麼我怎樣才能通過Cron調用其中的一個,並且這個MyShell類可以通過URL訪問?

回答

1

您的shell需要按照以下方式更改,您需要傳遞一個基於參數的參數,它將執行電子郵件通知/推送通知。移動你的功能組件,將工作

<?php 
    class MyShell extends Shell { 

    function main() 
    { 
     $option = !empty($this->args[0]) ? $this->args[0] : 」; 
     echo ‘Cron started without any issue.’; 

     App::import(‘Component’, 'MyOwnComponent'); 
     $this->MyOwnComponent = &new MyOwnComponent(); 
     switch ($option) 
     { 
      case 'task_notifications': 
        $this->MyOwnComponent->send_task_notifications(); 
       break; 
      case 'post_notifications': 
        $this->MyOwnComponent->send_new_post_notifications(); 
       break; 
      default: 
      echo 'No Parameters passed .'; 
     } 

    } 
    } 
?> 

您的組件文件如下

<?php 
class MyOwnComponent extends Object 
{ 
function send_task_notifications(){ 
     .... //this must send email every day at 00:00 am 
    } 

function send_new_post_notifications() { 
     .... //this must send email every week// 
    } 
} 

?> 

欲瞭解更多詳情,請參閱鏈接http://cakephpsaint.wordpress.com/2013/05/15/6-steps-to-create-cron-jobs-in-cakephp/