3

UPDATE: Thanks for responses on this but I'm going to drop exim and try Postfix.


My question is pretty similar to this one. I want to configure exim4 (on ubuntu 10.04) to forward/redirect all e-mail on a domain to an external address. My server hosts multiple domains. This is a pretty straight forward setup but I'm struggling to get it working.

Example:

*@domain-a.com > [email protected]

*@domain-b.com > [email protected]

*@domain-c.com > [email protected]

I tried adding the following to /etc/exim4/exim4.conf.template but the director isn't matching:

domaina_director:
  driver = redirect
  domains = dsearch;/etc/exim4/fwd_domains
  data = ${lookup{$local_part}lsearch{/etc/exim4/fwd_domains/$domain}}
  no_more

I've created the directory /etc/exim4/fwd_domains and in that, the file domain-a.com:

# cat domain-a.com 
*: [email protected]

Update: I'm not convinced this syntax is correct. More importantly, my director doesn't seem to be picked up before reaching this point.

Run update-exim4.conf & restart exim4.

Send test e-mail:

# mail [email protected]
Subject: jdhfdjks
dsfhjdshf
.
Cc: 

This appears in /var/log/exim4/mainlog:

2010-07-07 22:21:51 1OWd03-0002Zv-Kx <= root@primarydomain U=root P=local S=332
2010-07-07 22:21:51 1OWd03-0002Zv-Kx ** [email protected]: Unrouteable address
2010-07-07 22:21:51 1OWd03-0002Zx-MB <= <> R=1OWd03-0002Zv-Kx U=Debian-exim P=local S=1111
2010-07-07 22:21:51 1OWd03-0002Zv-Kx Completed
2010-07-07 22:21:51 1OWd03-0002Zx-MB => /var/mail/mail <root@primarydomain> R=mail4root T=address_file
2010-07-07 22:21:51 1OWd03-0002Zx-MB Completed

My director doesn't fire and the e-mail ends up in root's mailbox. Any ideas?

5 Answers 5

3

Use a wildcard search 'lsearch*' instead of 'lsearch'. This will match the wildcards.

domain_aliases:
  driver = redirect
  domains = dsearch;/etc/exim4/fwd_domains
  data = ${lookup{$local_part}lsearch*{/etc/exim4/fwd_domains/$domain}}
  no_more

Alternatively you can put your aliases in /etc/aliases and use a router like this. You can change the domains option as appropriate for your configuration. The above dseach would be appropriate.

domain_aliases:
  driver = redirect
  domains = ! +local_domains : +relay_to_domains
  data = ${lookup{$local_part@domain}lsearch*{/etc/aliases}}
  no_more

This requires aliases like:

*@domain-a.com : [email protected]
*@domain-b.com : [email protected]
*@domain-c.com : [email protected]
1

Try a little more invasive debugging:

exim -bv -d+verify [email protected]
exim -bt -d+route [email protected]

Your config looks sane (textbook even), more detail is needed on the failures.

1
0

Your director needs to be above the local delivery router.

5
  • I've tried moving my director to the top of the routers section of exim4.conf.template but I still get the same problem - unrouteable address.
    – Greg K
    Jul 19, 2010 at 12:00
  • check what happens with exim -bt address@domain
    – topdog
    Jul 19, 2010 at 19:03
  • $ exim -bt [email protected] [email protected] is undeliverable: Unrouteable address
    – Greg K
    Jul 28, 2010 at 21:46
  • do you have it listed in your relay_domains
    – topdog
    Jul 29, 2010 at 6:30
  • I don't think so: pastebin.com/4kLY2WC6
    – Greg K
    Jul 30, 2010 at 21:30
0

At the Exim docs there's something about lsearch not expanding the wildcards, and using wildlsearch to expand the keys before searching. I think the way you are doing now would only match the address *@domain-a.com. Take a look at the examples in the docs. Also, as a catch-all email, the router should be probably after all other meaningful routers, or it will catch valid emails before they are delivered.

1
  • There's no local recipients at the domain, it's all forwarded to gmail accounts.
    – Greg K
    Aug 2, 2010 at 9:42
0

This is probably so obvious you already checked, but you never know.

Are you use by any chance using the split configuration scheme?

In that case you should ignore exim4.conf.template and go with /etc/exim4/conf.d/main/01_exim4-config_listmacrosdefs instead.

You must log in to answer this question.

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