Linux – Need to set mailx variable to specify the From address

linuxmailxredhat-enterprise-linux

Running Oracle Linux 5.8 (which is just re-branded RedHat EL 5.8) I must change the From address. But we have scripts that use mailx which cannot be re-written to use any extra flags, so I'd like to use internal variables instead, which I see on the linux.die.net manpage on mailx is an alternative to the -r flag:

-r address
Sets the From address. Overrides any from variable specified in environment or startup files. Tilde escapes are disabled.
The -r address options are passed to the mail transfer agent unless
SMTP is used. This option exists for compatibility only; it is
recommended to set the from variable directly instead.

(Source: http://linux.die.net/man/1/mailx)

How can we use these mailx variables? I tried adding this to /root/.mailrc, no go:

set from=FromAddress@Example.com

I also added that to /etc/mail.rc with no gold. So I am turning to you, SuperUsers…

Best Answer

I just tested this in Ubuntu 14.04 and using the -S parameter worked for me:

-S variable[=value]
          Sets the internal option variable and, in case of a string option, assigns value to it.

So, the following command sets the from address to "test@exmaple.org":

echo "This is my test" | mail -S from="test@example.org" -s "This is my subject" "receiver@exmaple.org"
Related Question