我在伺服器上安裝了 postfix,當我使用該命令發送電子郵件時,sendmail
它不會被發送,但是當我使用該mail
命令發送時,它會被發送。更糟的是,postfix 日誌聲稱它在使用時已交付:
這就是日誌顯示的內容echo "test email" | sendmail [email protected]
Sep 4 14:33:03 howtocode1 postfix/pickup[271977]: 38418406E2: uid=0 from=<root>
Sep 4 14:33:03 howtocode1 postfix/cleanup[272164]: 38418406E2: message-id=<[email protected]>
Sep 4 14:33:03 howtocode1 postfix/qmgr[231761]: 38418406E2: from=<[email protected]>, size=295, nrcpt=1 (queue active)
Sep 4 14:33:03 howtocode1 postfix/smtp[272166]: 38418406E2: to=<[email protected]>, relay=mail2.mailinator.com[45.33.83.75]:25, delay=0.06, delays=0.03/0.01/0.01/0.01, dsn=2.0.0, status=sent (250 Ok)
Sep 4 14:33:03 howtocode1 postfix/qmgr[231761]: 38418406E2: removed
顯然它看起來是對的。但沒有郵件被送達。但這一個:效果很好!郵件已發送!echo "test email 2" | mail [email protected]
所以我不明白為什麼他們的mail
命令有效,但不起作用sendmail
。任何想法?
答案1
好吧,我們直接測試一下:
$ host -t mx mailinator.com
mailinator.com mail is handled by 1 mail.mailinator.com.
mailinator.com mail is handled by 1 mail2.mailinator.com.
➜ ~ telnet mail.mailinator.com 25
Trying 23.239.11.30...
Connected to mail.mailinator.com.
Escape character is '^]'.
220 mail.mailinator.com ESMTP Postfix
EHLO LutzWillek
250-mail.mailinator.com
250-8BITMIME
250-STARTTLS
250 Ok
MAIL FROM:<[email protected]>
250 Ok
RCPT TO:<[email protected]>
250 Ok
DATA
354 End data with <CR><LF>.<CR><LF>
Subject: Test from command line
Hello. This is a test message.
.
250 Ok
Connection closed by foreign host.
這有效,正如該訊息可以在https://www.mailinator.com/v4/public/inboxes.jsp?to=sendmail
您的日誌顯示帶有 id 的訊息38418406E
也已發送,並且遠端伺服器接受了此郵件。
那就再試一次吧會起作用的。
答案2
好吧,這是有史以來最奇怪的事情。這不起作用:
echo "Subject: 1hello people" | sendmail [email protected]
但這有效:
echo "Subject: hello people
>this is the body" | sendmail [email protected]
因此,由於某種原因,如果沒有身體,只有一個主體,它就行不通。它聲稱它已發送,但不知何故它沒有被接受或其他什麼。我嘗試發送到郵件發送器之外的其他地方,但遇到了相同的問題。