2016-11-23 11 views
0

Ich habe ein Problem mit Cron Job in Yii2 Anwendung. Ich bin Controller-Konsole definieren alsCron Job funktioniert nicht in Yii2

namespace console\controllers; 
use yii\console\Controller; 
/** 
* Job controller 
*/ 
class JobController extends Controller { 

public function actionIndex() { 
    echo "cron service runnning"; 
    mail("[email protected]","Cron",'Testing'); 
} 

} 

Pfad in cpenal folgen wird php/home/user/public_html/root/yii Job

ich immer E-Mail mit Fehler empfangen

Status: 404 nicht gefunden X-Powered-By: PHP/5.5.38 Content-type: text/html

keine Eingabedatei angegeben.

Ich denke, es gibt ein Problem mit cmd für sie geliefert. Bitte helfen Sie mir, dieses Problem zu lösen. Thankyou

+2

Eine Konsole-Controller von Terminal aufgerufen werden soll, nicht über Web-Browser. Sie sollten in Ihrem Projektverzeichnis wie "./yii job/index" (oder yii.bat unter Windows) etwas tun. – particleflux

+0

Vielen Dank. Es klappt. –

Antwort

0

1.show System crontab log

warum Sie nicht verwenden yii \ Swiftmailer \ Mailer

$components = [ 
       'mailer' => [ 
        'class' => 'yii\swiftmailer\Mailer', 
        'useFileTransport' => false, 
        'transport' => [ 
         'class' => 'Swift_SmtpTransport', 
         'host' => 'smtp.xxx.com', 
         'username' => '[email protected]', 
         'password' => 'xxx', 
         'port' => '25', 
         'encryption' => 'tls', 
        ], 
        'messageConfig' => [ 
         'charset' => 'UTF-8', 
         'from' => ['[email protected]' => 'contents'] 
        ], 
       ] 
      ]; 
      Yii::$app->setComponents($components); 
      $mail= Yii::$app->mailer->compose(); 
      $mail->setTo(['[email protected]', '[email protected]']); 
      $mail->setSubject($subject); 
      $mail->setHtmlBody($content); 
      $mail->send();