Код: Выделить всё
primary_hostname = domain1.ru
domainlist local_domains = domain1.ru:domain2.ru
domainlist relay_to_domains = domain1.ru:domain2.ru
...
begin routers
system_aliases:
driver = redirect
allow_fail
allow_defer
data = ${lookup mysql{SELECT `goto` FROM `alias` WHERE \
`address`='${$local_part}' AND domain='${domain}'}}
mysqluser:
driver = accept
condition = ${if eq{}{${lookup mysql{SELECT `maildir` FROM `mailbox` \
WHERE `username`='${local_part}' AND domain='${domain}' AND active = '1'}}}{no}{yes}}
transport = mysql_delivery
...
begin transports
mysql_delivery:
driver = appendfile
check_string = ""
create_directory
delivery_date_add
directory = ${lookup mysql{SELECT CONCAT('/var/mail/exim/', `maildir`) \
FROM `mailbox` WHERE `username`='${local_part}' AND domain='${domain}' AND active = '1'}}
directory_mode = 770
envelope_to_add
user = mailnull
group = mail
maildir_format
maildir_tag = ,S=$message_size
message_prefix = ""
message_suffix = ""
mode = 0700
quota = ${lookup mysql{SELECT quota/1024/1000 FROM mailbox \
WHERE username='${local_part}' AND domain='${domain}' AND active = '1'}{${value}M}}
quota_size_regex = S=(\d+)$
quota_warn_threshold = 75%
...
auth_plain:
driver = plaintext
public_name = PLAIN
server_condition = ${if crypteq{$3} \
{${lookup mysql{SELECT ENCRYPT(`password`) FROM `mailbox` \
WHERE `username` = '${quote_mysql:${local_part:$2}}' \
AND domain = '${quote_mysql:${domain:$1}}' \
AND active = '1'}{$value}{*}}}{yes}{no}}
server_prompts = :
server_set_id = $2
auth_login:
driver = plaintext
public_name = LOGIN
server_condition = ${if crypteq{$2} {${lookup mysql{SELECT ENCRYPT(`password`) \
FROM `mailbox` WHERE `username` = '${quote_mysql:${local_part:$1}}' \
AND domain = '${quote_mysql:${domain:$1}}' \
AND active = '1'}{$value}{*}}}{yes}{no}}
server_prompts = Username:: : Password::
server_set_id = $1
auth_cram_md5:
driver = cram_md5
public_name = CRAM-MD5
server_secret = ${lookup mysql{SELECT `password` FROM `mailbox` \
WHERE `username` = '${quote_mysql:${local_part:$1}}' \
AND domain = '${quote_mysql:${domain:$1}}' \
AND active = '1'}{$value}fail}
server_set_id = $1
Код: Выделить всё
# exim -bt rounce@domain2.ru
rounce@domain1.ru
<-- rounce@domain1.ru
<-- rounce@domain2.ru
router = mysqluser, transport = mysql_delivery
И если отправлять письмо, то оно приходит по адресу rounce@domain1.ru.
Если отправлять на пользователя, которого не существует в domain1, то
Код: Выделить всё
#exim -bt test@domain2.ru
test@domain1.ru is undeliverable: Unknown user
<-- test@domain2.ru
Насколько я понял, exim считает, что домен пуст и подставляет primary_hostname. Как можно убрать этот эффект?