Linux

我可以讓 SSMTP 自動設置“收件人:”標頭嗎?

  • June 29, 2012

我正在使用 ssmtp 包通過 g-mail 發送電子郵件。一切正常 - 唯一奇怪的是,如果我通過命令行發送郵件,“to field”很時髦。

ssmtp me@domain.com < message.txt

基本上“收件人”欄位只會說“未公開的收件人”

我讀到您可以設置包含“To:”欄位的標題,但是當我mail在其他系統上使用該命令時,這似乎過於復雜,我會自動執行此操作。

有沒有更簡單的方法通過命令行發送郵件ssmtp- 但不必更改上述語法或指定其他參數?(可能是一個配置文件,用於將“to”地址設置為指定的任何地址。

這種情況來自對ssmtp正在做的事情的誤解。郵件信封(郵件伺服器用於路由郵件)和郵件正文(顯示在您的電子郵件客戶端中)之間有一個非常重要的區別。兩者都可能有ToFrom,並且它們可能彼此不同。這沒關係!

ssmtp僅創建信封並促進將消息傳輸到 MTA。它期望您傳遞給它的主體完全形成並包含所有主體標頭。它不會為您添加任何內容*,(儘管它會插入消息處理標頭,例如,Received-by等)。我相信你也注意到這些消息也沒有Subject:

因此,您的問題的答案是該To:欄位需要包含在message.txt.

要顯示To:andSubject:欄位,您需要message.txt像這樣格式化:

To: cwd@gmail.com
Subject: Message for you

Message text starts here.
blah blah blah.

*這並不完全正確。由於From:標題是唯一需要的標題,因此將從信封中派生並在失去時插入。

引用自:https://unix.stackexchange.com/questions/41962