How can I set sender name and email address using mail command in shell script.
Try this:
mail -s 'Some Subject' -r 'First Last <you@example.com>' recipient@example.net
This sets both From:
and the envelope sender.
-
-
2@DanielLoureiro Right, Heirloom mailx has
-r
, but it isn't required by POSIX. Still good enough for *BSD and Linux. :) – lcd047 Jun 9 '16 at 14:10 -
-
depends on the mail/mailx implementation in your distro; what I found it works is appending a header variable:
--append="FROM:Foghorn Leghorn <sender@your-domain.com>"
– woohoo May 21 '18 at 23:30 -
@woohoo depends on the mail/mailx implementation in your distro - That of course applies equally to your solution. With my Heirloom
mailx
:mail: illegal option -- -
. – lcd047 May 24 '18 at 12:13
The option -a
populates the header.
quick command:
mail -a FROM:sender@my-domain.com recipient@another-domain.fr
long command
mail --append="FROM:sender@my-domain.com" recipient@another-domain.fr
Usage: mail [OPTION...] [address...] -a, --append=HEADER: VALUE append given header to the message being sent -A, --attach=FILE attach FILE --content-type=TYPE set content type for subsequent --attach options -e, --exist return true if mail exists --encoding=NAME set encoding for subsequent --attach options -E, --exec=COMMAND execute COMMAND -F, --byname save messages according to sender -H, --headers write a header summary and exit -i, --ignore ignore interrupts -n, --norc do not read the system mailrc file -N, --nosum do not display initial header summary -p, --print, --read print all mail to standard output -q, --quit cause interrupts to terminate program -r, --return-address=ADDRESS use address as the return address when sending mail -s, --subject=SUBJ send a message with the given SUBJECT -t, --to precede message by a list of addresses -u, --user=USER operate on USER's mailbox
Common options
--config-file=FILE, --rcfile=FILE load this configuration file --config-help show configuration file summary --config-lint, --rcfile-lint check configuration file syntax and exit --config-verbose, --rcfile-verbose verbosely log parsing of the configuration files --no-site-config, --no-site-rcfile do not load site configuration file --no-user-config, --no-user-rcfile do not load user configuration file --set=PARAM=VALUE set configuration parameter --show-config-options show compilation options
Global debugging settings
--debug-level=LEVEL set Mailutils debugging level --debug-line-info show source info with debugging messages -?, --help give this help list --usage give a short usage message -V, --version print program version
Mandatory or optional arguments to long options are also mandatory or optional for any corresponding short options.
That depends which mail client you are using. Some Linux distributions link to mailx
where you can use the -r from-addr
parameter.
If you have mutt you should be able to use mutt -e "set from='name <name@somewhere>'>
.
Other distributions which have the mail
command should be able to use echo "test"|mail -s "subject" address@recipient.com -- -f from@address
.
mail --help
) – Anthon May 4 '15 at 6:43