Change the "From:" address in Unix "mail"
Sending a message from the Unix command line using mail TO_ADDR
results in an email from $USER@$HOSTNAME
. Is there a way to change the "From:" address inserted by mail
?
For the record, I'm using GNU Mailutils 1.1/1.2 on Ubuntu (but I've seen the same behavior with Fedora and RHEL).
[EDIT]
$ mail -s Testing [email protected] Cc: From: [email protected] Testing .
yields
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
The "From: [email protected]" line is part of the message body, not part of the header.
Solution 1:
In my version of mail ( Debian linux 4.0 ) the following options work for controlling the source / reply addresses
- the -a switch, for additional headers to apply, supplying a From: header on the command line that will be appended to the outgoing mail header
- the $REPLYTO environment variable specifies a Reply-To: header
so the following sequence
export [email protected]
mail -aFrom:[email protected] -s 'Testing'
The result, in my mail clients, is a mail from [email protected], which any replies to will default to [email protected]
NB: Mac OS users: you don't have -a , but you do have $REPLYTO
NB(2): CentOS users, many commenters have added that you need to use -r
not -a
NB(3): This answer is at least ten years old(1), please bear that in mind when you're coming in from Google.
Solution 2:
On Centos 5.3 I'm able to do:
mail -s "Subject" [email protected] -- -f [email protected] < body
The double dash stops mail from parsing the -f argument and passes it along to sendmail itself.
Solution 3:
GNU mailutils's 'mail' command doesn't let you do this (easily at least). But If you install 'heirloom-mailx', its mail command (mailx) has the '-r' option to override the default '$USER@$HOSTNAME' from field.
echo "Hello there" | mail -s "testing" -r [email protected] [email protected]
Works for 'mailx' but not '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