2017-01-12 9 views
1

をperday、私がメールを送信するcronジョブを作成しなかった二回のcPanelでperday:PHPのエラーは二回、私はPHPで初心者だ

Minute Hour Day  Month Weekday  Command 
    0  0,12 *  *  *   /home/user/public_html/cronjob/send-mail.php 

送る-mail.php

を私は単純にスクリプトを実行することによって、電子メールを送信しますが、cronの中でしばらくすることはできません

/home/user/public_html/cronjob/send-mail.php: line 1: ?php: No such file or directory 
/home/user/public_html/cronjob/send-mail.php: line 3: =: command not found 
/home/user/public_html/cronjob/send-mail.php: line 4: =: command not found 
/home/user/public_html/cronjob/send-mail.php: line 5: =: command not found 
/home/user/public_html/cronjob/send-mail.php: line 6: =: command not found 
/home/user/public_html/cronjob/send-mail.php: line 7: .=: command not found 
/home/user/public_html/cronjob/send-mail.php: line 8: syntax error near unexpected token `(' 
/home/user/public_html/cronjob/send-mail.php: line 8: `$headers .= "Bcc: ".strip_tags($sender)."\r\n";' 

<?php 
$to  = "[email protected]"; 
$sender = "[email protected]"; 
$subject = "TEST CRONJOB"; 
$headers = "MIME-Version: 1.0\r\n"; 
$headers .= "Content-type: text/html; charset=ISO-8859-1\r\n"; 
$headers .= "Bcc: ".strip_tags($sender)."\r\n"; 
$headers .= "From: Domain.com <".strip_tags($sender).">\r\n"; 
$html  = "<html> 
       <body style='font-family:arial;'> 
        <p>Have a good day!<br>Test email sent twice per day.</p> 
       </body> 
      </html>"; 

mail($to, $subject, $html, $headers); 
?> 

は、いくつかのテストの後、私は次のエラーを受け取りました。あなたのsend-mail.phpで使用されるパスは絶対パスに変更する必要があること

#Minute Hour Day  Month Weekday  Command 
    0  0,12 *  *  *   /usr/bin/php /home/user/public_html/cronjob/send-mail.php 

注:

+0

/home/user/public_html/cronjob/send-mail.php 

を交換してください。例えば、あなたのスクリプトには 'strip_tags()'はありません。また、メールライブラリを使ってPHPMailerやSwiftMailerなどのメールを送信する方が良いです。 – Raptor

+0

@Raptor hmm ..正確な誤りは何ですか? –

+0

コードを修正しました。 cronジョブは、PHPファイル自体を実行するのではなく、PHPを使用してPHPファイルを実行する必要があります。例えば'/ usr/bin/php/path/to/your/script.php' – Raptor

答えて

0

はであなたのcronタブの内容を交換してください。

0

シェルから実行したときに、システムが(./を介して)実行していることが分かっていたが、cronはそのことを知らないため正常に動作していた。明示的にphpを使ってそのファイルを実行するように指示します。あなたのcrontabにあるので

、エラー、スクリプトからではありません

php -f /home/user/public_html/cronjob/send-mail.php 
関連する問題