cwd*_*cwd 2 linux ubuntu email ssmtp
我正在使用 ssmtp 包通过 g-mail 发送电子邮件。一切都工作正常 - 唯一奇怪的是,如果我通过命令行发送邮件,“收件人字段”很时髦。
ssmtp me@domain.com < message.txt
Run Code Online (Sandbox Code Playgroud)
基本上,“收件人”字段只会显示“未公开的收件人”
我读到您可以设置包含“收件人:”字段的标头,但是当我mail在其他系统上使用该命令时,这似乎过于复杂,它会自动执行此操作。
有没有一种更简单的方法可以通过命令行使用ssmtp- 发送邮件,但无需更改上述语法或指定其他参数?(可能是一个配置文件,用于将“收件人”地址设置为指定的任何地址。
这种情况源于对所做事情的误解ssmtp。邮件信封(邮件服务器用于路由邮件)和邮件正文(显示在电子邮件客户端中)之间存在非常重要的区别。两者都可能有To和From,并且它们可能彼此不同。这没关系!
ssmtp仅创建信封并促进将邮件传输到 MTA。它期望您传递给它的正文完全成形并包含所有正文标头。它不会为您添加任何内容*(尽管它会插入消息处理标头,例如,Received-by等)。我相信您也注意到这些消息中也没有Subject:。
所以你的问题的答案是该To:字段需要包含在message.txt.
要使To:和Subject:字段显示,您需要message.txt像这样设置格式:
To: cwd@gmail.com
Subject: Message for you
Message text starts here.
blah blah blah.
Run Code Online (Sandbox Code Playgroud)
*这并不完全正确。由于From:标头是唯一必需的标头,因此将从信封中派生标头并在缺少标头时将其插入。