关于电子邮件:更改Unix中“邮件”的“发件人:”地址

关于电子邮件:更改Unix中“邮件”的“发件人:”地址

Change the “From:” address in Unix “mail”

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

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

[编辑]

产量

"发件人:foo@bar.org"行是消息正文的一部分,而不是标头的一部分。


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

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

所以下面的顺序

在我的邮件客户端中,结果是来自cms-sends@example.com的邮件,所有回复均默认为cms-replies@example.com

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

NB(2):CentOS用户,许多评论者添加了您需要使用-r而不是-a

NB(3):此答案至少已有十年历史(1),当您从Google进来时,请记住这一点。


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

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


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

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


上面是我的解决方案。...可以在from之前和回复之前添加任何额外的标头...只需确保在添加标头之前就知道标头的语法...。


另外,最好使用-F option指定发件人的姓名。

像这样:

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


也可以使用以下方式设置发件人名称和发件人地址:

出于某些原因,传递-F'Some Name'-fexample2@example.com不起作用,但是将-t传递给sendmail是有效的,而且"很容易"。


我是从以上所有答案中得出的。当我尝试其中的每一个时,对我来说什么都没有。通过结合以上所有答案,我得出了很多错误和结论,并得出了结论。我不确定这是否对您有用,但在Ununtu 12.04和RHEL 5.4上是否对我有用。

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

希望这可以帮助。


以下是一些选项:

  • 如果您有足够的特权,请配置sendmail以使用generics表进行重写

  • 自己编写整个标头(或邮寄给自己,用所有标头保存整个消息,然后重新编辑,然后从命令行使用rmail发送

  • 直接通过sendmail发送,使用" -f"命令行标志,并且不要在邮件中包含"发件人:"行

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

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


在Debian 7上,我仍然无法使用该问题的答案正确地设置发件人地址(永远是服务器的主机名),但是可以通过这种方式解决。

安装传家宝邮箱

确保它是默认值。

撰写邮件。


我不知道其他操作系统是否相同,但是在OpenBSD中,mail命令具有以下语法:

sendmail具有-f选项,您可以在其中指定FROM:字段的电子邮件地址。以下命令对我有用。


谢谢BEAU

我刚刚找到了它,它对我有用。 CentOS 5上邮件8.1的手册页没有提到这一点。对于-f选项,手册页显示:

-f Read messages from the file named by the file operand instead of the system mailbox. (See also folder.) If no file operand is specified, read messages from mbox instead of the system mailbox.

因此,无论如何,这是个很棒的发现,谢谢。


在CentOS上,这对我有用:


echo"body" | mail -S from=address@foo.com"Hello"

-S使您可以指定许多字符串选项,这是迄今为止修改标头等的最简单方法。


回声"测试" | mailx -r fake@example.com -s'test'email@example.com

它可以在OpenBSD中使用。


以上解决方案都不适合我...


在CentOS 5.5上,我发现从域设置默认值的最简单方法是修改主机文件。如果您的主机文件包含您的WAN /公共IP地址,只需修改列出的第一个主机名。例如,您的主机文件可能如下所示:

...
11.22.33.44 localhost default-domain whatever-else.com

...

要使其从everyth-else.com发送,只需对其进行修改,以便首先列出everyth-else.com,例如:

...
11.22.33.44 whatever-else.com localhost default-domain
...

我不能代表任何其他发行版(甚至CentOS的版本),但是在我的特定情况下,以上内容可以完美地工作。


这对我有用


是什么使我能够在Ubuntu 16.04上具有UTF-8编码和文件附件的自定义回复地址:

安装邮件客户端:

编辑SMTP配置:

发送邮件:


之前提供的答案在CentOS5上对我不起作用。我安装了mutt。它有很多选择。使用mutt,您可以这样做:


推荐阅读