我该如何格式化文件以便可以执行cat file | sendmail
?
通过输入Subject: This is the subject
,我不需要在 sendmail 中指定主题,但添加字段可以让我To: [email protected]
Recipient names must be specified
答案1
你忽略了消息之间的区别内容(标题和正文)和消息信封。您正在调用sendmail
消息内容,但您没有提供信封。信封控制着传递。没有它,消息就无法到达任何地方。
你不会说哪个 sendmail
您使用的命令。每个 MTS(Sendmail、qmail、Postfix、exim 等)都有自己的命令。它们的共同子集只有两种指定信封发件人和信封收件人的方式:
- 在命令行上明确地作为参数
sendmail
:< 文件 sendmail -f[电子邮件保护]邮局局长@本地主机
- 隐式地包含在邮件正文中,该邮件正文针对
To:
、Cc:
和Bcc:
标头进行了解析:< 文件 sendmail -f[电子邮件保护]-t
这个通用子集非常有限。例如,请注意,这种从标准输入和命令参数提交消息的模式是 Sendmail 的-bm
模式,但sendmail
实际上并非所有程序都支持该-bm
选项。因此,要可移植地调用此模式,您不能使用该选项。
与作为命令参数给出的接收者组合时,还存在可移植性警告-t
,有关详细信息,请参阅 Dave Sill 的书。因此,请选择一种形式或另一种形式。不要混合它们。
进一步阅读
- Dave Sill (2001).“
sendmail
注射”。 qmail 手册。ISBN 9781893115408。出版社。第 123-126 页。 - Weitse Venema。
sendmail
. Postfix 手册页。 sendmail
. Courier 手册页。- 埃拉·埃里克森(2000)。
cat
奖项的无用用途。
答案2
默认情况下,sendmail
需要在命令行上指定收件人。使用-t
可使其读取To:
、Cc:
、Bcc:
标头。