レッツPHPさんの写メールBBSを使わせていただいています。
送られてきたメールを解析し画像とログを保存するプログラム(pop.php)だけを
使いPOP3サーバのアドレスやパスワードなど設定し、携帯から送信しました。
そしてpop.phpにアクセスするときちんと画像と送信内容が書き込まれました。
これを利用して、cronで一定時間にpop.phpを起動させているのですが、
保存も送信内容も書き込まれません。
また、cronとは別なアドレスを用意し指定する宛先にメールが届いたらpop.phpを起動するというのも試しましたが保存されません。
――――――――――
フォルダ構成です
pop.php //受信・解析
data/s //画像
mail.cgi //送信内容保存ファイル
――――――――――
また、どちらも動いています。(動いているか確認するために自分宛にメールを送信する処理を加えてみました。)
WEBからアクセスするのとcronなどでプログラムを呼び出すのは違うのでしょうか。
エラーもなくWEBからアクセスすると保存されるので悩んでおります。
どなたかご教授いただけませんでしょうか。
よろしくお願い致します。
No.2ベストアンサー
- 回答日時:
DBに接続するファイルがincludeされているとしても
そのファイルが何の変数を使用しているかは不明ですよね?
たとえば環境変数とか。
で、そういったファイルはよくPATH変数を見ていることが多いんですよ。
ですので、サーバでCRONを動かすときには、環境変数のPATHも
指定してあげるべきです。
ほとんどのDB接続ファイルは環境変数を使用しますから。
OSはlinuxかFreeBSDあたりですよね?
まず環境変数を表示しましょう。
ENVコマンドです。
その中でPATH=からはじまる記述があると思います。
その記述をCRONにも同じ内容でいれてあげてください。
こんな感じ
#!/bin/sh
PATH=環境変数のPATHの値
/home/***/public_html/***/pop.php
そんなことはないと思いますが、
/home/***/public_html/***/pop.php
の前にちゃんと時間指定はしてますよね?
$_ENV["PATH"];で($_SERVER["PATH"]も同じ値でした)
/bin:/usr/bin:/sbin:/usr/sbin:/usr/local/bin:/usr/local/sbin
のように出たのでshファイルに追加しましたが、保存されませんでした。
同じくWebからアクセスすると保存されます。
試しにpop.phpの先頭にも
付け足してみましたが同じ結果です。
OSはFreeBSDでcronの時間も設定しています。
また、$log="./mail.cgi ";
$lines = @file($log);
というのがあり配列の中身をメールに送信して見ると
$lines0=$lines[0];
$lines1=$lines[1];
今送ったものと前回送った内容が表示されます。
(これは期待通りです)
しかし、mail.cgi のサイズはゼロで何も書き込まれていません。
実際にmail.cgi を開いていないという事でしょうか。
何度も申しわけありませんm(__)m
No.4
- 回答日時:
失敗しているということは、何かしらエラーメッセージが届いていないでしょうか(postmaster宛等)
ファイル自体が見つからないという旨の英文とか実行したphp側で吐くエラー文とかです
ファイルが見つかっていないと届いたけどphpまでのパスが確実にあっているならば、
ディレクトリ構成の認識にずれが生じてる可能性があります
/home/***/public_html/***/pop.php
の部分を
cd /home/***/public_html/***/
./pop.php
もしくは
cd /home/***/public_html/***/; ./pop.php
に変更してみてください(cd -> チェンジディレクトリ)
もしかしたらこれで実行されるかも、です
詳しいことにはお答え出来る知識はないのですが、経験談として参考までに
この回答への補足
ご回答ありがとうございます。
設定をしている者に検証をお願いしているのですがまだの状態です。。
アドバイスいただいた内容を実行しましたら結果ご報告いたします。
よろしくお願いいたします。
No.3
- 回答日時:
ちょっと気になるのですが、shファイルに追加とはどういう
意味でしょうか?
何か違う気がします。
crontabコマンドで設定しているのですよね?
一般的にCRONの書式はこんな感じになるはずです。
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
01 * * * * aaa.php
ちょっとcrontab -l と打って、
書いている中身を出してください。
そしてここに出してもらえますか?
都合の悪いところは伏せてもらってかまいません。
cronで呼び出すファイルはpop.shなのですがそこに追加しました。
>その記述をCRONにも同じ内容でいれてあげてください。
というところを理解していませんでした。すみません。
cronでの設定は他の者がしているのでcrontabの内容を表示してもらいました。
# /**/*** - root's crontab for FreeBSD
#
SHELL=/bin/sh
PATH=/etc:/bin:/sbin:/usr/bin:/usr/sbin
HOME=/var/log
#
#minute hour mday month wday who command
#
*/5 * * * * root /usr/libexec/**
#
# rotate log files every hour, if necessary
0 * * * * root newsyslog
#
# do daily/weekly/monthly maintenance
1 3 * * * root periodic daily
15 4 * * 6 root periodic weekly
30 5 1 * * root periodic monthly
#
# time zone change adjustment for wall cmos clock,
# does nothing, if you have UTC cmos clock.
よろしくお願いします。
No.1
- 回答日時:
たぶん、CRONに設定した情報に不備があるのだと思います。
そして想像ですが、CRONを設定をした時にpop.phpの
パスを通しましたか?
どこにあるかというのはCRONはわかってくれません。
その情報も記載してあげないと駄目ですよ。
ありがとうございます。
cronではshファイルを呼び出し
#!/bin/sh
/home/***/public_html/***/pop.php
pop.phpの先頭に
#!/usr/local/bin/php -q
というようにしています。
pop.phpでDBに接続するファイルをincludeしていますが、
DBに書き込まれいるのでpop.php以外はいいのかなと勘違いしていました。
足りない設定はどのよなものでしょうか。
よろしくお願いします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- PHP どうして送信されないのでしょうか? 1 2022/12/09 05:23
- その他(ソフトウェア) PC上のOutlookでIMAPアクセス時の送信が出来ない。Android上では問題なし。 2 2022/09/28 11:22
- Visual Basic(VBA) 【Excel VBA】自動メール送信の機能追加 5 2022/09/29 12:53
- PHP php 完了画面の送信メールのコードを書いているのですが・・・ 2 2023/06/02 12:01
- デスクトップパソコン スマホからメール添付でパソコンへ送った画像が開かない 4 2023/06/06 17:19
- PHP php 入力画面から確認表示画面へ情報の受け渡しについて。 1 2023/06/07 18:00
- ネットワーク ニフティメールのiPhoneとWin PCでの運用 1 2023/03/30 11:19
- Windows 10 指定したファイルを任意の範囲のディレクトリ内に上書き保存したい 1 2022/11/24 10:42
- Gmail 会社のメルアドから個人のGmailアドレスに送ったら、「このメールにはご注意ください」と警告が出た 2 2022/05/26 15:12
- Visual Basic(VBA) エクセルのマクロを使ってメールを送る方法について教えてください 2 2022/03/29 01:36
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
CakePHP2のCronでのShellを使う...
-
.phpと.incファイルの違いはな...
-
URLが.PHPってどういう...
-
バイナリーデータをGIFで表示さ...
-
phpの書き方
-
「temp.ppd」という添付ファイル
-
PHPについて
-
cronで動かすと保存されなくなる
-
.phpファイルが、表示されない
-
ファイル入出力について
-
動作os
-
phpで複数のファイルをdlさせる...
-
apacheで拡張子を省略してアク...
-
【file_exists】ファイルが存在...
-
phpで別のファイルの変数に代入...
-
Formを使ったPHP間での受け渡し...
-
PHPがLocalhostのフォルダ内で...
-
PHP+MySQL SQL文を外部ファイル...
-
テキストボックスの値をファイ...
-
フォントの色を変えるには?
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
.phpと.incファイルの違いはな...
-
【file_exists】ファイルが存在...
-
.phpファイルが、表示されない
-
URLが.PHPってどういう...
-
サイトのphpソースコードを表示...
-
HTMLに埋め込んだPHPがうまく出...
-
PHP+MySQL SQL文を外部ファイル...
-
use と requireの違いは?
-
さくらレンタルサーバーでPHPが...
-
PHPファイルの中身が見られるこ...
-
fputs()はfwrite()のエイリアス...
-
プロパティファイルの読み込み...
-
コマンドプロンプト エラー
-
PHPを使ってのサーバ上ファイル...
-
htmlspecialcharsが機能してい...
-
phpmailerで送れない添付ファイ...
-
別のドメインのファイルをrequire
-
[PHP+XML]PHPで動的に出力す...
-
phpinfoの内容が見れない
-
CakePHP2のCronでのShellを使う...
おすすめ情報