0

mail()我已经在运行 Nginx、php5 fastcgi 的服务器上尝试了许多 wordpress 插件和一个原始 php脚本。

基本上,当脚本尝试使用 php 的mail()函数发送电子邮件时,页面将处于加载状态,直到最终出现 Nginx 504 Gateway Time-out 错误页面。

奇怪的是,电子邮件仍然可以正常发送,但页面挂起的事实促使用户反复点击“发送”按钮,因此我们经常会收到几封相同的电子邮件。

我目前无法访问我的 nginx/php 错误日志,因为我在 SSH/ftp 无法工作的地方工作,但我会尽可能发布任何相关信息。

同时对上述内容有简单的解释吗?

更新:

以下是来自 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 回答