我可以讓 SSMTP 自動設定「To:​​」標頭嗎?

我可以讓 SSMTP 自動設定「To:​​」標頭嗎?

我正在使用 ssmtp 套件透過 g-mail 發送電子郵件。一切都正常工作 - 唯一奇怪的是,如果我透過命令列發送郵件,「收件者欄位」很時髦。

ssmtp [email protected] < message.txt

基本上,「收件者」欄位只會顯示「未公開的收件者」

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

有沒有一種更簡單的方法可以透過命令列使用ssmtp- 發送郵件,但無需更改上述語法或指定其他參數? (可能是一個配置文件,用於將“收件人”地址設置為指定的任何地址。

答案1

這種情況源自於對ssmtp所做事情的誤解。訊息之間有一個非常重要的區別信封(哪些郵件伺服器用於路由郵件)和訊息身體(顯示在您的電子郵件用戶端中)。兩者都可能有ToFrom,它們可能彼此不同。這是好的!

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

所以你的問題的答案是該To:字段需要包含在message.txt.

要使To:Subject:欄位顯示,您需要message.txt像這樣設定格式:

To: [email protected]
Subject: Message for you

Message text starts here.
blah blah blah.

*這並不完全正確。由於From:標頭是唯一必需的標頭,因此將從信封中派生標頭並在缺少標頭時將其插入。

相關內容