EXIM, sendmail, postfix, Dovecot и прочие. Решение проблем связанных с работой электронной почты
Модератор: xM
Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
-
Agronom
- ст. сержант
- Сообщения: 305
- Зарегистрирован: 2006-12-11 10:30:13
Непрочитанное сообщение
Agronom » 2015-03-04 13:04:20
Есть основной домен "domain.ru" и кучка виртуальных доменов с мх-записью на него же. Почта приходит на первый почтовик-exim 1)алиасами разруливается дальше на вирты 2) потом идет доставка локальным юзерам 3) все что осталось - на основной почтовый сервер-Лотус. Доставка проходит нормально и на вирты и на Лотус и локальным юзерам, но есть одно НО. Если приходит адрес
user@virtdomain.ru, а в алиасах для него только прописан адрес
info@virtdomain.ru, то почта доставляется на адрес
user@domain.ru, а должен быть отлуп
вот настройки:
Основное:
domainlist local_domains = @:localhost:lsearch;/etc/exim/aliases/domains.local
содержимое
domains.local:
Код: Выделить всё
domain.ru
filial1.ru
filial2.ru
virtdomain.ru
...
virtdomain5.ru
АСЛы:
MAIN
Код: Выделить всё
acl_smtp_rcpt = acl_check_rcpt
acl_smtp_mail = acl_check_sender
ACL CONFIGURATION
Код: Выделить всё
begin acl
acl_check_sender:
deny
log_message = mach host_reject.list
senders = /etc/exim/reject.list
accept
acl_check_rcpt:
accept hosts = :
deny domains = +local_domains
local_parts = ^[.] : ^.*[@%!/|]
deny message = Restricted sender in address
domains = +local_domains
local_parts = match /etc/exim/rejected_to.list
!hosts = 127.0.0.1 : +relay_from_hosts
deny domains = !+local_domains
local_parts = ^[./|] : ^.*[@%!] : ^.*/\\.\\./
deny message = You aren't authorized to send on this address
domains = +local_domains
local_parts = ^.*rjnr* : /etc/exim/rejected_to.list
local_parts = /etc/exim/rejected_to.list
accept local_parts = postmaster
require verify = sender
deny message = rejected because $sender_host_address is in a black list at $dnslist_domain\n$dnslist_text
!hosts = +trusted_hosts_list
dnslists = zen.spamhaus.org : http.dnsbl.sorbs.net : socks.dnsbl.sorbs.net : smtp.dnsbl.sorbs.net : dul.ru : dul.dnsbl.sorbs.net
deny message = Sorry, noone speaks chinese here
condition = ${if eq{$mime_charset}{gb2312}{1}{0}}
accept
deny message = "your hostname is bad (adsl, poll, ppp & etc)."
condition = ${if match{$sender_host_name} \
{adsl|dialup|pool|peer|dhcp} \
{yes}{no}}
accept domains = +local_domains
endpass
accept domains = +relay_to_domains
endpass
accept hosts = +relay_from_hosts
deny message = relay not permitted
ROUTERS
Код: Выделить всё
dnslookup:
driver = dnslookup
domains = ! +local_domains
transport = remote_smtp
ignore_target_hosts = 0.0.0.0 : 127.0.0.0/8
no_more
system_aliases:
driver = redirect
allow_fail
allow_defer
data = ${lookup{$local_part}lsearch{/etc/aliases}}
# user = exim
file_transport = address_file
pipe_transport = address_pipe
multi_aliases1:
driver = redirect
allow_fail
allow_defer
data = ${lookup{$local_part}lsearch{/etc/exim/aliases/aliases_fil1}}
file_transport = address_file
pipe_transport = address_pipe
multi_aliases2:
driver = redirect
allow_fail
allow_defer
data = ${lookup{$local_part}lsearch{/etc/exim/aliases/aliases_fil2}}
file_transport = address_file
pipe_transport = address_pipe
...
virtual:
driver = redirect
domains = dsearch;/etc/exim/aliases/
data = ${lookup{$local_part}lsearch{/etc/exim/aliases/$domain}}
file_transport = address_file
pipe_transport = address_pipe
localuser:
driver = accept
check_local_user
# local_part_suffix = +* : -*
# local_part_suffix_optional
transport = local_delivery
cannot_route_message = Unknown user
smart_route:
driver = manualroute
transport = remote_smtp
route_list = * 192.168.1.1
Agronom
-
Хостинг HostFood.ru
-
Хостинг HostFood.ru
Тарифы на хостинг в России, от 12 рублей:
https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.:
https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах:
https://www.host-food.ru/domains/
-
Agronom
- ст. сержант
- Сообщения: 305
- Зарегистрирован: 2006-12-11 10:30:13
Непрочитанное сообщение
Agronom » 2015-03-05 15:19:25
Приведу пример для ясности, есть основной домен domain.ru и виртуальный домен для сайта - virtdomain.ru, у которого есть только пара алиасов:
info:
pupkin@main.domain.ru
zakaz:
pupkina@main.domain.ru
Основные почтовые адреса обрабатываются на другом сервере (main.domain.ru) и для них тоже есть алиасы
Отправляется письмо на адрес
ivanov@virtdomain.ru, проходит проверка на локальный домен, потом рассматривается локальная часть - все ок и отправляется письмо на адрес ivanov@
main.domain.ru вот листинг тестовой отправки:
Код: Выделить всё
Соединение, проверка на разные правила и черные списки
...
user@mail.ru in "/etc/exim/reject.list"? no (end of list)
deny: condition test failed
processing "accept"
accept: condition test succeeded
SMTP>> 250 OK
SMTP<< RCPT TO: ivanov@virtdomain.ru
using ACL "acl_check_rcpt"
processing "accept"
check hosts = :
host in ":"? no (end of list)
accept: condition test failed
processing "deny"
check domains = +local_domains
search_open: lsearch "/etc/exim/aliases/domains.local"
search_find: file="/etc/exim/aliases/domains.local"
key="virtdomain.ru" partial=-1 affix=NULL starflags=0
LRU list:
9/etc/exim/aliases/domains.local
End
internal_search_find: file="/etc/exim/aliases/domains.local"
type=lsearch key="virtdomain.ru"
file lookup required for virtdomain.ru
in /etc/exim/aliases/domains.local
lookup yielded:
virtdomain.ru in "@:localhost:lsearch;/etc/exim/aliases/domains.local"? yes (matched "lsearch;/etc/exim/aliases/domains.local")
data from lookup saved for cache for +local_domains:
virtdomain.ru in "+local_domains"? yes (matched "+local_domains")
check local_parts = ^[.] : ^.*[@%!/|]
ivanov in "^[.] : ^.*[@%!/|]"? no (end of list)
deny: condition test failed
processing "deny"
check domains = +local_domains
cached yes match for +local_domains
cached lookup data =
virtdomain.ru in "+local_domains"? yes (matched "+local_domains" - cached)
check local_parts = match /etc/exim/rejected_to.list
ivanov in "match /etc/exim/rejected_to.list"? no (end of list)
deny: condition test failed
processing "deny"
check domains = !+local_domains
cached yes match for +local_domains
cached lookup data =
virtdomain.ru in "!+local_domains"? no (matched "!+local_domains" - cached)
deny: condition test failed
processing "deny"
check domains = +local_domains
cached yes match for +local_domains
cached lookup data =
virtdomain.ru in "+local_domains"? yes (matched "+local_domains" - cached)
check local_parts = ^.*rjnr* : /etc/exim/rejected_to.list
ivanov in "^.*rjnr* : /etc/exim/rejected_to.list"? no (end of list)
deny: condition test failed
processing "accept"
check local_parts = postmaster
ivanov in "postmaster"? no (end of list)
accept: condition test failed
processing "require"
check verify = sender
...
дальше проверка отправителя
...
sender user@mail.ru verified ok
require: condition test succeeded
processing "accept"
...
deny: condition test failed
processing "accept"
accept: condition test succeeded
SMTP>> 250 Accepted
SMTP<< DATA
SMTP>> 354 Enter message, ending with "." on a line by itself
search_tidyup called
host in ignore_fromline_hosts? no (option unset)
>>Headers received:
Subject: test
search_tidyup called
>>Headers after rewriting and local additions:
Subject: test
Data file written for message 1YT4hB-000704-2k
>>Generated Received: header line
P Received: from [194.67.23.20] (helo=mxs.mail.ru)
by domain.ru with esmtp (Exim 4.72)
(envelope-from <user@mail.ru>)
id 1YT4hB-000704-2k
for ivanov@virtdomain.ru; Wed, 04 Mar 2015 11:30:21 +0300
PDKIM <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
calling local_scan(); timeout=300
local_scan() returned 0 NULL
LOG: MAIN
<= user@mail.ru H=(mxs.mail.ru) [194.67.23.20] P=esmtp S=219
SMTP>> 250 OK id=1YT4hB-000704-2k
smtp_setup_msg entered
SMTP<< QUIT
SMTP>> 221 domain.ru closing connection
LOG: smtp_connection MAIN
SMTP connection from (mxs.mail.ru) [194.67.23.20] closed by QUIT
search_tidyup called
>>>>>>>>>>>>>>>> Exim pid=26912 terminating with rc=0 >>>>>>>>>>>>>>>>
250-domain.ru Hello mxs.mail.ru [194.67.23.20]
250-SIZE 20971520
250-PIPELINING
250 HELP
250 OK
250 Accepted
354 Enter message, ending with "." on a line by itself
250 OK id=1YT4hB-000704-2k
P.S. если отправить на адрес
lkjlkjlkj@virtdomain.ru (в локальной части абракадабра, которой нет ни в алиасах, ни в адресной книге ) то как и положено - отлуп
Agronom