Postfix 不加到:外寄郵件的標頭

Postfix 不加到:外寄郵件的標頭

我已經配置了基本的 Postfix 設定來使用外部 smtp 中繼主機發送郵件,並透過/etc/aliases.發送電子郵件有效(透過sendmail命令)但是,當我收到郵件時,To:標頭丟失了;它不會顯示在原始電子郵件中。

問題:如何讓郵件To:頭顯示在收到的郵件中?

更多細節

例如,當我從命令列發送此訊息時:

echo -e "Subject: test no header\n\nBody message" | sendmail [email protected]

或者

echo -e "Subject: test no header\n\nBody message" | sendmail root

/etc/aliases一條線root: [email protected]

我在這兩種情況下都會收到電子郵件。但在這兩種情況下,To:標題都不存在。

原始郵件如下圖所示:

Return-Path: <[email protected]>
X-Envelope-To: [email protected]
X-Footer: aW5kaWdvbWVkLmNvbQ==
Received: from .....
Received: by ...  
Delivered-To: [email protected]
Received: by myhost.mydomain.com (Postfix, from userid 0)
    id 70CD8A03; Tue, 12 Jan 2021 14:48:16 +0100 (CET)
Subject: test no header
Message-Id: <[email protected]>
Date: Tue, 12 Jan 2021 14:48:16 +0100 (CET)
From: root <[email protected]>

Body message

我已經嘗試過的:

  • 透過發送郵件mailx確實插入 To: 標頭,例如echo -e "Body message" | mailx root -s "Subject: test no header"

  • 我已經嘗試過配置always_add_missing_headers = yes/etc/postfix/main.cf但沒有幫助。

/etc/postfix/main.cf我的文件中的一些相關部分(我認為) :

...
append_dot_mydomain = no
...
# General
myhostname = myhost.mydomain.com
myorigin = myhost.mydomain.com
mydestination = $myhostname localhost.$mydomain localhost myhost
...
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
....
relayhost = mail.something.com:465

答案1

您不需要任何To:標頭即可將訊息傳遞到目的地。僅 SMTP 信封用於此目的。

與該mailx工具不同,裸sendmail命令不是完整的郵件用戶端。

sendmail 指令不會建立格式正確的郵件訊息,而只是建立確保成功傳輸的最低限度的 SMTP 信封。如果您想要格式正確的電子郵件,則需要將其輸入為(標準)提供給 sendmail 命令。

換句話說:

您需要向sendmail 提供由標頭組成的訊息,每個標頭位於一個新行上,並用冒號將標頭與標頭值分隔開,長標頭繼續在下一行上並以一個或多個空格開頭。然後用一個空白行將訊息頭與正文分開。然後是訊息正文。

像這樣的東西

To: [email protected]
Content-Type: text/plain; charset=us-ascii>
From: [email protected] (Hermanb)
Subject:  A very very long 
  subject header spanning multiple lines
Date: Tue, 12 Jan 20121 15:46:24 +0200

test test

More test text
.

答案2

當我加入always_add_missing_headers = yes時它對我有用

相關內容