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

Chr*_*way 84 unix email

使用mail TO_ADDR来自的电子邮件中的结果从Unix命令行发送消息$USER@$HOSTNAME.有没有办法更改插入的"发件人:"地址mail

为了记录,我在Ubuntu上使用GNU Mailutils 1.1/1.2(但我看到了与Fedora和RHEL相同的行为).

[编辑]

$ mail -s Testing chris@example.org                                                                  
Cc: 
From: foo@bar.org

Testing
.

产量

Subject: Testing
To: <chris@example.org>
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: foo@bar.org

Testing

"From:foo@bar.org"行是邮件正文的一部分,而不是标题的一部分.

cms*_*cms 100

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

  • -a开关,用于附加的报头应用,从供给:将被附加到发送邮件标题中的命令行头
  • $ REPLYTO环境变量指定一个回复:头

所以以下顺序

export REPLYTO=cms-replies@example.com
mail -aFrom:cms-sends@example.com -s 'Testing'
Run Code Online (Sandbox Code Playgroud)

结果,在我的邮件客户端,是来自cms-sends@example.com的邮件,任何回复将默认为cms-replies@example.com

注意: Mac OS用户:你没有-a,但你确实有$ REPLYTO

NB(2): CentOS用户,许多评论者还说,你需要使用-r-a

注意(3):这个答案至少有十年之久(1),当你从谷歌进来时请记住这一点.

  • 在OS X中不起作用,-a不存在. (8认同)
  • 在CentOS中,`mail -a`选项的意思是“ attachemnet”。我需要像邮件-r from@whatever.com这样使用-r (2认同)

Bea*_*eau 42

在Centos 5.3上我能做到:

mail -s "Subject" user@address.com -- -f from@address.com < body
Run Code Online (Sandbox Code Playgroud)

双击阻止邮件解析-f参数并将其传递给sendmail本身.

  • 不起作用。现在将 3 个地址添加到地址中。to 地址、f 地址和 localdomain (4认同)
  • 这似乎适用于CentOS,但不适用于Ubuntu. (2认同)
  • 你可以帮助,这曾经工作 - 但是,自从最近的更新,它不再有效,它只是尝试另外发送电子邮件到-f @ hostname (2认同)

小智 22

GNU mailutils的'mail'命令不允许你这样做(至少很容易).但是如果你安装'heirloom-mailx',它的邮件命令(mailx)有'-r'选项来覆盖字段中的默认'$ USER @ $ HOSTNAME'.

echo "Hello there" | mail -s "testing" -r sender@company.com recipient@company.com
Run Code Online (Sandbox Code Playgroud)

适用于'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

  • 也许知道在Ubuntu 14.04 LTS上预装的GNU mailutils`mail`命令支持`-r`选项可能有用,因此您可以轻松设置发件人地址. (4认同)

小智 13

mail -s "$(echo -e "This is the subject\nFrom: Paula <johny@paula.com>\n
Reply-to: 1232564@yourserver.com\nContent-Type: text/html\n")" 
milas.josh@gmail.com < htmlFileMessage.txt
Run Code Online (Sandbox Code Playgroud)

以上是我的解决方案....任何额外的标题可以在回复之前和之后添加...只是确保你在添加它们之前知道你的标题语法....这对我来说很有效.


小智 7

此外,最好使用它-F option来指定发件人姓名.

像这样的东西:

mail -s "$SUBJECT" $MAILTO -- -F $MAILFROM -f ${MAILFROM}@somedomain.com
Run Code Online (Sandbox Code Playgroud)

或者只查看可用选项:http: //www.courier-mta.org/sendmail.html


Alc*_*zar 5

也可以使用以下内容设置From名称和地址:

 echo test | mail -s "test" example@example.com -- -F'Some Name<example2@example.com>' -t
Run Code Online (Sandbox Code Playgroud)

由于某种原因传递-F'Some Name'-fexample2@example.com不起作用,但传递-t到sendmail工作,并"是"容易".


dee*_*ani 5

我从上述所有答案中得出这一点。当我尝试其中每一种时,没有任何效果。通过结合上述所有答案,我做了很多尝试和错误,并得出了结论。我不确定这是否适合您,但它在 Ununtu 12.04 和 RHEL 5.4 上对我有用。

echo "This is the body of the mail" | mail -s 'This is the subject' '<receiver-id1@email.com>,<receiver-id2@email.com>' -- -F '<SenderName>' -f '<from-id@email.com>'
Run Code Online (Sandbox Code Playgroud)

通过添加任意数量的收件人 ID,可以将邮件发送给任意数量的人,并且邮件由SenderNamefrom-id@email.com发送

希望这可以帮助。