Link to home
Start Free TrialLog in
Avatar of devNOOB
devNOOB

asked on

Why does my Linux Box send email from "Root"? How can I change it to something more friendly?

I am sending email from Ubuntu using the following command:

mail -s "Test" me@test.com ;

The command runs, but sends the email from root@testinglinux.com

Why does my Linux Box send email from "Root"? How can I change it to something more friendly?
ASKER CERTIFIED SOLUTION
Avatar of Mark
Mark

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
Avatar of arnold
The default uses the username that is logged in and running mail as the sender.

Use a better mail client such as mutt or pine depending on your mail configurations.

Both inclue RC files where you can set the email address.

Mark pointed to an option that sets the reply-to, but I think the email will still be seen as coming from root since it is the account you are logged in with.

If this is part of a script using the option where you format the message and pipe it to
/usr/sbin/sendmail which is often a place holder to the installed mail server for backwards compatibility.

echo "To: some emailaddress
From: your emailaddress
Subject: testing

This is a test" | /usr/sbin/sendmail -fyouremailaddress -oi -t


The -t tells it to look through the data being pumped in to identify the recipients (To, Cc, Bcc)
-f sets the sender email address (envelope sender)
Avatar of Mark
Mark

Arnold:
Mark pointed to an option that sets the reply-to, but I think the email will still be seen as coming from root since it is the account you are logged in with.

No, that doesn't happen. If the -r name is also from the local host, e.g. "-r noreply", then there is no warning or other indication in any of the headers. If the -r name is to a remote host, e.g. "-r someone@somehost.com", and the local root sender is not on that host, then the header will contain:

X-Authentication-Warning: therealdomain.com: realuser set sender to someone@somewhere.com using -r

You can also set the sender for mail[x] in $HOME/.mailrc
account fairyprincess {
    set from="someone@somewhere.com (John Doe)"
    set hostname=somewhere.com
    set ORGANIZATION="Princess Products"
}

Open in new window

you would then do:

mail -A fairyprincess -s "Test" me@test.com

This eliminates the X-Authentication-Warning warning. However, Arnold is correct to the extent that the "hidden" mail headers will always contain the real sender not to mention the Received: path hosts ... as they should!

I use mutt and mail both, mail more extensively. Mutt is great for encoding html, but I struggled with getting the equivalent of the -r option going (no -r in mutt). For mutt, it always sent the local LAN domain name no matter what I tried even though hostname -f returned the correct FDQN. Finally, I solved that by putting

set hostname=webserver.domain.com

in /etc/Mutt/muttrc
You can have a local config .muttrc in the home and there you can define the from email address that will be used.

The /etc/Mutt/Muttrc  is a system wide configuration.

In the local .muttrc
My_hdr  from
Or setting from will set the sender.
Oh, you can use multiple muttrc_customized
mutt -f <muttrc> to differentiate sender set in different config files.