【发布时间】:2013-12-11 01:58:56
【问题描述】:
我托管了很多网站,其中一个是在线花店。他们使用一个名为 FDL 的程序。它基本上是从订单中读取确认电子邮件并将其输入到他们的系统中。这是我的问题:我们最近遇到了 sendmail 程序(php 用来发送电子邮件的程序)的问题,所以我修复了它。现在,如果我尝试像这样从命令行发送电子邮件:
echo "test email" | sendmail -v xxx.xxx@gmail.com
它正确地发送它,结果如下:
LOG: MAIN
cwd=/home/flowers_website/public_html 3 args: sendmail -v xxx.xxx@gmail.com
LOG: MAIN
<= root@xxx.xxx.com U=root P=local S=344
[root@xxx.xxx.com www]# LOG: MAIN
cwd=/var/spool/exim 4 args: /usr/sbin/exim -v -Mc 1VqQdk-00057z-UG
delivering 1VqQdk-00057z-UG
Connecting to gmail-smtp-in.l.google.com [173.194.77.26]:25 ... connected
SMTP<< 220 mx.google.com ESMTP h5si10940958oed.70 - gsmtp
SMTP>> EHLO xxx.xxx.com
SMTP<< 250-mx.google.com at your service, [66.135.44.118]
250-SIZE 35882577
250-8BITMIME
250-STARTTLS
250-ENHANCEDSTATUSCODES
250-PIPELINING
250 CHUNKING
SMTP>> STARTTLS
SMTP<< 220 2.0.0 Ready to start TLS
SMTP>> EHLO xxx.xxx.com
SMTP<< 250-mx.google.com at your service, [66.135.44.118]
250-SIZE 35882577
250-8BITMIME
250-ENHANCEDSTATUSCODES
250-PIPELINING
250 CHUNKING
SMTP>> MAIL FROM:<root@xxx.xxx.com> SIZE=1376
SMTP>> RCPT TO:<xxx.xxx@gmail.com>
SMTP>> DATA
SMTP<< 250 2.1.0 OK h5si10940958oed.70 - gsmtp
SMTP<< 250 2.1.5 OK h5si10940958oed.70 - gsmtp
SMTP<< 354 Go ahead h5si10940958oed.70 - gsmtp
SMTP>> writing message and terminating "."
SMTP<< 250 2.0.0 OK 1386694713 h5si10940958oed.70 - gsmtp
SMTP>> QUIT
LOG: MAIN
=> xxx.xxx@gmail.com R=lookuphost T=remote_smtp H=gmail-smtp-in.l.google.com
[173.194.77.26] X=UNKNOWN:ECDHE-RSA-AES128-GCM-SHA256:128 C="250 2.0.0 OK 1386694713
h5si10940958oed.70 - gsmtp"
LOG: MAIN
Completed
但是当我尝试向鲜花网站发送电子邮件时,如下所示:
echo "test email" | sendmail -v orders@flowers_website.com
我得到了这个结果:
LOG: MAIN
cwd=/home/flowers_website/public_html 3 args: sendmail -v orders@flowers_website.com
LOG: MAIN
<= root@xxx.xxx.com U=root P=local S=346
[root@xxx.xxx.com www]# LOG: MAIN
cwd=/var/spool/exim 4 args: /usr/sbin/exim -v -Mc 1VqQkE-0005Vc-0s
delivering 1VqQkE-0005Vc-0s
LOG: MAIN
=> orders <orders@flowers_website.com> R=virtual_user T=virtual_userdelivery
LOG: MAIN
Completed
我不知道该怎么办。它说已完成,sendmail 根本没有日志(我什至找不到日志文件)。我检查了 /var/logs/mail.log 但那不存在。 /var/log/maillog 包含来自 dovecot 的日志,而不是 sendmail。我到处寻找日志文件,但在任何地方都找不到。所以我的问题有两部分:
A) 我如何打开 sendmail 的日志记录? 和 B) 我如何强制对 sendmail 进行 DNS 查找?
我认为 dns 查找是问题所在。它假设它不在同一台服务器上。域名指向该服务器,但绑定将记录路由到另一台服务器,所有网站数据和其他所有内容都存储在该服务器上。仅供参考,它没有列在本地主机名文件中。
附:我还暂时关闭了 iptables 以确保它不是防火墙问题。它不是。它仍然给出相同的结果,但从未收到。
编辑
作为参考,我们服务器上没有其他网站在通过 PHP 发送订单确认时遇到问题。其中一个有问题,但我昨天修好了,其余的都排好了。除了这个。我认为这与 DNS 解析主机名或其他东西有关.. 我不知道...
【问题讨论】:
标签: php magento email sendmail