使用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:X-Mailer: mail (GNU Mailutils 1.1) Message-Id: From: Date: Wed, 10 Sep 2008 13:17:23 -0400 From: foo@bar.org Testing
"From:foo@bar.org"行是邮件正文的一部分,而不是标题的一部分.
在我的邮件版本(Debian linux 4.0)中,以下选项可用于控制源/回复地址
的-a开关,用于附加的报头应用,从供给:将被附加到发送邮件标题中的命令行头
在$ REPLYTO环境变量指定一个回复:头
所以以下顺序
export REPLYTO=cms-replies@example.com mail -aFrom:cms-sends@example.com -s 'Testing'
结果,在我的邮件客户端,是来自cms-sends@example.com的邮件,任何回复将默认为cms-replies@example.com
注意: Mac OS用户:你没有-a,但你确实有$ REPLYTO
NB(2): CentOS用户,许多评论者还说,你需要使用-r
不-a
注意(3):这个答案至少有十年之久(1),当你从谷歌进来时请记住这一点.
在Centos 5.3上我能做到:
mail -s "Subject" user@address.com -- -f from@address.com < body
双击阻止邮件解析-f参数并将其传递给sendmail本身.
GNU mailutils的'mail'命令不允许你这样做(至少很容易).但是如果你安装'heirloom-mailx',它的邮件命令(mailx)有'-r'选项来覆盖字段中的默认'$ USER @ $ HOSTNAME'.
echo "Hello there" | mail -s "testing" -r sender@company.com recipient@company.com
适用于'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
mail -s "$(echo -e "This is the subject\nFrom: Paula\n Reply-to: 1232564@yourserver.com\nContent-Type: text/html\n")" milas.josh@gmail.com < htmlFileMessage.txt
以上是我的解决方案....任何额外的标题可以在回复之前和之后添加...只是确保你在添加它们之前知道你的标题语法....这对我来说很有效.
此外,最好使用它-F option
来指定发件人姓名.
像这样的东西:
mail -s "$SUBJECT" $MAILTO -- -F $MAILFROM -f ${MAILFROM}@somedomain.com
或者只查看可用选项:http: //www.courier-mta.org/sendmail.html
也可以使用以下内容设置From名称和地址:
echo test | mail -s "test" example@example.com -- -F'Some Name' -t
由于某种原因传递-F'Some Name'
和-fexample2@example.com
不起作用,但传递-t
到sendmail工作,并"是"容易".