mb_send_mailとpostfixについてご教授ください。

現在、PHP 4.3.9(cgi)とpostfixを使っています。

XMLの複数出力処理で3分~5分くらいの後に完了画面に遷移して
メールを飛ばしているのですが、xml出力処理を行わない場合は
メールが送信されます。

送信されない時の戻り値はfalseとなっていますので、mb_send_mail
が動いていないみたいです。(引数は同じです)

一定の時間が経つとsendmailに渡してくれないといった
設定などがあるのでしょうか。
それともメモリやCPUといったものが関係しているのでしょうか。

宜しくお願い致します。

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:
  • 終了:2008/10/06 12:50:06
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答2件)

id:b-wind No.1

回答回数3344ベストアンサー獲得回数440

ポイント35pt

コメント欄が使えないので、質問欄に書かせていただきます。

XMLの複数出力処理で3分~5分くらいの後に完了画面に遷移して

メールを飛ばしているのですが、xml出力処理を行わない場合は

メールが送信されます。

よく意味が分からないので、もっと詳しくお願いします。


送信されない時の戻り値はfalseとなっていますので、mb_send_mail

が動いていないみたいです。(引数は同じです)

false が取れているのなら、mb_send_mail 自体は動いているのでしょう。

おそらく、Postfix のログにエラー原因が書かれているでしょうから、そちらを提示してみて下さい。

人力検索はてな

id:yoichi111

早速のご回答ありがとうございました!

説明になってなくてすいません。。。

PHPの動きとしては、ある条件のレコードをsqlで取得して

1レコードごとにその内容を色々なXMLの形で吐き出しています。

その後DBの更新をしています。

XML出力しなくてもよい場合はDB更新のみというものです。

XML出力する場合に、条件にあうレコード数が多い場合は

XML作成に時間がかかります。(3分から5分程度)

DB更新後、メールを飛ばします。

その際、数レコードの場合は特に問題なくメールが飛ぶのですが

時間がかかるとメールがとびません。

maillogをみても特にエラーになっていませんでした。

それで戻り値を表示させたところ空になっていました。

maillogには以下のような文がありました。

postfix/anvil[20339]:statistics: max connection rate 1/60s

postfix/anvil[20339]: statistics: max connection count 1

postfix/anvil[20339]: statistics: max cache size 1

以上宜しくお願い致します。

2008/09/29 17:40:31
id:b-wind No.2

回答回数3344ベストアンサー獲得回数440

ポイント35pt

XML作成に時間がかかります。(3分から5分程度)

DB更新後、メールを飛ばします。

その際、数レコードの場合は特に問題なくメールが飛ぶのですが

時間がかかるとメールがとびません。

CGI として動作させ、ブラウザ等からアクセスしていると見ていいですね?


Apache のタイムアウトがデフォルトで5分だったと思うので、それで終了してしまっているのかもしれません。

エラーログも見てみてください。

人力検索はてな

id:yoichi111

エラーログで見落としていましたが、

mb_send_mail():Could not execute mail delivery program '/usr/sbin/sendmail -t -i

とありました。

CGIとして動作してはいないと思います。

あれは/usr/bin/phpと上で記述して行うものですよね。。

(cgiは使ってないのでcgi上から呼び出してはいません。

ちょっと詳しくないの適当ですいません。。。)

php.iniの設定ファイルを見たのですが

max_execution_timeが120となっていたので

これの可能性があるのかなと思ってます。

apacheのtimeoutも120となっていましたので

両方を直せばいけるような気がしてきました。。。

テストで直せればいいのですが、稼働中のサーバなので

試してはいません。

宜しくお願い致します。

2008/09/30 15:36:36

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません