Exim4: Relay not permitted
Solution 1:
You need to add the IP address of your host(s) to the list of the "permitted relayers".
Here is a simple article on how to configure that under Ubuntu, which has a split file type of configuration (as debian) and so differs from the official one.
Basically:
you set
dc_relay_nets
underupdate-exim4.conf.conf
to the IP address of the machine you want to relay from. Then you do the split config dance and runupdate-exim4.conf
and you should now be able to relay email from that IP (or range of IPs).
Solution 2:
After several hours of working in circles I stumbled upon the answer that worked for me. It didn't matter how many permutations of dpkg-reconfigure exim4-config
I tried, adding in entries for dc_relay_nets or dc_relay_domains or direct edits of exim4-local-domains.txt. It turns out there is a file named exim4-relay-mail-from-this-list-of-ip-addresses.txt in /etc/exim4
that simply needs the ip address or CIDR block of the net you want to relay for (e.g. 1.2.3.0/24). Mine is set up with a single entry on each line, not a semicolon separated list like much else in exim4. A restart of exim4 was required in my case.
Now, with a name like that it would seem only a fool could miss something this obvious, but in all my internet searches this file name never once materialized and everything I read directs back to using dpkg-reconfigure
and working with dc_relay_nets. Hope this helps someone else avoid lost time.
Solution 3:
Well, exim thinks that the domain of the receiving email is not local (so it should relay it) and correctly is denying to be a relaying host. You have to add your domain to local_domains like this: domainlist local_domains = @ : localhost : mydomain.com