Cannot send mail to client's domain

I have configured exim for sending mail on a server according to the instructions on here - http://library.linode.com/email/exim/se … 0.04-lucid">http://library.linode.com/email/exim/send-only-mta-ubuntu-10.04-lucid. Mail is delivered correctly to all domains except uthandosa.org

The server has the following hostname configured:

uthando@uth1:~$ hostname
uth1
uthando@uth1:~$ hostname -f
uth1.uthandosa.org

With regards DNS for the domain uthandosa.org (using Linode DNS):

I have A records for uth1 and www pointing to 176.58.100.133.

I have an MX record pointing to xavier.macrolan.co.za (my client's mail server)

I have a TXT record with this "v=spf1 a mx ~all"

Mail sent to xxx@uthandosa.org is never received though. I have no idea what else to check. Any help appreciated.

4 Replies

First, you need to make sure that the message is not still in the mail queue.

Use mailq to see what if anything is in the queue.

Also, Exim makes some very good logs. Check the mail logs and it should show when it got the message to send, what results it got when it tried to send as well.

Also, you can use an Exim command to see what it will do with an address like:

exim -v -bt xxx@uthandosa.org

It should show you where it will try to deliver the message and the MX records if any found for the mail host that accepts email for that email.

Like:

wk3dd@ulterius:/etc/munin# exim -v -bt xxx@uthandosa.org 
xxx@uthandosa.org
  router = dnslookup_dkim, transport = remote_smtp_dkim
  host xavier.macrolan.co.za [41.222.227.20] MX=0

@Dweeber:

Also, you can use an Exim command to see what it will do with an address like:

exim -v -bt xxx@uthandosa.org

It should show you where it will try to deliver the message and the MX records if any found for the mail host that accepts email for that email

Thanks, that is highlighting an issue. Still not sure what to do about it though?

exim -v -bt xxx@uthandosa.org
R: system_aliases for xxx@uthandosa.org
xxx@uthandosa.org is undeliverable

Here's more debugging info…

sudo exim -v -bt -d xxx@uthandosa.org
Exim version 4.71 uid=0 gid=0 pid=31975 D=fbb95cfd
Berkeley DB: Berkeley DB 4.8.24: (August 14, 2009)
Support for: crypteq iconv() IPv6 GnuTLS move_frozen_messages DKIM
Lookups: lsearch wildlsearch nwildlsearch iplsearch cdb dbm dbmnz dnsdb dsearch nis nis0 passwd
Authenticators: cram_md5 plaintext
Routers: accept dnslookup ipliteral manualroute queryprogram redirect
Transports: appendfile/maildir/mailstore autoreply lmtp pipe smtp
Fixed never_users: 0
Size of off_t: 8
GnuTLS compile-time version: 2.8.5
GnuTLS runtime version: 2.8.5
changed uid/gid: forcing real = effective
  uid=0 gid=0 pid=31975
  auxiliary group list: <none>
seeking password data for user "uucp": cache not available
getpwnam() succeeded uid=10 gid=10
configuration file is /var/lib/exim4/config.autogenerated
log selectors = 00000ffc 00612001
trusted user
admin user
seeking password data for user "mail": cache not available
getpwnam() succeeded uid=8 gid=8
user name "root" extracted from gecos field "root"
originator: uid=0 gid=0 login=root name=root
sender address = root@uth1.uthandosa.org
Address testing: uid=0 gid=110 euid=0 egid=110
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
Testing xxx@uthandosa.org
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
Considering xxx@uthandosa.org
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
routing xxx@uthandosa.org
--------> hubbed_hosts router <--------
local_part=xxx domain=uthandosa.org
checking domains
expansion of "${if exists{/etc/exim4/hubbed_hosts}{partial-lsearch;/etc/exim4/hubbed_hosts}fail}" forced failure: assume not in this list
hubbed_hosts router skipped: domains mismatch
--------> dnslookup_relay_to_domains router <--------
local_part=xxx domain=uthandosa.org
checking domains
uthandosa.org in "@:localhost:li446-133.members.linode.com: uthandosa.org: localhost.localdomain: localhost: uth1.uthandosa.org: uth1"? yes (matched "uthandosa.org")
uthandosa.org in "! +local_domains : +relay_to_domains"? no (matched "! +local_domains")
dnslookup_relay_to_domains router skipped: domains mismatch
--------> dnslookup router <--------
local_part=xxx domain=uthandosa.org
checking domains
cached yes match for +local_domains
cached lookup data = NULL
uthandosa.org in "! +local_domains"? no (matched "! +local_domains" - cached)
dnslookup router skipped: domains mismatch
--------> real_local router <--------
local_part=xxx domain=uthandosa.org
real_local router skipped: prefix mismatch
--------> system_aliases router <--------
local_part=xxx domain=uthandosa.org
checking domains
cached yes match for +local_domains
cached lookup data = NULL
uthandosa.org in "+local_domains"? yes (matched "+local_domains" - cached)
R: system_aliases for xxx@uthandosa.org
calling system_aliases router
rda_interpret (string): ${lookup{$local_part}lsearch{/etc/aliases}}
search_open: lsearch "/etc/aliases"
search_find: file="/etc/aliases"
  key="xxx" partial=-1 affix=NULL starflags=0
LRU list:
  :/etc/aliases
  End
internal_search_find: file="/etc/aliases"
  type=lsearch key="xxx"
file lookup required for xxx
  in /etc/aliases
lookup failed
expanded: 
file is not a filter file
parse_forward_list: 
system_aliases router declined for xxx@uthandosa.org
--------> userforward router <--------
local_part=xxx domain=uthandosa.org
checking domains
cached yes match for +local_domains
cached lookup data = NULL
uthandosa.org in "+local_domains"? yes (matched "+local_domains" - cached)
checking for local user
seeking password data for user "xxx": cache not available
getpwnam() returned NULL (user not found)
userforward router skipped: xxx is not a local user
--------> procmail router <--------
local_part=xxx domain=uthandosa.org
checking domains
cached yes match for +local_domains
cached lookup data = NULL
uthandosa.org in "+local_domains"? yes (matched "+local_domains" - cached)
checking for local user
seeking password data for user "xxx": using cached result
getpwnam() returned NULL (user not found)
procmail router skipped: xxx is not a local user
--------> maildrop router <--------
local_part=xxx domain=uthandosa.org
checking domains
cached yes match for +local_domains
cached lookup data = NULL
uthandosa.org in "+local_domains"? yes (matched "+local_domains" - cached)
checking for local user
seeking password data for user "xxx": using cached result
getpwnam() returned NULL (user not found)
maildrop router skipped: xxx is not a local user
--------> lowuid_aliases router <--------
local_part=xxx domain=uthandosa.org
checking domains
cached yes match for +local_domains
cached lookup data = NULL
uthandosa.org in "+local_domains"? yes (matched "+local_domains" - cached)
checking for local user
seeking password data for user "xxx": using cached result
getpwnam() returned NULL (user not found)
lowuid_aliases router skipped: xxx is not a local user
--------> local_user router <--------
local_part=xxx domain=uthandosa.org
checking domains
cached yes match for +local_domains
cached lookup data = NULL
uthandosa.org in "+local_domains"? yes (matched "+local_domains" - cached)
checking local_parts
jamesfernie in "! root"? yes (end of list)
checking for local user
seeking password data for user "xxx": using cached result
getpwnam() returned NULL (user not found)
local_user router skipped: xxx is not a local user
--------> mail4root router <--------
local_part=xxx domain=uthandosa.org
checking domains
cached yes match for +local_domains
cached lookup data = NULL
uthandosa.org in "+local_domains"? yes (matched "+local_domains" - cached)
checking local_parts
xxx in "root"? no (end of list)
mail4root router skipped: local_parts mismatch
no more routers
xxx@uthandosa.org is undeliverable: Unrouteable address
search_tidyup called
>>>>>>>>>>>>>>>> Exim pid=31975 terminating with rc=2 >>>>>>>>>>>>>>>></none>

Solved the issue by adding the following routing setup to the config…

new_router: 
  driver = manualroute 
  transport = remote_smtp 
  domains = uthandosa.org
  route_list = * xavier.macrolan.co.za

Reply

Please enter an answer
Tips:

You can mention users to notify them: @username

You can use Markdown to format your question. For more examples see the Markdown Cheatsheet.

> I’m a blockquote.

I’m a blockquote.

[I'm a link] (https://www.google.com)

I'm a link

**I am bold** I am bold

*I am italicized* I am italicized

Community Code of Conduct