Ru-Board.club
← Вернуться в раздел «В помощь системному администратору»

» FAQ по Exim MTA #2

Автор: Timka73
Дата сообщения: 02.06.2015 12:18
Помогите пожалуйста понять.
С некоторых ящиков одного домена не доходит почта на hotmail.
Например пишу письмо со своего личного ящика timka@mydomain.com на ящик timka73@hotmail.com письмо приходит, а с suppport@mydomain.com - нет.

Письмо дошло:

Код: 2015-06-02 12:09:36 1YziCV-000M7u-Uf <= timka@mydomain.com H=localhost (mail.mydomain.com) [127.0.0.1] I=[127.0.0.1]:465 P=esmtpsa X=TLSv1.2:DHE-RSA-AES256-GCM-SHA384:256 A=auth_cram_md5:timka@mydomain.com S=630 id=43ce6050a49ec8ad8d640850b3bcba71@mydomain.com from <timka@mydomain.com> for timka73@hotmail.com
2015-06-02 12:09:38 1YziCV-000M7u-Uf => timka73@hotmail.com R=dnslookup T=remote_smtp H=mx4.hotmail.com [65.55.37.88] X=TLSv1.2:ECDHE-RSA-AES256-SHA384:256 C="250 <43ce6050a49ec8ad8d640850b3bcba71@mydomain.com> Queued mail for delivery"
2015-06-02 12:09:38 1YziCV-000M7u-Uf Completed
Автор: Alukardd
Дата сообщения: 02.06.2015 12:28
Timka73
Ну если письмо они приняли, то какие могут быть вопросы по Exim'у?)
Отправьте приведённые куски лога в support hotmail'а...
Автор: vlary
Дата сообщения: 02.06.2015 12:29
Timka73
Цитата:
С некоторых ящиков одного домена не доходит почта на hotmail.
Это проблема не Exim, это проблема hotmail.
В обоих случаях письмо нормально отправлено на сервер. А уж что там с ним сделали,
положили в ящик юзеру или мусорную корзину, уже проблема адресата.
Автор: Timka73
Дата сообщения: 02.06.2015 12:43
Спасибо, буду писать им.
Автор: MAGNet
Дата сообщения: 02.06.2015 13:22

Цитата:
Косяк скорее всёже у Вас

Где?
Мои письма прекрасно доходят до их сервера, а он их не принимает по причине: invalid sender hostname
а теперь покажите мне, в каком месте тут инвалид? mail.202020.ru
может у них криво pcre настроен и они думают, что имя хоста не может начинаться с цифры или состоять из одних цифр?
я же не телепат и конфигов их не видел. потому и спросил у знающих людей, где могут быть грабли?

Добавлено:
Вот ответ!

Код: $ telnet mail.gallop.ru 25
Trying 195.170.63.130...
Connected to mail.gallop.ru.
Escape character is '^]'.
220 srv.e2-e3.ru ESMTP Exim 4.69 Tue, 02 Jun 2015 13:42:55 +0300
EHLO mail.202020.ru
250-srv.e2-e3.ru Hello mail.202020.ru [195.208.151.27]
250-SIZE 52428800
250-PIPELINING
250-AUTH PLAIN LOGIN
250-STARTTLS
250 HELP
MAIL FROM: <>
250 OK
RCPT TO: <dremowa@gallop.ru>
550 "Email blocked because of invalid sender hostname"
QUIT
221 srv.e2-e3.ru closing connection
Connection closed by foreign host.
$ telnet mail.gallop.ru 25
Trying 195.170.63.130...
telnet: Unable to connect to remote host: Connection timed out
Автор: Alukardd
Дата сообщения: 02.06.2015 14:54
MAGNet
Да, они мудаки, что не принимают письма с УВЕДОМЛЕНИЯМИ с пустым обратным адресом, НО не более того. Во всём остальном виноваты Вы. Всем письмам кроме отлупов СЛЕДУЕТ(читай ДОЛЖНЫ) иметь не пустой reverse-path.
Proof link.
Автор: MAGNet
Дата сообщения: 02.06.2015 15:22
Alukardd
стоит заметить, что он-таки принимают с пустым обратным:

Код: MAIL FROM: <>
250 OK
Автор: Alukardd
Дата сообщения: 02.06.2015 16:05
MAGNet
Смотреть надо rfc5321, оно заменило собой все предыдущие (Obsolete).
По поводу ответа только после RCPT TO — RFC. Выдержка:
Цитата:
Despite the apparent
scope of this requirement, there are circumstances in which the
acceptability of the reverse-path may not be determined until one or
more forward-paths (in RCPT commands) can be examined. In those
cases, the server MAY reasonably accept the reverse-path (with a 250
reply) and then report problems after the forward-paths are received
and examined. Normally, failures produce 550 or 553 replies.

Моё мыло в личке.

p.s. надо брать плату за чтение RFC с выражением.
Автор: vlary
Дата сообщения: 02.06.2015 16:19
MAGNet
Цитата:
Сервер отвечает 550 после RCPT! Причем здесь "Email blocked because of invalid sender hostname"?!!  
А при том. Он может заблочить по данному поводу даже после команды DATA.
У меня, к примеру, сендер блочится так же после RCPT. И причина простая.
Некоторые юзеры желают получать все, даже если это спам.
Вот на данном этапе и проверяется, кому письмо, и если не одному из данных товарищей,
то отправитель шлется лесом на основании результата предыдущих этапов.
Автор: MAGNet
Дата сообщения: 02.06.2015 16:20

Цитата:
Моё мыло в личке

отправил.
но, согласись, что таких конструкций не бывает: Email blocked because of..
Нормальный сервер ответил бы как-то так: Message was blocked because of..
Что это за Email blocked, простигосподи
Всем понятно, что это сочинял колхозный эникейщик со всеми вытекающими.

Добавлено:
vlary
вполне оправдано.
и 550 вообще допускает любые формулировки, 550-5.0.0 чаще всего это несуществующий ящик - здесь мы снова видим верх оригинальности.

хотя, мне кажется, что банить на сутки целый сервер по подозрению в спаме, например - это на грани шизофрении.
Автор: vlary
Дата сообщения: 02.06.2015 16:29
MAGNet
Цитата:
Всем понятно, что это сочинял колхозный эникейщик со всеми вытекающими.
Ну, во-первых, первый вариант короче.
Во-вторых, текст все равно никто не читает. Для сервера важен код 5хх (хх его также не заботит).
Юзерам это китайская грамота. Ну а мы привыкли, что написано может быть все что угодно.
Автор: MAGNet
Дата сообщения: 02.06.2015 16:45
vlary
посыл к тому, что гугель про подобные конструкции ответа ничего не знает, а следовательно - это плод фантазии..
..как, собственно, и всё остальное. Это значит, что в конфигах может быть вообще что угодно, вплоть до альтернативной реальности.
Есть же acl - банить хостнэймы, состоящие из одних цифр, так почему не сделать acl - банить сервера из одних цифр!
В моём случае это 202020. А почему нет? Альтернативная же реальность!
Автор: Alukardd
Дата сообщения: 02.06.2015 17:04
MAGNet
письмо получил, и в нём есть и заголовок(SMTP Header) From и SMTP команда MAIL FROM не была пустой.
Я-то расчитывал увидеть пустоту как в Вашем примере с gallop.ru...

Чего Вы хотите от gallop.ru, когда у vk.com проблемы с обратками, у toster'а тоже проблемы с обратками, благо только в IPv6 сетках. А это совсем не маленькие и IT конторы!
Автор: MAGNet
Дата сообщения: 02.06.2015 18:26
Alukardd
попробую завтра связаться с их манагерами, чтоб слили мне почту админа и напишу ему, чтоб выслал мне конфиги.
есть какая-нить команда, чтоб получить все конфиги вместе с инклудами без комментов?
или действующий конфиг, типа postconf'а в оффтопике?

..или лучше подскажите, что попросить у него, чтоб сильно его не напрячь и он не окуклился?
буду здесь выкладывать.

нфиха в exim'е не понимаю ))
Автор: Alukardd
Дата сообщения: 02.06.2015 21:31
MAGNet
Кто же Вам даст рабочий конфиг с сервера? оО
В лучшем случае с Вами начнут диалог и совместно вы сможете решить возникшую проблему.

Если это Debian, то можно просто смотреть файл /var/lib/exim4/config.autogenerated
Аналог postconf'а мне не известен.
Автор: MAGNet
Дата сообщения: 03.06.2015 05:57
vlary

Цитата:
Ну, во-первых, первый вариант короче.

Собственно, да. И Электронная почта блокировал потому-что звучит более креативно, нежели банальное Сообщение заблокировано
Alukardd

Цитата:
Кто же Вам даст рабочий конфиг с сервера?

Будем надеяться на феноменальную одаренность подопытного
Автор: AlexFeoEkb
Дата сообщения: 16.06.2015 12:13
[more] Народ, выручайте! Уже долгое время борюсь с проблемой, озвученной когда-то давно, но оставшаяся без ответа:

_______
Есть следующая проблема.
При запущенном dovecot 1.1.1 с protocols = imap
и при активной сессии imap
при получении письма в логи exim 4.69 вываливается:
2008-07-16 19:30:41 1KJ8xl-0003S4-4I == support@domen.ru R=dovecot_user T=dovecot_delivery defer (2): No such file or directory: while renaming /var/mail/exim/support@domen.ru/new//temp.13274.mail.domen.ru as /var/mail/exim/support@domen.ru/new//q1KJ8xl-143741
dovecot успевает раньше exim обработать файл и перекинуть в папку cur.
exim сходит с ума, шлёт обратно уведомления о недоставке, несколько раз доставляет одно письмо.
Как бороться?
_______

В моем случае практически один-в-один с той лишь разницей, что нет уведомления о недоставке и данное сообщение в логах появляется в крайней степени выборочно. Для примера:
- У одного из пользователей на каждое письмо это сообщение и, как следствие, повтор доставки до тех пор, пока не удалишь письмо из очереди.
- У другого все отлично месяц, затем та же беда в течении 3-4 дней. После чего опять все доставляется прекрасно без каких-либо отклонений.
Проблема касается как старых пользователей, так и новых.
Гугл результатов не дал (либо все же не корректно формулировал запрос). Конфигурация почтового сервера не менялась. Посоветуйте хотя бы в какую сторону копать? [/more]
Автор: Alukardd
Дата сообщения: 16.06.2015 12:59
AlexFeoEkb
Ну начать стоит хотя бы с того что бы Вы показали нам код транспорта dovecot_delivery и роутера dovecot_user.
Автор: AlexFeoEkb
Дата сообщения: 16.06.2015 14:15
[more] Есть еще такой момент - пользователи берутся из AD на Win2k8 + dovecot.passwd.
dovecot_user - отсутствует.
Есть:
virtual_users:
driver = accept
condition = ${lookup{$local_part}lsearch{/etc/dovecot.passwd}}
transport = dovecot_virtual_delivery
cannot_route_message = Unknown user

ldap_check:
driver = accept
domains = +local_domains
verify_recipient
condition = ${lookup ldapm{user=LDAP_AD_BINDDN pass=LDAP_AD_PASS ldap:///dc=my,dc=domain,dc=ru?sAMAccountName?sub?(&(mail=${local_part}@${domain}))}{$value}}
transport = ldap_delivery
cannot_route_message = Unknown user

и собсно транспорт:
dovecot_delivery:
driver = pipe
command = /usr/libexec/dovecot/deliver
message_prefix =
message_suffix =
log_output
delivery_date_add
envelope_to_add
return_path_add

ldap_delivery:
driver = appendfile
directory = /home/vmail/${lookup ldapm{user=LDAP_AD_BINDDN pass=LDAP_AD_PASS ldap:///dc=my,dc=domain,dc=ru?sAMAccountName?sub?(&(mail=${local_part}@${domain}))}{$value}}/Maildir/new
user = vmail
group = vmail
delivery_date_add
envelope_to_add
return_path_add [/more]
Автор: Alukardd
Дата сообщения: 16.06.2015 16:26
AlexFeoEkb
Ни один из приведенных роутеров не вызывает транспорт dovecot_delivery. Покажите код роутера и транспорта, который фигурирует в ВАШЕЙ ошибке. аналогично тому что вы представили выше — 1KJ8xl-0003S4-4I == support@domen.ru R=dovecot_user T=dovecot_delivery

Возможно, что нас интересует транспорт dovecot_virtual_delivery.
Автор: AlexFeoEkb
Дата сообщения: 17.06.2015 07:51
Да, уже будучи далеко от компа понял, что не то отправил, пардон

dovecot_virtual_delivery:
driver = pipe
command = /usr/libexec/dovecot/deliver -d $local_part -f $sender_address
message_prefix =
message_suffix =
log_output
delivery_date_add
envelope_to_add
return_path_add
user = vmail

Добавлено:
Стоп! Что-то я как-то пропустил, что у меня ошибка аналогична, но по другому транспорту.
Итак, сначала вылетает ошибка:
...R=ldap_check T=ldap_delivery defer (2): No such file or directory: while renaming /home/vmail/...

После чего письмо зависает в очереди, пока его не удалишь, а в логах:
...R=ldap_check T=ldap_delivery defer (-52): Retry time not yet reached


Автор: Alukardd
Дата сообщения: 17.06.2015 10:42
AlexFeoEkb
Ну судя по тем огрызкам что я вижу в 3-х Ваших сообщениях (нормальные люди приводят полностью текст ошибки и кусок конфига в котором она возникает), похоже что у Вас не выполняется ldap lookup. Хотя это пальцем в небо.

Давайте Вы соберёте всю свою аккуратность и вдумчиво опишите что конкретно у ВАС происходит и как выглядят все куски конфигов exim'а и мб чего ещё. В общем всё ПО, которое "трогает" письмо по пути от сети и до хранилища писем.
Автор: AlexFeoEkb
Дата сообщения: 17.06.2015 12:25
[more] Чтож, попробую быть нормальным, хоть и не думаю, что дата\время ошибки сильно на что-то влияет...
Первая ошибка:
2015-06-15 09:54:47 1Z4MQ3-000501-Q8 == mahneva@domain.ru R=ldap_check T=ldap_delivery defer (2): No such file or directory: while renaming /home/vmail/mahneva/Maildir/new/temp.19236.mail.domain.ru as /home/vmail/mahneva/Maildir/new/q1Z4MQ3-8912934

При этом письмо до ходит до адресата, но висит в очереди эксима, как не доставленное.
Далее в логах:
2015-06-15 10:22:29 1Z4MQ3-000501-Q8 == mahneva@domain.ru R=ldap_check T=ldap_delivery defer (-52): Retry time not yet reached
И потом опять:
1Z4MQ3-000501-Q8 == mahneva@domain.ru R=ldap_check T=ldap_delivery defer (2): No such file or directory: while renaming /home/vmail/mahneva/Maildir/new/temp.20462.mail.domain.ru as /home/vmail/mahneva/Maildir/new/q1Z4Mv6-557815
Повторная доставка того же письма. И так до тех пор, пока не удалишь его из очереди.

[more=exim.conf]ldap_default_servers = ads.account.domain.ru
LDAP_AD_BINDDN = "cn=usr,cn=users,dc=account,dc=domain,dc=ru"
LDAP_AD_PASS = pswd
LDAP_AD_BASE_DN = "dc=account,dc=domain,dc=ru"
LDAP_AD_MAIL_RCPT = user=LDAP_AD_BINDDN passLDAP_AD_PASS \
ldap://dc=account,dc=domain,dc=ru(&(objectClass=person)(mail=${quote_ldap:${local_part}@${domain}}))

#######################################################
# MAIN CONFIGURATION SETTINGS #
######################################################

primary_hostname = mail.domain.ru

domainlist local_domains = @ : localhost : localhost.localdomain : domain.ru
domainlist relay_to_domains =
hostlist relay_from_hosts = 127.0.0.1 : localhost

acl_smtp_rcpt = acl_check_rcpt
acl_smtp_data = acl_check_data
acl_smtp_mime = acl_check_mime

daemon_smtp_ports = 25 : 465 : 587
tls_on_connect_ports = 465

qualify_domain = domain.ru

qualify_recipient = mail.domain.ru

allow_domain_literals = false

never_users = root

rfc1413_query_timeout = 5s

ignore_bounce_errors_after = 45m

timeout_frozen_after = 3d

auth_advertise_hosts = *
helo_accept_junk_hosts = 192.168.12.0/24

auto_thaw = 15m
message_size_limit = 40M
helo_allow_chars = _

smtp_enforce_sync = true
syslog_timestamp = no
split_spool_directory = true
remote_max_parallel = 15
smtp_accept_max = 60

system_filter = /etc/exim/forward.conf


##################################################
# ACL CONFIGURATION #
# Specifies access control lists for incoming SMTP mail #
#####################################################

begin acl

acl_check_rcpt:

accept hosts = :

deny message = Restricted characters in address
domains = +local_domains
local_parts = ^[.] : ^.*[@%!/|]

deny message = Restricted characters in address
domains = !+local_domains
local_parts = ^[./|] : ^.*[@%!] : ^.*/\\.\\./


require verify = sender

deny senders = /etc/exim/deny_senders
message = "You don't access to send email."

deny senders = /etc/exim/local_senders
domains = !+local_domains
message = "You allow to send email only to local_domain."

accept hosts = +relay_from_hosts
control = submission

accept authenticated = *
control = submission


require message = relay not permitted
domains = +local_domains

##########################################################################
accept condition = ${lookup{$sender_host_address}iplsearch{/etc/exim/friendly_hosts_ip}{yes}{no}}
domains = +local_domains
accept condition = ${lookup{$sender_host_name}wildlsearch{/etc/exim/whitelist_sender_hosts}{yes}{no}}
domains = +local_domains
accept condition = ${lookup{$sender_address}wildlsearch{/etc/exim/whitelist_senders}{yes}{no}}
domains = +local_domains
##########################################################################

drop message = Bad HELO: I am the localhost!
condition = ${if eq{localhost}{$sender_helo_name}}

drop message = Bad HELO: Host impersonating [$sender_helo_name]
condition = ${if match{$sender_helo_name}{$primary_hostname}{yes}{no}}

drop message = Bad HELO: Host impersonating [$sender_helo_name]
condition = ${if match_domain{$sender_helo_name}{+local_domains}{true}{false}}

drop message = Bad HELO: empty. Required by RFC.
condition = ${if eq {$sender_helo_name}{}{yes}{no}}

drop condition = ${if eq{$sender_helo_name}{$interface_address}{yes}{no}}
message = "550 - Main IP in your HELO! Access denied! Email for contact to us: administrator@domain.ru."

drop condition = ${if match{$sender_helo_name}{\N^\d+$\N}{yes}{no}}
message = "550 - Can not be only number in HELO! Email for contact to us: administrator@domain.ru."

drop message = "550 - Your helo is bad (adsl,pool,ppp & etc). Email for contact to us: administrator@domain.ru."
condition = ${if match{$sender_helo_name} \
{astral|bbtec|broadband|cable|chello|client|cable|comcast|dsl|dslam|dial|dialin|dynamic|dynip|home|host-|hsd|hlfx|kabel|node|pool|peer|ppp|ipconnect|res|static|dhcp}{yes}{no}}

deny message = "550 - Access denied - pleace, contact with postmaster!"
condition = ${if match{$sender_helo_name}{\N((?>\w+[\-]){3,})\N}{yes}{no}}
##########################################################################

warn condition = ${if eq{$sender_address}{}{yes}{no}}
message = "550 - You HELO is empty! Access denied!"

deny message = "550 - Broken Reverse DNS: no host name for sender IP address $sender_host_address."
!verify = reverse_host_lookup

deny message = "550 - Access denied - pleace, contact with postmaster!"
condition = ${if match{$sender_host_name}{\N((?>\w+[\-]){3,})\N}{yes}{no}}

deny message = "550 - Access denied - pleace, contact with postmaster! Email for contact to us: administrator@domain.ru."
condition = ${if match{$sender_host_name}{\N((?>\w+[\.|\-]){5,})\N}{yes}{no}}

deny message = "550 - Your hostname is bad (adsl,pool,ppp & etc). Email for contact to us: administrator@domain.ru."
condition = ${if match{$sender_host_name} \
{astral|bbtec|broadband|cable|chello|client|cable|comcast|dsl|dslam|dial|dialin|dyn|dynamic|dynip|home|host-|hsd|hlfx|kabel|node|pool|peer|ppp|ipconnect|res|static|dhcp}{yes}{no}}

deny message = "550 - sender IP address $sender_host_address is locally blacklisted here. Email for contact to us: administrator@domain.ru."
hosts = net-iplsearch;/etc/exim/blacklist_ip

deny message = "550 - sender domain address $sender_host_address is locally blacklisted here. Email for contact to us: administrator@domain.ru."
hosts = wildlsearch;/etc/exim/blacklist_domains

deny message = "Sender rate SMTP overlimit - $sender_rate / $sender_rate_period. Email for contact to us: administrator@domain.ru."
ratelimit = 100 / 1h / strict

warn
hosts = +relay_from_hosts
hosts = net-lsearch;/etc/exim/friendly_hosts_ip
hosts = wildlsearch;/etc/exim/whitelist_sender_hosts
senders = wildlsearch;/etc/exim/whitelist_senders
set acl_m0 = 0s

require verify = recipient

# At this point, the address has passed all the checks that have been
# configured, so we accept it unconditionally.

accept


# This ACL is used after the contents of a message have been received. This
# is the ACL in which you can test a message's headers or body, and in
# particular, this is where you can invoke external virus or spam scanners.
# Some suggested ways of configuring these tests are shown below, commented
# out. Without any tests, this ACL accepts all messages. If you want to use
# such tests, you must ensure that Exim is compiled with the content-scanning
# extension (WITH_CONTENT_SCAN=yes in Local/Makefile).

acl_check_data:

accept


acl_check_mime:

# File extension filtering.
deny message = Blacklisted file extension detected
condition = ${if match \
{${lc:$mime_filename}} \
{\N(\.exe|\.pif|\.bat|\.scr|\.lnk|\.com)$\N} \
{1}{0}}

accept


#####################################################
# ROUTERS CONFIGURATION #
# Specifies how addresses are handled #
##################################################

begin 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}}
file_transport = address_file
pipe_transport = address_pipe


userforward:
driver = redirect
check_local_user
file = $home/.forward
allow_filter
no_verify
no_expn
check_ancestor
file_transport = address_file
pipe_transport = address_pipe
reply_transport = address_reply

virtualuserforward:
driver = redirect
condition = ${lookup{$local_part}lsearch{/etc/dovecot.passwd}}
file = /etc/exim/forward/$local_part
no_verify
no_expn
check_ancestor
file_transport = address_file
pipe_transport = address_pipe
reply_transport = address_reply

procmail:
driver = accept
check_local_user
require_files = ${local_part}:+${home}/.procmailrc:/usr/bin/procmail
transport = procmail
no_verify

virtual_users:
driver = accept
condition = ${lookup{$local_part}lsearch{/etc/dovecot.passwd}}
transport = dovecot_virtual_delivery
cannot_route_message = Unknown user


ldap_check:
driver = accept
domains = +local_domains
verify_recipient
condition = ${lookup ldapm{user=LDAP_AD_BINDDN pass=LDAP_AD_PASS ldap:///dc=account,dc=domain,dc=ru?sAMAccountName?sub?(&(mail=${local_part}@${domain}))}{$value}}
transport = ldap_delivery
cannot_route_message = Unknown user

######################################################################
# TRANSPORTS CONFIGURATION #
######################################################################

begin transports

remote_smtp:
driver = smtp

procmail:
driver = pipe
command = "/usr/bin/procmail -d $local_part"
return_path_add
delivery_date_add
envelope_to_add
user = $local_part
initgroups
return_output


local_delivery:
driver = appendfile
maildir_format
create_directory
directory = /var/spool/mail/$domain/$local_part
quota = 60M
maildir_tag = ,S=$message_size
quota_size_regex = ,S=(\d+)
delivery_date_add
envelope_to_add
return_path_add
group = mail
directory_mode = 770
mode = 0660

dovecot_delivery:
driver = pipe
command = /usr/libexec/dovecot/deliver
message_prefix =
message_suffix =
log_output
delivery_date_add
envelope_to_add
return_path_add
##group = dovecot
##user = dovecot

dovecot_virtual_delivery:
driver = pipe
command = /usr/libexec/dovecot/deliver -d $local_part -f $sender_address
message_prefix =
message_suffix =
log_output
delivery_date_add
envelope_to_add
return_path_add
user = vmail

ldap_delivery:
driver = appendfile
directory = /home/vmail/${lookup ldapm{user=LDAP_AD_BINDDN pass=LDAP_AD_PASS ldap:///dc=account,dc=domain,dc=ru?sAMAccountName?sub?(&(mail=${local_part}@${domain}))}{$value}}/Maildir/new
user = vmail
group = vmail
delivery_date_add
envelope_to_add
return_path_add

address_pipe:
driver = pipe
return_output

address_file:
driver = appendfile
delivery_date_add
envelope_to_add
return_path_add

address_reply:
driver = autoreply

###################################################
# RETRY CONFIGURATION #
###################################################

begin retry

* * F,2h,15m; G,16h,1h,1.5; F,4d,6h

#########################################################
# AUTHENTICATION CONFIGURATION #
#########################################################

begin authenticators

dovecot_plain:
driver = dovecot
public_name = PLAIN
server_socket = /var/run/dovecot/auth-client
server_set_id = $auth1

dovecot_login:
driver = dovecot
public_name = LOGIN
server_socket = /var/run/dovecot/auth-client
server_set_id = $auth1

# End of Exim configuration file[/more]

[more=dovecot.conf]## Dovecot configuration file

protocols = imap imaps pop3 pop3s

disable_plaintext_auth = no

shutdown_clients = yes

##
## Logging
##

log_path =/var/log/dovecot.log

log_timestamp = "%b %d %H:%M:%S "

syslog_facility = mail

##
## SSL settings
##

ssl_disable = no

ssl_cert_file = /etc/pki/dovecot/certs/srv.crt
ssl_key_file = /etc/pki/dovecot/certs/srv.key

login_dir = /var/run/dovecot/login

login_process_size = 64

login_process_per_connection = yes

login_processes_count = 3

login_max_processes_count = 128

login_max_connections = 256

login_greeting = Dovecot ready.

login_log_format = %d: %n

##
## Mailbox locations and namespaces
##

mail_location = maildir:~/Maildir

##
## Mail processes
##

verbose_proctitle = no

first_valid_uid = 500

first_valid_gid = 5

##
## POP3 specific settings
##

protocol pop3 {
pop3_uidl_format = %08Xu%08Xv

}

##
## LDA specific settings
##

protocol lda {
postmaster_address = postmaster@domain.ru

auth_socket_path = /var/run/dovecot/auth-master
}

##
## Authentication processes
##

auth default {
mechanisms = plain login

passdb passwd-file {
args = /etc/dovecot.passwd
}


# LDAP database <doc/wiki/AuthDatabase.LDAP.txt>
passdb ldap {
args = /etc/dovecot-ldap.conf.ext
}

# static settings generated from template <doc/wiki/UserDatabase.Static.txt>
userdb static {
args = uid=vmail gid=vmail home=/home/vmail/%u allow_all_users=yes
}

# LDAP database <doc/wiki/AuthDatabase.LDAP.txt>
userdb ldap {
# Path for LDAP configuration file, see doc/dovecot-ldap-example.conf
args = /etc/dovecot-ldap.conf.ext
}

socket listen {
master {
path = /var/run/dovecot/auth-master
mode = 0666
user = usr
group = grp
}
client {
path = /var/run/dovecot/auth-client
mode = 0666
user=usr
group=grp
}
}
}[/more]


[more=dovecot-ldap.conf.ext]hosts = ads.account.domain.ru:3268

dn = cn=user, cn=users, dc=account, dc=domain, dc=ru

dnpass = passwd

auth_bind = yes

ldap_version = 3

base = dc=account, dc=domain, dc=ru

user_filter = (&(objectClass=person)(sAMAccountName=%u)(UserAccountControl=66048)(mail=*))
pass_filter = (&(ObjectClass=person)(sAMAccountName=%u)(UserAccountControl=66048))[/more] [/more]
Автор: Alukardd
Дата сообщения: 17.06.2015 21:35
AlexFeoEkb
Ух, все конфиги...
Не смотря на то что письмо доставляется мне кажется, что вы используете формат maildir, в таком случае я считаю нужным присутствие следующих строк в описании транспорта ldap_delivery:
- delivery_date_add
- maildir_format

Конфиги dovecot'а даже не смотрел...

Есть резонное предположение, что ситуация эта возникает когда один и тот же получатель указан дважды, например в разных регистрах и exim это прошляплевает, в том числе потому что запрос в LDAP регистронезависимый.
Проверить получателей можете в исходниках того письма, которое всё же доставилось.
Эмулировать ситуацию для проверки моей теории тоже крайне просто.
Автор: AlexFeoEkb
Дата сообщения: 18.06.2015 06:54
Alukardd
delivery_date_add уже присутствует. maildir_format добавил, помониторю на предмет изменений.
И тем не менее предположение не верно. Во всех проверенных письмах адресаты в единственном числе и всегда в нижнем регистре.
Письма доставляются всегда. Разница лишь в том, что у одних пользователей никаких проблем нет, у других - время от времени появляются дубликаты, у третьих - дублируются абсолютно все письма. Настройки у всех идентичны. И на эти дублирования абсолютно не влияет - старый пользователь или вновь заведенный.
Автор: Alukardd
Дата сообщения: 18.06.2015 10:35
AlexFeoEkb
Упс, не то скопировал) Я хотел сказать, не delivery_date_add, а create_directory

Вы попробовали сами отправить письмо с двумя адресатами?
Автор: AlexFeoEkb
Дата сообщения: 18.06.2015 12:01
Alukardd
Я так и понял пришлось исправлять косяк, который вылез из-за этой строчки в папках пользователей...

Цитата:
Вы попробовали сами отправить письмо с двумя адресатами?

Да, отправил. Да, письмо зависло в очереди и ошибка в логах. Но все же остается непонятным, почему такая же ситуация с письмами, у которых только один адресат и он указан верно....

Правильно ли я понимаю, что опция create_directory создаст дополнительную директорию? Т.е., если в адресатах будет указан alexfeo@domain.ru и Alexfeo@domain.ru, то помимо уже имеющейся директории alexfeo, создастся и Akexfeo?
Автор: Alukardd
Дата сообщения: 18.06.2015 12:10
AlexFeoEkb
Нет не создаться, у вас же имя директории строиться так же на основе ldap запроса.

Как это может образоваться при одном адресате я не знаю.
Если два дублирующихся адресата гарантировано вызывают проблему, то дальнейшие чудеса Вам стоит отлавливать на основе анализа всей имеющейся у Вас информации, в т.ч. тел писем и кучи логов за различное время.
Автор: AlexFeoEkb
Дата сообщения: 18.06.2015 12:26
Alukardd
Чтож, буду копать дальше. Спасибо за уделенное время.
Автор: Smito1
Дата сообщения: 23.09.2015 18:37
День добрый, с exim так получилось что не работал, а зря, но начинать с чего то нужно, суть вопроса в чём, нужно добавить ещё один домен.
стоит связка exim на freebsd + exchange 2010, всё это дело настроено на 4 домена, т.е. user@d1.com user@d2.com и т.д., и если отправить с внешней почты на user@d4.com письмо придёт даже если у него в exchange по умолчанию user@d1.com (видимо это называется ldap для согласования с ad если я правильно понял)
почитав мануалы, я нашёл только один пункт где нужно вписать новый домен
в 100.main.conf
# Делаем список локальных доменов. Далее этот
# список будет фигурировать в виде +local_domains
# В данном случае домены выбираются из БД MySQL. Также
# можно их просто перечислить через двоеточие. Есть интересная
# возможность, можно указать юзер@[хост] - lissyara@[222.222.4.5]
domainlist local_domains = тут мои 4 домена

И тут у меня назрели вопросы.
1) Достаточно ли тут прописать новый 5 домен + создать его в exchange для работы?
2)
# макросы для работы с LDAP
LDAP_AD_BINDDN = mail@domen.com
LDAP_AD_PASS = password
LDAP_AD_BASE_DN = DC=domen,DC=com
Посылая запросы в ad как он проверяет данные? Где они прописаны в AD, не по логину же и паролю админа, не понимаю
3)в статье указанно про sql, может ли exim работать без него? у себя что то я не нашёл
Заранее огромное спасибо

Страницы: 123456789101112131415161718192021

Предыдущая тема: Посоветуйте девайс для орг-ии VPN


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.