我可以让 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:标头是唯一必需的标头,因此将从信封中派生标头并在缺少标头时将其插入。

相关内容