0

mail()私は、Nginx、php5 fastcgi を実行するサーバー上で、多くのワードプレス プラグインと生の php スクリプトだけを試しました。

基本的に、スクリプトが php の機能を使用して電子メールを送信しようとすると、mail()最終的に Nginx 504 ゲートウェイ タイムアウト エラー ページが表示されるまで、ページは読み込み状態でハングします。

奇妙なことに、電子メールは問題なく送信されますが、ページがハングするという事実により、ユーザーは「送信」ボタンを繰り返し押すようになり、同じ電子メールが何度も届くことがよくあります。

現在、SSH/ftp が機能しない職場にいるため、nginx/php エラー ログにアクセスできませんが、可能なときに関連情報を投稿します。

それまでの間、上記の簡単な説明はありますか?

アップデート:

以下は、mail.log のログ エントリの例です。ドメイン名が修飾されていないことに関係しているようです。これを修正するにはどうすればよいですか? (これはサーバーフォールトの可能性があります)

私はこれらをたくさん持っています(メールアドレスは編集されています):

Jul 27 17:26:27 vps sm-mta[28178]: r6NNcp6u021157: to=<user@email.co.uk>, ctladdr=<www-data@sergeserver> (33/33), delay=3+15:47:36, xdelay=00:02:06, mailer=esmtp, pri=47557620, relay=email.co.uk. [62.116.143.15], dsn=4.0.0, stat=Deferred: Connection timed out with email.co.uk.

そして、これらのいくつか:

Jul 27 17:40:01 vps sm-msp-queue[28198]: My unqualified host name (sergeserver) unknown; sleeping for retry
Jul 27 17:41:01 vps sm-msp-queue[28198]: unable to qualify my own domain name (sergeserver) -- using short name
4

1 に答える 1

0

これらの変数を増やしてみてください。実際のデフォルト値はわかりませんが、通常は約 30 秒または 60 秒です。

client_header_timeout N;
client_body_timeout N;
send_timeout N;
fastcgi_read_timeout N;

たとえば、電子メールを送信する場所に設定できるため、これをすべての場所のデフォルト値として設定する必要はありません。
もちろん、N を30s30 秒や2m2 分間などの期間に置き換える必要があります。

于 2013-07-26T12:42:03.383 に答える