12

最初のいくつかの情報:

  • Debian スクイーズ
  • PHP 5.3.3
  • mod_cgi を使用した PHP
  • mail()この場合、私は絶対に使用する必要があります。私の他のすべてのプロジェクトでは、すでに SMTP メールを使用しています。

サイトのタイムアウトの問題を PHPmail()関数に切り分けました。これは、サーバー上の test.php ファイル内の唯一のコード行です。

<?php mail('rudolf@geardev.de', 'test', 'test');

これは無限にかかるようで、40 秒後に mod_cgi によって終了されます。コマンド

php -r "mail('rudolf@geardev.de', 'test', 'test');"

コマンドラインでメールを即座に送信します。

表示するログ ファイルを教えてください。Apache ログは次のとおりです。

[Thu Jan 17 12:17:00 2013] [warn] [client 178.15.148.43] mod_fcgid: read data timeout in 40 seconds
[Thu Jan 17 12:17:00 2013] [error] [client 178.15.148.43] Premature end of script headers: test.php

chmod -R 775問題は、数日前に誤ってルート ディレクトリで実行したことだと思います。このエラーを除いて、すべてのエラーを既に修正しました。

4

5 に答える 5

7

ほとんどの場合、2つの異なるphp.iniバージョンを使用します。1つはcli用、もう1つはcgi用です。Debianにはこの設定があると私は信じています。

  • /etc/php5/cgi/php.ini
  • /etc/php5/cli/php.ini

cliバージョンとcgiバージョンの電子メール構成が同じであり、機能することを確認してください。

メール設定キーは次のとおりです。[メール機能]

もう1つの可能性は、Webユーザーがsendmailを実行するためのアクセス権を持っていないことです。

スプールの権限も確認してください(更新)

于 2013-01-23T13:52:06.253 に答える
2

mail()信頼性が低く、このような問題につながるため、依存しないでください。私は何年もphpMailerをとても楽しく使ってきました。

続行する場合mail()は、php.ini の設定を確認してください ( http://www.quackit.com/php/tutorial/php_mail_configuration.cfmで説明されています)。通常、CLI には FastCGI とは異なる php.ini があることに注意してください。

いくつかのより一般的な問題:

  • FastCGI には sendmail を使用する権限がありません

  • 大きな添付ファイルのメモリ制限

于 2013-01-20T17:47:58.387 に答える
0

次の使用に問題がありますか:

exec('php -r \"mail('rudolf@geardev.de', 'test', 'test');\"');
于 2013-01-27T10:54:04.377 に答える
0

送信 SMTP 接続をブロックするファイアウォールを使用している可能性はありますか? そのサーバーには、電子メールを正常に送信できるものが他にありますか?

私はこれをコメントしますが、まだ許可されていません。

于 2013-01-25T22:57:59.167 に答える
0

この特定のエラーを探していたところ、さまざまな原因で発生する可能性があることがわかりました。あなたがそれを修正するためにすでに何をしようとしたかはわかりませんが、何が役立つかについていくつかの提案があります:

  • で始まり、<?phpで終わることを確認してください?>
  • ファイルを 755 に chmod してください
  • 何らかの出力を含めるようにしてください (例: "Mail sent." を出力)。

SO: PHP メール関数がエラーを引き起こす- 所有者は、同じ設定でサーバーを変更すると mail() 関数が動作するようになり、ホストに問題がある可能性があると述べました。

于 2013-01-23T00:17:26.020 に答える