我正在使用 ssmtp 套件透過 g-mail 發送電子郵件。一切都正常工作 - 唯一奇怪的是,如果我透過命令列發送郵件,「收件者欄位」很時髦。
ssmtp [email protected] < message.txt
基本上,「收件者」欄位只會顯示「未公開的收件者」
我讀到您可以設定包含“收件人:”欄位的標頭,但是當我mail
在其他系統上使用該命令時,這似乎過於複雜,它會自動執行此操作。
有沒有一種更簡單的方法可以透過命令列使用ssmtp
- 發送郵件,但無需更改上述語法或指定其他參數? (可能是一個配置文件,用於將“收件人”地址設置為指定的任何地址。
答案1
這種情況源自於對ssmtp
所做事情的誤解。訊息之間有一個非常重要的區別信封(哪些郵件伺服器用於路由郵件)和訊息身體(顯示在您的電子郵件用戶端中)。兩者都可能有To
和From
,它們可能彼此不同。這是好的!
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:
標頭是唯一必需的標頭,因此將從信封中派生標頭並在缺少標頭時將其插入。