更改Unix"邮件"中的"发件人:"地址

时间:2020-03-05 18:50:54  来源:igfitidea点击:

使用mail TO_ADDR从Unix命令行发送消息会导致来自$ USER @ $ HOSTNAME的电子邮件。有没有办法更改mail`插入的"发件人:"地址?

作为记录,我在Ubuntu上使用GNU Mailutils 1.1 / 1.2(但我已经看到Fedora和RHEL的行为相同)。

[编辑]

$ mail -s Testing [email protected]                                                                  
Cc: 
From: [email protected]

Testing
.

产量

Subject: Testing
To: <[email protected]>
X-Mailer: mail (GNU Mailutils 1.1)
Message-Id: <E1KdTJj-00025z-RK@localhost>
From: <chris@localhost>
Date: Wed, 10 Sep 2008 13:17:23 -0400

From: [email protected]

Testing

"发件人:[email protected]"行是消息正文的一部分,而不是标头的一部分。

解决方案

回答

以下是一些选项:

  • 如果我们有足够的特权,请配置sendmail以使用generics表进行重写
  • 自己编写整个标头(或者邮寄给自己,用所有标头保存整个消息,然后重新编辑,然后从命令行使用rmail发送
  • 直接通过sendmail发送,使用" -f"命令行标志,并且不要在邮件中包含"发件人:"行

这些并不完全相同,但是我让我们进一步研究。

在我的便携式电脑上,我已将sendmail验证为外发邮件服务器的客户端,并且使用泛型使返回的邮件到达另一个帐户。它像一种魅力。
我将收到的邮件与fetchmail汇总在一起。

回答

在我的邮件版本(Debian linux 4.0)中,以下选项可用于控制源/回复地址

  • -a开关,以应用其他标头,在命令行上提供From:标头,该标头将添加到传出邮件标头中
  • $ REPLYTO环境变量指定一个Reply-To:标头

所以下面的顺序

export [email protected]
mail -aFrom:[email protected] -s 'Testing'

在我的邮件客户端中,结果是来自[email protected]的邮件,所有回复都将默认为[email protected]

注意:Mac OS用户:我们没有-a,但是我们有$ REPLYTO

回答

这对我有用

echo "hi root"|mail [email protected] -s'testinggg' root

回答

在Centos 5.3上,我可以执行以下操作:

mail -s "Subject" [email protected] -- -f [email protected] < body

双破折号使邮件无法解析-f参数,并将其传递给sendmail本身。

回答

GNU mailutils的" mail"命令不允许我们这样做(至少很容易)。但是,如果我们安装" heirloom-mailx",则其邮件命令(mailx)具有" -r"选项,以覆盖字段中的默认" $ USER @ $ HOSTNAME"。

echo "Hello there" | mail -s "testing" -r [email protected] [email protected]

适用于" mailx",但不适用于" mail"。

$ ls -l /usr/bin/mail
lrwxrwxrwx 1 root root 22 2010-12-23 08:33 /usr/bin/mail -> /etc/alternatives/mail
$ ls -l /etc/alternatives/mail
lrwxrwxrwx 1 root root 23 2010-12-23 08:33 /etc/alternatives/mail -> /usr/bin/heirloom-mailx