使用Unix命令行发送邮件
记录一下,我在Ubuntu上使用GNU Mailutils 1.1/1.2(但我在Fedora和RHEL上看到了相同的行为)。
mail TO_ADDR
结果为来自$USER@$HOSTNAME
的邮件。有没有一种方法可以更改mail
插入的“发件人:”地址?记录一下,我在Ubuntu上使用GNU Mailutils 1.1/1.2(但我在Fedora和RHEL上看到了相同的行为)。
$ mail -s Testing chris@example.org Cc: From: foo@bar.org结果为:
Testing .
主题:测试 收件人:<chris@example.org> X-Mailer:mail(GNU Mailutils 1.1) Message-Id:<E1KdTJj-00025z-RK@localhost> 发件人:<chris@localhost> 日期:2023年3月11日 星期六 下午9:28:13“From: foo@bar.org”行是消息正文的一部分,而不是标题的一部分。
From: foo@bar.org
测试
man mail
:-r address
设置发件人地址。覆盖环境或启动文件中指定的任何发件人变量。 - Kellen Stuartmail
这样的古老命令的问题在于每个版本都有不同的API。不同的实现可能会基于环境变量$USER
,$HOSTNAME
,$EMAIL
设置From
,或者期望您使用-f
,-F
,-a
或-r
标志。当然,每个标志都与其他某个版本不兼容。例如,-a
对于一个实现意味着添加一个新的标题,而对于另一个实现则意味着添加一个MIME附件文件。POSIX仅定义了mailx
和仅限于-s
标志:https://pubs.opengroup.org/onlinepubs/9699919799/utilities/mailx.html - Mikko Rantalainenmail.mailutils -a "From: user@domain.com" -s "Subject line here" "receiver@example.com"
这样的代码,而不是使用可能具有任意API的mail
。 - Mikko Rantalainen