EximConfigVirtualDomain
Jump to navigation
Jump to search
This sets up a full virtual domain system in exim so that RT can be supported in a virtual domain.
1. Edit exim.conf.
2. At the top with the domain lists, add
domainlist virtual_domains = lsearch;/virtual/mail/virtual
3. Modify your ACLs to permit virtual domains:
accept local_parts = postmaster domains = +local_domains : +virtual_domains accept domains = +local_domains : +virtual_domains endpass message = unknown user verify = recipient
4. Modify routers to handle virtual domains:
dnslookup: driver = dnslookup domains = ! +local_domains : ! +virtual_domains transport = remote_smtp ignore_target_hosts = 0.0.0.0 : 127.0.0.0/8 no_more
5. Add a specific router to handle virtual domains. This goes between dnslookup and system_aliases:
- This director handles local aliases. Because it has no transport setting, it # just expands local parts that it recognises into new addresses.
virtual_alias: driver = redirect domains = +virtual_domains local_part_suffix = +* local_part_suffix_optional data = ${lookup{$local_part}lsearch*{/virtual/${domain}/mail/aliases}} qualify_preserve_domain file_transport = address_file pipe_transport = address_pipe no_more
6. Create the directory /virtual/<rt-host-name>/mail
7. Take and modify the following pr3l skr1p+ as appropriate to your setup:
#!/usr/bin/perl use strict; use warnings; my $urlflag = "--url 'http://rt.anarres.org/'"; my $gate = "/usr/local/rt3/bin/rt-mailgate"; my %queues = ( "General" => { Correspondence => { Address => 'correspondence', }, Comments => { Address => 'comments', }, }, "SPF Library" => { Base => 'libspf2', }, "SRS Library" => { Base => 'libsrs2', }, ); my $acorr = "--action correspond"; my $acomm = "--action comment"; foreach my $queue (sort keys %queues) { my $data = $queues{$queue}; my $corr = $data->{Correspondence}; my $comm = $data->{Comments}; my $corraddr = $corr->{Address}; $corraddr = $data->{Base} unless defined $corraddr; my $commaddr = $comm->{Address}; $commaddr = $data->{Base} . "-comments" unless defined $commaddr; print "$corraddr: \"|$gate --queue '$queue' $acorr $urlflag\"\n"; print "$commaddr: \"|$gate --queue '$queue' $acomm $urlflag\"\n"; print "\n"; }
7. Run the perl script, redirect the output into the file 'aliases'.
8. Restart exim.