Current File : //usr/share/doc/postsrsd/README.exim.md |
PostSRSd integration with Exim
==============================
## SRS Return router
If using a domain solely for SRS return addresses:
SRS_DOMAIN = srs.your.domain
begin routers
srs_return:
caseful_local_part
domains = SRS_DOMAIN
driver = redirect
allow_fail
data = ${if match {$local_part}{\N(?i)^srs[01]=\N} \
{${if match \
{${readsocket{inet:localhost:10002}{get ${quote_local_part:$local_part_prefix$local_part}@$domain}{3s}}} \
{\N^200 (.+)\N} \
{$1} \
{:fail: Invalid SRS bounce} \
}} \
{:fail: Invalid SRS bounce} \
}
no_more
If your SRS domain is also used for other addresses:
SRS_DOMAIN = srs.your.domain
begin routers
srs_return:
caseful_local_part
domains = SRS_DOMAIN
local_part_prefix = srs0= : srs1=
driver = redirect
allow_fail
data = ${if match \
{${readsocket{inet:localhost:10002}{get ${quote_local_part:$local_part_prefix$local_part}@$domain}{3s}}} \
{\N^200 (.+)\N} \
{$1} \
{:fail: Invalid SRS bounce} \
}
## Rewriting outgoing mail in the SMTP transport
The following excludes locally submitted mail, or mail submitted by authenticated
users from SRS rewriting. Of course, if the sender address is already in
one of our local domains, there is no need to rewrite the address.
begin transports
remote_smtp:
debug_print = "T: remote_smtp for $local_part@$domain"
driver = smtp
return_path = ${if and { \
{!match_ip{$sender_host_address}{:@[]}} \
{!def:authenticated_id} \
{!match_address {$sender_address} { : *@+local_domains : *@+virtual_domains : SRS_DOMAIN}} \
} \
{${if match \
{${readsocket{inet:localhost:10001}{get $sender_address}{3s}}} \
{\N^200 (.+)\N} \
{$1} \
fail } \
} \
fail }