![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
PHPでも聞いてみたのですが、考えてみるとPHPと言うよりもLinuxのほうかもしれないということでお願いいたします
空メールの内容をPHPに渡したいと言うことで、いろいろ試してみましたが、なかなかうまくいきません
Webminを使ってサーバの管理をしています
MTAはsendmailを使っています
sendmailの/etc/aliases にはこのように記述しました
hoge: "|/usr/bin/procmail"
/etc/procmailrc にはこのように記述しています
PATH=/usr/bin:/bin:/usr/local/bin
MAILDIR=/var/spool/mail
LOGFILE=/var/www/html/****/procmail.log
LOCKFILE=/var/www/html/****/procmail.lock
:0
|/var/www/html/****/empty_mail_regist.php
私の考えでは
hoge@hoge.comにメールが来る
↓
sendmailが/usr/bin/procmailの起動
↓
procmailが/etc/procmailrc を読み込んでプログラム実行
となると思っているのですが間違うでしょうか?
/etc/aliases に
hoge: "|/var/www/html/***/empty_mail_regist.php"
と記述した場合、PHPのエラー(#!/usr/bin/php -q が抜けているなど)の場合はエラーメールが帰ってきます
PHPにアクセスはしているが実行できていない理由がわかりません
プログラム的なものだと思い、きめうちでメールを送るスクリプトを書きましたがダメでした
もちろん、コマンドラインで実行するとメールの送信はできます
スクリプトの所有者とメールアドレスのユーザは別なのでどれがダメなのかと思い、chownでhogeに変更してみましたが変わりはありませんでした
参考にしたサイトはこちらです
メール配信時のPHPスクリプト起動(Sendmail編)http://www.dolphy.gr.jp/webap/topic/smrsh.html
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
メールを受け取ってからの処理は私はこんな感じにしてます。
function getStdin(){
$stdin = fopen("php://stdin", "r");
if (!$stdin) exit();
while ($line = fgets($stdin)) {
$line = trim($line);
$lines.=$line."\n";
}
return $lines;
}
フローによって行ごとに配列でうけてもいいかもしれません。
なお挙動がつかみたいときは
テストのメールデータをつくっておいてまさにパイプしてやれば
よいでしょう。
cat mail.dat |/var/www/html/***/empty_mail_regist.php
No.1
- 回答日時:
fオプションでどうでしょ?
#!/パス/php -f
この回答への補足
ありがとうございます
#!/usr/bin/php -f に変更し少し前進したような気がします
The original message was received at Tue, 15 May 2007 18:18:51 +0900
from mail.hogehoge.jp [***.***.***.240]
----- The following addresses had permanent fatal errors -----
|/var/www/html/***/empty_mail_regist.php
(reason: 1)
(expanded from: <hoge@hoge.jp>)
----- Transcript of session follows -----
Could not open input file:
554 5.3.0 unknown mailer error 1
こちらがソースの先頭部分です
//メールソースを標準入力から読み込み
$source = file_get_contents("php://stdin");
if(!$source)
{
echo "fail!\n";
exit();
}
標準ストリームでメールが渡されていないのでしょうか…
解決しました!
sendmailの/etc/aliases の記述に問題があったようです
hoge: |/var/www/html/***/empty_mail_regist.php
↑これから↓コレに変更すると動き出しました
hoge: "|/usr/bin/php /var/www/html/***/empty_mail_regist.php"
smrshにPHPのシンボリックリンクを張っていたので、大丈夫だと思っていたのですが大きな勘違いですね…
どうもありがとうございました
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- UNIX・Linux postfix smtpサーバーリレーがTLSハンドシェーク失敗 1 2022/08/15 15:45
- UNIX・Linux cronの@rebootでのdateコマンドの実行につきまして 2 2023/06/11 16:23
- CGI -T(汚染モード)でメールが送れません 1 2022/06/12 14:11
- その他(プログラミング・Web制作) mariadbでのエラー 1 2022/11/15 12:31
- JavaScript javascriptで変数を組み込みたい 2 2023/01/13 09:52
- UNIX・Linux AWSのEC2のZabbixユーザーでawscliコマンドが実行できない状態を解決する 1 2022/12/06 22:17
- Ruby Ruby / passenger のインストールについて 1 2023/01/30 18:31
- UNIX・Linux cronでシェルスクリプト実行時のkubactlコマンドが機能しない対処法。 2 2022/08/03 18:58
- PHP ECCUBE4のページ管理でPHPを実行させたい 1 2023/04/06 11:42
- その他(プログラミング・Web制作) ラズパイ上の、pythonのエラーについて 1 2023/04/12 23:27
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
メールをトリガーにPHPを自動起...
-
スクリプトのエラー「unexpecte...
-
smrshを使ってプログラムを動か...
-
sudoでシェルスクリプトを実行...
-
crontabで実行されない部分があ...
-
Solaris10 smuser実行時の認証...
-
CentOSでkakasiが利用できない
-
SONYの音楽ソフト「x-アプリ」...
-
dd実行 途中経過
-
PowerShellってなんでイッパツ...
-
エクセルの表にヘンな枠が・・・
-
ddコマンドでイメージをコピー...
-
エクセル時間毎ごとにマクロを...
-
タスクバーの音量アイコンをク...
-
Dirコマンドでフォルダ内ファイ...
-
ラズパイで『’test.service’をs...
-
TOPコマンドで表示するCPU使用...
-
Linux(Fedora)で外付けHDDが...
-
レコーダー換装用のHDDのAVコマ...
-
Linux環境 grepで改行コード(CR...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
スクリプトのエラー「unexpecte...
-
bashでシングルクォート内の変...
-
シェルスクリプト実行で”そのよ...
-
Linux 月を英語表示したい
-
ロケールをutf8からsjisにする...
-
crontabでsql/plusの起動
-
自動パスワード入力でscpするス...
-
apachectl start command not f...
-
Linuxでシェルスクリプトがフル...
-
cron(javaプログラム)からroot...
-
シェルスクリプトで$RANDOMの値...
-
Linuxで自作バッチファイルの置...
-
cronの@rebootでのdateコマンド...
-
ログイン時にエラーメッセージ...
-
bad interpreterで、シェルが使...
-
Cronジョブの終了時刻を簡単に...
-
mekeコマンド
-
sudoでNOPASSWDとしてもパスワ...
-
Bシェルで文字列が日付として正...
-
/usr/local/bin/rubyを実行する...
おすすめ情報