When I set up a VPS, I set the name to "main" so both my /etc/hosts and /etc/hostnames files had one entry (that being "main"). So I set up root ssh access and type "hostname" and it gives me "main". Same deal when I type "hostname -f".
Well, I'm trying to set up Exim4 to send mail from my Django app (I only need to send, not receive) and I added the following to /etc/hosts
.
127.0.1.1 main.mydomain.com main
<myip> main.mydomain.com main
I then executed service hostname restart
and hostname -f
only returned main
. I even rebooted (something I try to avoid doing) and it still comes back main
. Not sure why this is… The actual files themselves show my new entries but I can't get the actual hostname
or hostname -f
command to change for the life of me.
I'm guessing, but I'm not 100% sure, that's why when I use the command echo test message | mail -s test email@email.com
I'm not getting an email at email@email.com
(too many emails?). If it isn't absolutely necessary to have hostnames set up to use exim, I'd like to avoid it because its caused me such a headache.
Any help will render me eternally grateful to your awesomeness.
Best Answer
To set the domainname, you can use the equally named program
domainname
:To query the actually set value, call it without parameters.
Also add need run the
hostname.sh
script (depends on the OS) to make the changes effective:On Debian and derivatives, there is also
/etc/mailname
which should contain the default sender's domain for outgoing emails.I can't make a statement on Exim, but I think the default values in exim for host- and domainame should point to the OS's settings.
To cite the manpage of hostname: