您最多选择25个主题 主题必须以字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符

README.exim.md 1.9KB

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 }