我主持了一大堆網站,其中一個網上花店。他們使用名爲FDL的程序。它基本上讀取來自訂單的確認電子郵件並將其輸入到他們的系統中。這是我的問題:我們最近有一個sendmail程序(php用來發送郵件的程序)的問題,所以我修復了它。現在,如果我嘗試在命令行中發送電子郵件,像這樣:php sendmail沒有到達目的地,沒有記錄錯誤。如何強制DNS查找sendmail?
echo "test email" | sendmail -v [email protected]
其結果如下正確地發送它:
LOG: MAIN
cwd=/home/flowers_website/public_html 3 args: sendmail -v [email protected]
LOG: MAIN
<= [email protected] U=root P=local S=344
[[email protected] 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:<[email protected]> SIZE=1376
SMTP>> RCPT TO:<[email protected]>
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
=> [email protected] 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 [email protected]_website.com
我得到這樣的結果:
LOG: MAIN
cwd=/home/flowers_website/public_html 3 args: sendmail -v [email protected]_website.com
LOG: MAIN
<= [email protected] U=root P=local S=346
[[email protected] www]# LOG: MAIN
cwd=/var/spool/exim 4 args: /usr/sbin/exim -v -Mc 1VqQkE-0005Vc-0s
delivering 1VqQkE-0005Vc-0s
LOG: MAIN
=> orders <[email protected]_website.com> R=virtual_user T=virtual_userdelivery
LOG: MAIN
Completed
我不知道該怎麼做。它說完成,從sendmail沒有日誌(我甚至找不到日誌文件)。我選中了/var/logs/mail.log,但不存在。/var/log/maillog包含來自dovecot的日誌,而不是sendmail。香港專業教育學院看到萬無一失的日誌文件,我無法找到它的任何地方。所以我的問題有2個部分:
A)我如何打開日誌記錄的sendmail? 和 B)周我強制DNS查找sendmail?
我認爲DNS查找是問題。它假定它在同一臺服務器上時,它不是。域名指向這個服務器,但綁定將記錄路由到另一個服務器,在那裏存儲所有網站數據和其他所有內容。僅供參考,它未在本地主機名文件中列出。
P.S.我還暫時關閉了iptables,以確保它不是防火牆問題。它沒有。它仍然給出了相同的結果,從未收到。
編輯
參考,我們的服務器上沒有其他網站有麻煩通過PHP發送訂單確認。其中一人遇到了問題,但我昨天解決了問題,其餘的問題都沒有解決。除此之外。我認爲它與DNS解決主機名或什麼有關..我不知道...
我正在使用cpanel。我從shell中完全託管我自己的私人網站。我通常不使用cPanel,但老闆堅持我儘可能使用它。 此外,鮮花網站在我們的服務器之一,並轉移到另一個,但DNS指向新的服務器。所以郵件和網站託管在另一臺服務器上,但它們是由該服務器指向的。 和FYI,在/ var/spool/exim中沒有郵件。繼承人ls: db exim-daemon.pid 輸入 msglog – Katushai