電子書籍の厳選無料作品が豊富!

Cronの使い方について、はじめて使うのですが、
時間を設定して、その時間に実行してくれるCronというものを知りました。そこで、使い方を知りたいので、レンタルサーバーで試しています。Hellow World!! というメッセージを送信するプログラム(public_html/ に mail.php )を書きました。そして、これを一時間おきに自分のメールアドレスに送信するようにCronの設定をしたいと考えています。

Cronの設定は、レンタルサーバー側の管理画面より設定が可能で、Cronの実行の結果を知らせるメールアドレスの設定(自分のアドレスを設定)と、Cronの命令の設定の2つがあり、命令には、

0 */1 * * *  /home/--[自分のFTP user アカウント]--/public_html/mail.php

と設定しました。 ただうまく実行できていないようで、Cronの実行結果を設定したメールアドレスで受け取っていますが、どうやらうまくいっていないようで、下記のようなメッセージが実行結果としてかえってきます。

/home/--[自分のFTP user アカウント]--/public_html/mail.php: line 1: ?php
: No such file or directory
/home/--[自分のFTP user アカウント]--/public_html/mail.php: line 2:
: command not found

(↑ mail.phpに書いた行数分だけエラーのlineが返ってきます。)

command not found とかでてくるので、Cron設定とは、phpファイルを指定するものではないのですか? このあたりがよく分からないので、教えてください。宜しく願いします。



補足
(メール送信の命令を書いたphpファイル) 直接ファイルにアクセスすると、実行されて、自分のメールアドレスにメールがくるので、こちらは大丈夫だと思います。

public_html/mail.php

<?php
$mailTo = 'test01@gweb.com';
$returnMail = 'test02@gweb.com';
$name = "【TEST】";
$mail = 'test02@gweb.com';
$subject = "【TEST】";
$body = <<< EOM
Hello World!
EOM;
mb_language('ja');
mb_internal_encoding('UTF-8');

$header = 'From: ' . mb_encode_mimeheader($name). ' <' . $mail. '>';
mb_send_mail($mailTo, $subject, $body, $header, '-f'. $returnMail);
?>

A 回答 (3件)

単純に「mail.phpが(phpのスクリプトではなく)シェススクリプトとして実行されている」だけでしょう。



<?php
を ?php というファイルを < で標準入力へのリダイレクションと解釈すれば、そんなファイルは無いだろうから
?php : No such file or directory
と、エラーメッセージの内容とも合致します。
    • good
    • 0
この回答へのお礼

ありがとうございます。シェルスクリプトのことをよく分かっていないので、調べて見たら、
適当につけたshファイルの中に、 php mail.php で実行ファイルを指定することによって解決しました。

お礼日時:2016/06/08 23:30

phpinfo()で確認しましょう。



mb_send_mailは、mbstring拡張モジュールが入っていないと使えません。
phpinfo の上の方にあるConfigure Commandの中に–enable-mbstring–という記述があれば問題なく利用できます。
    • good
    • 0
この回答へのお礼

返信ありがとうございます。Configure Command を確認しました。enable-mbstringはあったので、こちらは問題なく利用できるようでした。

お礼日時:2016/06/08 20:59

mb_send_mailが使えるサーバですか?

    • good
    • 0
この回答へのお礼

返信ありがとうござまいす。確認しましたら、こちらは使えるようです。

お礼日時:2016/06/08 20:59

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!