2013-10-05 7 views
5

私のウェブサイトホスティングサーバーはhostmonster.comです。cpanelを使用しているcodeigniterのcronjob

私のアプリケーションはcodeigniterフレームワークを使用しています。

私はユーザーに電子メールを送信するコードを持っています。私はそれを自動化したいと思います。

私はホスティングサービスのcPanelのを使用していると

php -q www.mysite.com/admin admin sendDailyEmail 

私のコントローラはadminで、方法はsendDailyEmailで、コントローラは、アプリケーション/コントローラ/管理フォルダ内に存在しているとして、私はコマンドを与えることを試みました。

また、私はcronjobが実行されるたびに私にリマインダーメールを設定しました。

メールの件名は

のCronのphp -q/HOME1 /ユーザ名/ public_htmlの/ adminに管理sendDailyEmail

と体が

ない入力ファイルが

を指定したと言う読み込み

どこが間違っていますか?

私はcronjobを実行したことはありません。これは初めてのことです。 私はコマンドラインインストラクションもあまり良くしていません。

function sendDailyEmail() { 
    $data = $this->admin_model->getDailyData(); 
    foreach ($data as $u) { 
    if($u->Daily){ 
    //if(!$u->Amount){ 
     if ($u->Email=='[email protected]') { 

       $user['user_data']['FirstName'] = $u->FirstName; 
       $user['user_data']['LastName'] = $u->LastName; 
       $user['user_data']['Id']=$u->Id; 

       $this->email->clear(); 
       $this->email->to($u->Email); 
       $this->email->from('[email protected]', 'MySite'); 
       $this->email->subject("My Subject"); 
       $msg = $this->load->view('emails/daily_view', $user, true); 
       $this->email->message($msg); 
       if ($this->email->send()) 
        $data['message'] = "Daily Emails has been sent successfully"; 
       else 
        $data['message'] = "Daily Emails Sending Failed"; 
      } 
     } 
    } 
    $data['main_content']['next_view'] = 'admin_home_view'; 
    $this->load->view('includes/admin_template', $data); 
} 
+0

てきた私は、認証を削除したが、私は今のURLをコピー&ペーストすれば、それはちょうど私のユーザーに電子メールを離れて送信します。 誰かが知っていれば、彼らはただURLを使ってメールを送信し続けるのではないかと心配しています。 これをどのように制限しますか?私はcodeigniterを使用しています。 cronjobはcpanelを介して実行されます。 これは私のsendDailyEmailにこのコードがあります if(!$ this-> session-> userdata( 'variable')) リダイレクト( 'admin/admin'、 'refresh'); – spod

答えて

8

を次のように私の管理者sendDailyEmailコードは、あなたがwgetを使用して、あなたが好きなのための時間を設定することができます:

wget http://www.mysite.com/admin/sendDailyEmail 

ます。またcurlを使用することができます。

curl --silent http://www.mysite.com/admin/sendDailyEmail 
+0

クローンジョブが完了し、私は ** --2013-10-05 11:20:01-- http://www.mysite.com/admin/admin/sendDailyEmailというメールを受け取った www.mysite.comの解決... 66.147.240.184 www.mysite.comに接続| 66.147.240.184 |:80 ...接続しました。応答を待って、送信 HTTPリクエスト... 200 OK 長さ:0 [テキスト/ HTML] 節約に: 'sendDailyEmail」 0K 0.00 = 0 2013年10月5日11時20分11秒(0.00 B/s) - 'sendDailyEmail 'が保存されました。[0/0] ** メールは送信されませんでした – spod

+0

ブラウザに' http:// www.mysite.com/admin/sendDailyEmail'と入力すると直接送信されますEメール? – doitlikejustin

+0

はい、私は管理者としてログインしました – spod

11

のCodeIgniter 2.2の場合:上記のコード)に基づいて

は、それはそれをすべてに少し深く行く私はちょうど書いた記事を見てください。

php-cli /home/username/public_html/index.php admin sendDailyEmail 

それは私と一緒に正常に動作します

php-cli /home/username/public_html/index.php controller method 

のか、あなたのケースで... 乾杯:0

あなたはこれを試すことができます!

+1

数時間後にあなたに返答しようとしています。 –

0

私はしばらくの間、同じ問題に直面しますが、私のために仕事に従うこと

wget http://www.yoursite.com/controller/function 
関連する問題