13

So, I'd like to send email from my server.

I installed mailx

apt-get install mailx

But a command like

mail -s "Hello world" [email protected]

Is actually giving an error in /var/spool/mail/ which says:

Mailing to remote domains not supported.

Why is that happening?

4 Answers 4

19

What MTA are you using locally? mail just gives you the ability to form a mail message, but you still need and MTA to do the actual delivery? By default, most distributions come with sendmail. You'll likely need to install another MTA or configure the current one to support outside delivery.

4
  • 2
    From the logfile here, it looks like exim 4.69
    – bobobobo
    Aug 20, 2010 at 17:34
  • 10
    If you're running Debian/Ubuntu, you'll need to edit /etc/exim4/update-exim4.conf.conf and change the line to read dc_eximconfig_configtype='internet' and restart exim. If you're using another distro, make sure this line looks like this hostlist relay_from_hosts = 127.0.0.1
    – vmfarms
    Aug 20, 2010 at 17:43
  • 10
    Actually I used the dpkg-reconfigure exim4-config "wizard" command and it works now! Thanks!
    – bobobobo
    Aug 20, 2010 at 17:47
  • After following @vmfarms edit, to restart do sudo /etc/init.d/exim4 restart Sep 27, 2023 at 20:04
6
# fgrep remote /var/log/exim4/mainlog.1 | sed -E 's#([ <])[^ <]+@[^ >]+([ >])#\1a@b\2#g' | head -1
2019-01-08 00:47:00 1ggebk-00055M-St ** a@b <a@b> R=nonlocal: Mailing to remote domains not supported
#

It would appear that Debian may come with an exim4 that's set to not work correctly on an internet-connected machine where the outgoing smtp ports aren't blocked.

As pointed out in various comments, to make it work correctly, one has to run dpkg-reconfigure exim4-config, and within the wizard, select the first internet option. Note that in subsequent dialogue boxes within the wizard, the defaults are still set to only listen on localhost IPv4/IPv6 addresses, so, it appears that, if you leave the other defaults alone, you're still leaving the incoming SMTP port alone.

To verify the wizard worked correctly, you can check the Debian-specific /etc/exim4/update-exim4.conf.conf (yes, it's a double .conf.conf, that's not a typo), which plays a part in this fiasco. Here's the relevant parts after running dpkg-reconfigure exim4-config and only changing the first option within the wizard, which enables sending mail, but keeps the SMTP port open only to the machine itself (a default option if you just click-through in the reconfig after the first option):

dc_eximconfig_configtype='internet'
…
dc_local_interfaces='127.0.0.1 ; ::1'

Another solution would be to install DragonFly Mail Agent in jessie and up — https://packages.debian.org/jessie/dma — which is a simple implementation of a MTA, implementing all the good UNIX mail things except for incoming SMTP, so, you don't have to worry about misconfiguration or external vulnerabilities.

2

Because mailx expects a full SMTP infrastructure, which is not configured by default. What kind of SMTP server, if any, do you have installed (i.e. postfix, exim, sendmail, qmail)?

1
  • I believe I have exim
    – bobobobo
    Aug 20, 2010 at 17:34
0

If you don't have an internal SMTP server installed you could send your mail for example through a gmail SMTP server, you can install sSMTP MTA and configure it with gMail SMTP Server, or another external SMTP server.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .