使用mail命令发送电子邮件时指定来自用户

时间:2008-09-23 06:29:09

标签: linux email redhat

有没有人知道如何在使用mail命令发送电子邮件时更改来自用户?我查看了手册页,看不清楚如何做到这一点。

我们正在运行Redhat Linux 5.

16 个答案:

答案 0 :(得分:67)

您可以使用-a

指定可能需要的任何额外标头
$mail -s "Some random subject" -a "From: some@mail.tld" to@mail.tld

答案 1 :(得分:27)

http://www.mindspill.org/962似乎有一个解决方案。

本质:

echo "This is the main body of the mail" | mail -s "Subject of the Email" recipent_address@example.com -- -f from_user@example.com

答案 2 :(得分:20)

mail -r from@from.from -R from@from.com

-r = from-addr -R =回复地址

作者表示他的邮件版本不支持此标志。但是,如果你有一个版本可以正常工作。

答案 3 :(得分:16)

通过SMTP发送时,mail手册页建议以这种方式设置from变量(在CentOS 6上测试):

mail -s Subject -S from=sender@example.com recipient@example.com

您还可以使用-a选项附加文件:

mail -s Subject -S from=sender@example.com -a path_to_attachement recipient@example.com

答案 4 :(得分:5)

这些都不适合我(Ubuntu 12.04),但最终还是试用了&我得到的错误:

echo 'my message blabla\nSecond line (optional of course)' | 
mail -s "Your message title"
-r 'Your full name<yourSenderAdress@yourDomain.abc>'
-Sreplyto="yourReplyAdressIfDifferent@domain.abc"
destinatorEmail@destDomain.abc[,otherDestinator@otherDomain.abc]

(全部在一行中,“-Sreplyto”中没有空格)

我收到了以下邮件命令:

apt-get install mailutils

答案 5 :(得分:3)

首先添加 - 可以将sendmail选项附加到mail命令的末尾。 -f是sendmail上用于设置发件人地址的命令。所以你可以这样做:

mail recipient@foo.com - -f sender@bar.com

答案 6 :(得分:2)

这是solution

-r之后的第二个最简单的解决方案(指定一个From:标题,并通过这样的换行符将其与正文分开

 $mail -s "Subject" destination@example.com
 From: Joel <joel@example.com>

 Hi!
 .

仅适用于几个邮件版本,不知道redhat带有什么版本。

PS:大多数邮件版本很糟糕!

答案 7 :(得分:2)

以上都不适合我。我花了很长时间才弄明白,希望这有助于下一个人。

我正在使用Ubuntu 12.04 LTS和mailutils v2.1。

我在网上的某个地方找到了这个解决方案,不知道在哪里,再也找不到了:

-aFrom:Servername-Server@mydomain.com

使用完整命令:

cat /root/Reports/ServerName-Report-$DATE.txt | mail -s "Server-Name-Report-$DATE" myemailadress@mydomain.com -aFrom:Servername-Server@mydomain.com

答案 8 :(得分:1)

echo "This is the main body of the mail" | mail -s "Subject of the Email" recipent_address@example.com -- -f from_user@example.com -F "Elvis Presley"

echo "This is the main body of the mail" | mail -s "Subject of the Email" recipent_address@example.com -aFrom:"Elvis Presley<from_user@example.com>"

答案 9 :(得分:1)

大多数人在尝试正确伪造电子邮件中的发件人地址时需要更改两个值。第一个是起始地址,第二个是起始地址。在线提供的许多解决方案只会改变其中一个值。

如果是root用户,我会尝试使用简单的邮件命令向自己发送一封电子邮件,看起来像这样。 echo "test" | mail -s "a test" me@noone.com

以及相关日志: Feb 6 09:02:51 myserver postfix/qmgr[28875]: B10322269D: from=<root@myserver.com>, size=437, nrcpt=1 (queue active) Feb 6 09:02:52 myserver postfix/smtp[19848]: B10322269D: to=<me@noone.com>, relay=myMTA[x.x.x.x]:25, delay=0.34, delays=0.1/0/0.11/0.13, dsn=2.0.0, status=sent (250 Ok 0000014b5f678593-a0e399ef-a801-4655-ad6b-19864a220f38-000000)

尝试使用 - 更改发件人地址 echo "test" | mail -s "a test" me@noone.com -- dude@thisguy.com

这会更改orig-to值而不是from值: Feb 6 09:09:09 myserver postfix/qmgr[28875]: 6BD362269D: from=<root@myserver.com>, size=474, nrcpt=2 (queue active) Feb 6 09:09:09 myserver postfix/smtp[20505]: 6BD362269D: to=<me@noone>, orig_to=<dude@thisguy.com>, relay=myMTA[x.x.x.x]:25, delay=0.31, delays=0.06/0/0.09/0.15, dsn=2.0.0, status=sent (250 Ok 0000014b5f6d48e2-a98b70be-fb02-44e0-8eb3-e4f5b1820265-000000)

接下来尝试使用-r和a - 来调整from和orig-to。 echo "test" | mail -s "a test" -r dude@comeguy.com me@noone.com -- dude@someguy.com

日志: Feb 6 09:17:11 myserver postfix/qmgr[28875]: E3B972264C: from=<dude@someguy.com>, size=459, nrcpt=2 (queue active) Feb 6 09:17:11 myserver postfix/smtp[21559]: E3B972264C: to=<me@noone.com>, orig_to=<dude@someguy.com>, relay=myMTA[x.x.x.x]:25, delay=1.1, delays=0.56/0.24/0.11/0.17, dsn=2.0.0, status=sent (250 Ok 0000014b5f74a2c0-c06709f0-4e8d-4d7e-9abf-dbcea2bee2ea-000000)

这就是它为我工作的方式。希望这有助于某人。

答案 10 :(得分:1)

这适用于Centos7

echo "This is the main body of the mail" | mail -s "Subject of the Email" -r seneder_address@whatever.com recipent_address@example.com

答案 11 :(得分:1)

这是2018年在Debian 9上的答案。

请注意,-e表示回显以允许换行符,而-r表示邮件名称以及外发电子邮件地址:

$ echo -e "testing email via yourisp.com from command line\n\nsent on: $(date)" | mailx -r "Foghorn Leghorn <sender@yourisp.com>" -s "test cli email $(date)" -- recipient@somedomain.com

希望这有帮助!

答案 12 :(得分:0)

在CentOs5上:-r from@me.omg

答案 13 :(得分:0)

感谢所有示例提供商,其中一些不是。 下面是另一个适合我的简单示例格式。

echo "Sample body" | mail -s "Test email" from=sender-addrs@example.com recepient-addres@example.com

答案 14 :(得分:0)

对于CentOS,这是有效的命令:

mail -s Subject -S from=sender@example.com recipient@example.com

答案 15 :(得分:-1)

我遇到了同样的问题。但我解决了问题只是在 / ect / passwd 字段中设置geko字段。 Postfix默认从用户登录发送邮件。让我们假设您要从字段更改为警报。您只需要在任何您喜欢的编辑器中编辑/ ect / passwd文件。

  1. vim / ect / passwd
  2. 根:X:0:0:<强>警报:/根:/斌/庆典

    1. 重新启动postfix。
    2. 现在检查结果。

      1. echo&#34;这是邮件的主体&#34; | mail -s&#34;电子邮件的主题&#34; user@domain.com
      2. 现在收件人。 From将显示为您在geko字段中指定的提醒。 希望这个解决方案适合你。