Reputation: 13730
Does anyone know how to change the from user when sending email using the mail command? I have looked through the man page and can not see how to do this.
We are running Redhat Linux 5.
Upvotes: 75
Views: 230820
Reputation: 1
Thanks to all example providers, some worked for some not. Below is another simple example format that worked for me.
echo "Sample body" | mail -s "Test email" [email protected] [email protected]
Upvotes: 0
Reputation: 11
echo "This is the main body of the mail" | mail -s "Subject of the Email" [email protected] -- -f [email protected] -F "Elvis Presley"
or
echo "This is the main body of the mail" | mail -s "Subject of the Email" [email protected] -aFrom:"Elvis Presley<[email protected]>"
Upvotes: 1
Reputation: 41
None of the above worked for me. And it took me long to figure it out, hopefully this helps the next guy.
I'm using Ubuntu 12.04 LTS with mailutils v2.1.
I found this solutions somewhere on the net, don't know where, can't find it again:
-aFrom:[email protected]
Full Command used:
cat /root/Reports/ServerName-Report-$DATE.txt | mail -s "Server-Name-Report-$DATE" [email protected] -aFrom:[email protected]
Upvotes: 4
Reputation: 4774
None of these worked for me (Ubuntu 12.04) but finally with trial & error I got:
echo 'my message blabla\nSecond line (optional of course)' |
mail -s "Your message title"
-r 'Your full name<[email protected]>'
-Sreplyto="[email protected]"
[email protected][,[email protected]]
(all in one line, there is no space in "-Sreplyto")
I got this mail command from:
apt-get install mailutils
Upvotes: 7
Reputation: 21
For CentOS here is the working command :
mail -s Subject -S [email protected] [email protected]
Upvotes: 1
Reputation: 503
When sending over SMTP, the mail
man page advises to set the from
variable, in this way (Tested on CentOS 6):
mail -s Subject -S [email protected] [email protected]
You could also attach a file using the -a
option:
mail -s Subject -S [email protected] -a path_to_attachement [email protected]
Upvotes: 21
Reputation: 3826
Here's an answer from 2018, on Debian 9 stretch.
Note the -e
for echo to allow newline characters, and -r
for mailx to show a name along with an outgoing email address:
$ echo -e "testing email via yourisp.com from command line\n\nsent on: $(date)" | mailx -r "Foghorn Leghorn <[email protected]>" -s "test cli email $(date)" -- [email protected]
Hope this helps!
Upvotes: 1
Reputation: 97
This works on Centos7
echo "This is the main body of the mail" | mail -s "Subject of the Email" -r [email protected] [email protected]
Upvotes: 1
Reputation: 21
Most people need to change two values when trying to correctly forge the from address on an email. First is the from address and the second is the orig-to address. Many of the solutions offered online only change one of these values.
If as root, I try a simple mail command to send myself an email it might look like this.
echo "test" | mail -s "a test" [email protected]
And the associated logs:
Feb 6 09:02:51 myserver postfix/qmgr[28875]: B10322269D: from=<[email protected]>, size=437, nrcpt=1 (queue active)
Feb 6 09:02:52 myserver postfix/smtp[19848]: B10322269D: to=<[email protected]>, 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)
Trying to change the from address with --
echo "test" | mail -s "a test" [email protected] -- [email protected]
This changes the orig-to value but not the from value:
Feb 6 09:09:09 myserver postfix/qmgr[28875]: 6BD362269D: from=<[email protected]>, size=474, nrcpt=2 (queue active)
Feb 6 09:09:09 myserver postfix/smtp[20505]: 6BD362269D: to=<me@noone>, orig_to=<[email protected]>, 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)
Next trying it with a -r and a -- to adjust the from and orig-to.
echo "test" | mail -s "a test" -r [email protected] [email protected] -- [email protected]
And the logs:
Feb 6 09:17:11 myserver postfix/qmgr[28875]: E3B972264C: from=<[email protected]>, size=459, nrcpt=2 (queue active)
Feb 6 09:17:11 myserver postfix/smtp[21559]: E3B972264C: to=<[email protected]>, orig_to=<[email protected]>, 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)
This is how it's working for me. Hope this helps someone.
Upvotes: 2
Reputation: 19203
You can specify any extra header you may need with -a
$mail -s "Some random subject" -a "From: [email protected]" [email protected]
Upvotes: 83
Reputation: 23479
You can append sendmail options to the end of the mail command by first adding --. -f is the command on sendmail to set the from address. So you can do this:
mail [email protected] -- -f [email protected]
Upvotes: 5
Reputation: 488394
http://www.mindspill.org/962 seems to have a solution.
Essentially:
echo "This is the main body of the mail" | mail -s "Subject of the Email" [email protected] -- -f [email protected]
Upvotes: 32
Reputation: 1904
mail -r [email protected] -R [email protected]
-r = from-addr -R = reply-to addr
The author has indicated his version of mail doesn't support this flag. But if you have a version that does this works fine.
Upvotes: 28
Reputation: 340211
Here's a solution.
The second easiest solution after -r (which is to specify a From: header and separate it from the body by a newline like this
$mail -s "Subject" [email protected]
From: Joel <[email protected]>
Hi!
.
works in only a few mail versions, don't know what version redhat carries).
PS: Most versions of mail suck!
Upvotes: 2