The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"Проблема с релеем почты Exim+Dovecot"
Вариант для распечатки  
Пред. тема | След. тема 
Форумы OpenNET: Виртуальная конференция (Public)
Изначальное сообщение [ Отслеживать ]

"Проблема с релеем почты Exim+Dovecot"  +/
Сообщение от superles (??) on 11-Авг-09, 20:28 
Есть сервер с FreeBSd 7.2 + Exim 4.69 + Dovecot 1.21 Почта из офиса ходит отлично , всё работает , получают отправляют, из вне получается только принимать , а когда отправляют , оно отправляется но потом получаю письмецо примерно такого содержания :

This message was created automatically by mail delivery software.

A message that you sent could not be delivered to one or more of its
recipients. This is a permanent error. The following address(es) failed:

  save to /home/superles/.spamassassin/spam
    generated by admin@master.dp.ua
    retry timeout exceeded

------ This is a copy of the message, including all the headers. ------

Return-path: <admin@mydomain.ua>
Received: from mail by s8.x-host.net.ua with spam-scanned (Exim 4.62)
    (envelope-from <admin@mydomain.ua>)
    id 1MatY6-000Axk-5Q
    for admin@master.dp.ua; Tue, 11 Aug 2009 18:46:10 +0300
Received: from localhost by s8.x-host.net.ua
    with SpamAssassin (version 3.2.4);
    Tue, 11 Aug 2009 18:46:10 +0300
From: "123" <admin@mydomain.ua>
To: <admin@master.dp.ua>
Subject: 123
Date: Tue, 11 Aug 2009 18:43:42 +0300
Message-Id: <7B1804F3E016444CADEB79A710434FE1@aratta.local>
X-Spam-Flag: YES
X-Spam-Checker-Version: SpamAssassin 3.2.4 (2008-01-01) on s8.x-host.net.ua
X-Spam-Level: *******
X-Spam-Status: Yes, score=7.1 required=5.0 tests=FORGED_MUA_OUTLOOK,
    STOX_REPLY_TYPE,TVD_SPACE_RATIO autolearn=no version=3.2.4
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="----------=_4A819242.700D6488"

This is a multi-part message in MIME format.

------------=_4A819242.700D6488
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: inline
Content-Transfer-Encoding: 8bit

Spam detection software, running on the system "s8.x-host.net.ua", has
identified this incoming email as possible spam.  The original message
has been attached to this so you can view it (if it isn't spam) or label
similar future email.  If you have any questions, see
the administrator of that system for details.

Content preview:  [...]

Content analysis details:   (7.1 points, 5.0 required)

pts rule name              description
---- ---------------------- --------------------------------------------------
0.0 STOX_REPLY_TYPE        STOX_REPLY_TYPE
2.9 TVD_SPACE_RATIO        BODY: TVD_SPACE_RATIO
4.2 FORGED_MUA_OUTLOOK     Forged mail pretending to be from MS Outlook

------------=_4A819242.700D6488
Content-Type: message/rfc822; x-spam-type=original
Content-Description: original message before SpamAssassin
Content-Disposition: inline
Content-Transfer-Encoding: 8bit

Received: from mail1.alkar.net ([195.248.191.96] helo=mail.alkar.net)
    by s8.x-host.net.ua with esmtp (Exim 4.62)
    (envelope-from <admin@mydomain.ua>)
    id 1MatY6-000Axh-3m
    for admin@master.dp.ua; Tue, 11 Aug 2009 18:46:06 +0300
Received: from [213.114.197.194] (HELO mydomain.ua)
  by mail.alkar.net (CommuniGate Pro SMTP 5.2.13)
  with ESMTPS id 2048278134 for admin@master.dp.ua; Tue, 11 Aug 2009 18:45:52 +0300
Received: from [213.227.228.115] (helo=server)
    by mydomain.ua with esmtpa (Exim 4.69 (FreeBSD))
    (envelope-from <admin@mydomain.ua>)
    id 1MatZZ-0004Ny-D4
    for admin@master.dp.ua; Tue, 11 Aug 2009 18:47:37 +0300
Message-ID: <7B1804F3E016444CADEB79A710434FE1@aratta.local>
From: "123" <admin@mydomain.ua>
To: <admin@master.dp.ua>
Subject: 123
Date: Tue, 11 Aug 2009 18:43:42 +0300
MIME-Version: 1.0
Content-Type: text/plain;
    format=flowed;
    charset="koi8-r";
    reply-type=original
Content-Transfer-Encoding: 7bit
X-Priority: 3
X-MSMail-Priority: Normal
X-Mailer: Microsoft Outlook Express 6.00.3790.3959
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.3790.3959

------------=_4A819242.700D6488--

Отправляю изнутри всё ок уходит приходит моментально . Подскажите хоть где копать???

Высказать мнение | Ответить | Правка | Cообщить модератору

 Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "Проблема с релеем почты Exim+Dovecot"  +/
Сообщение от бусик on 11-Авг-09, 20:35 
>[оверквотинг удален]
>X-MSMail-Priority: Normal
>X-Mailer: Microsoft Outlook Express 6.00.3790.3959
>X-MimeOLE: Produced By Microsoft MimeOLE V6.00.3790.3959
>
>
>
>------------=_4A819242.700D6488--
>
>Отправляю изнутри всё ок уходит приходит моментально . Подскажите хоть где копать???
>

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

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

2. "Проблема с релеем почты Exim+Dovecot"  +/
Сообщение от superles (??) on 11-Авг-09, 20:42 
>Вы настолько неправильно задали вопрос, что даже не понятно, где у Вас
>основная проблема) кто куда откуда отправляет и кто куда где получает?
>Ваш сервер не принимает или не доставляется удаленному ?

Прошу прощения. Наш сервер отправляет и принимает. Только если мы делаем это из локальной сети то всё нормально , а если мы это делаем из вне(пересылаем с авторизацией по паролю) то получаем такое сообщение из которого следует , что spam assasin нас считает спамом. Хотя я ломаю голову и немогу понять , почему при отправке из локальной сети мы НЕ СПАМ , а из вне мы СПАМ. Гуру , подскажите что меняется.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

3. "Проблема с релеем почты Exim+Dovecot"  +/
Сообщение от бусик on 11-Авг-09, 20:48 
>[оверквотинг удален]
>>основная проблема) кто куда откуда отправляет и кто куда где получает?
>>Ваш сервер не принимает или не доставляется удаленному ?
>
>Прошу прощения. Наш сервер отправляет и принимает. Только если мы делаем это
>из локальной сети то всё нормально , а если мы это
>делаем из вне(пересылаем с авторизацией по паролю) то получаем такое сообщение
>из которого следует , что spam assasin нас считает спамом. Хотя
>я ломаю голову и немогу понять , почему при отправке из
>локальной сети мы НЕ СПАМ , а из вне мы СПАМ.
>Гуру , подскажите что меняется.

ну, без конфигов тут не разобраться.

используете ли sa-exim и как прикручен spamassassin, если нет?

в общем, давайте конфиги, будем посмотреть :)

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

4. "Проблема с релеем почты Exim+Dovecot"  +/
Сообщение от superles (??) on 11-Авг-09, 20:57 
#!/bin/sh
# Файл конфигурации: /usr/local/etc/exim/configure

# Имя хоста. Используется в EHLO.
# Фигурирует в других пунктах, если они не
заданы -
# типа qualify_domain и прочих..
# Если тут ничё не установлено (строка
закомметрована)
# то используется то, что вернёт функция
uname()
primary_hostname = mydomain.ua

# Вводим данные для подключения к MySQL
серверу.
# словечко `hide`, вначале, означает, что при
# вызове проверки конфига командой
# exim -bV config_file эти данные не будут
отображаться.
# Если без него - то будут показаны...
Формат записи:
# хост/имя_бд/пользователь/пароль
hide mysql_servers = localhost/exim/root/gfhjkm123

# Делаем список локальных доменов. Далее
этот
# список будет фигурировать в виде
+local_domains
# В данном случае домены выбираются из БД
MySQL. Также
# можно их просто перечислить через
двоеточие. Есть интересная
# возможность, можно указать юзер@[хост] -
lissyara@[222.222.4.5]
domainlist local_domains = ${lookup mysql{SELECT `domain` \
                            FROM `domain` WHERE \
                            `domain`='${domain}' AND \
                            `active`='1'}}

# делаем список доменов с которых
разрешены релеи.
# Далее этот список будет в виде +relay_to_domains
# Можно использовать символы
подстановки, типа:
# .... = *.my.domen.su : !spam.my.domen.su : first.su
# тогда пропускается всё, что похоже на
*.my.domen.su, но
# от spam.my.domen.su релеится почта не будет.
domainlist relay_to_domains = ${lookup mysql{SELECT `domain` \
                            FROM `domain` WHERE \
                            `domain`='${domain}' AND \
                            `active`='1'}}

# Составляем список хостов с которых
разрешён неавторизованый
# релей. Обычно в нём находятся локальные
сети, и локалхост...
# ЛокалХост в двух видах был внесён
сознательно - пару раз
# сталкивался с кривым файлом /etc/hosts -
результатом было
# непонимание `localhost` но пониманием 127.0.0.1/8
hostlist   relay_from_hosts = localhost:127.0.0.0/8:10.0.15.0/24

# Вводим названия acl`ов для проверки
почты. (В общем-то, это
# необязательно, если вы делаете открытый
релей, или хотите
# принимать вообще всю почту с любого
хоста для любых
# получателей... Тока потом не жалуйтесь
что у Вас спам
# и провайдер выкатывает немеряный счёт
:))
acl_smtp_rcpt = acl_check_rcpt
#acl_smtp_data = acl_check_data

# Прикручиваем антивирус - при условии,
что exim собран
# с его поддержкой. В качестве антивиря
юзаем ClamAV,
# ибо - ПО должно быть свободным! :)
# Итак, указываем местоположение сокета
clamd.
#av_scanner = clamd:/var/run/clamav/clamd

# Адрес куда слать на проверку спама
(SpamAssasin), но я
# это не юзаю. Не так много у меня спама...
# spamd_address = 127.0.0.1 783

# Имя домена добавляемое для локальных
отправителей (реальных
# юзеров системы) т.е. почта отправляемая
от root, будет от
# root@домен_указанный_здесь. Если пункт
незадан, то используется
# имя хоста из `primary_hostname`. Логичней было бы
написать здесь
# lissyara.su, но мне удобней иначе:
qualify_domain = mydomain.ua

# Имя хоста для ситуации, обратной
предыдущей, - это имя домена
# добавляемое к почте для системных
юзеров, ну и вообще для почты
# пришедшей на адрес типа `root`, `lissyara`, & etc...
Если этот
# пункт незадан то используется значение
полученное из
# предыдущего пункта - `qualify_domain`
qualify_recipient = mydomain.ua

# А это как раз кусок вышеописанного
анахронизма - про почту в
# виде user@[222.222.222.222] - принимать её или нет.
По дефолту
# (когда строка закомментирована)
значение - false. Если захотите
# поставить true то надо будет добавить в
список доменов
# комбинацию @[] - она означает `все
локальные адреса`
allow_domain_literals = false

# Пользователь от которого работает exim
exim_user = mailnull

# группа в кторой работает exim
exim_group = mail

# запрещаем работу доставки под юзером root
- в целях безопасности
never_users = root

# Тоже анахронизм (на самом деле, не такой
уж анахронизм, но все давно
# забили на ident и закрыли файрволлом
tcp:113...) Это проверка - Ваш
# хост спрашивает у удалённого, с
которого было подключение, а кто
# собстно ко мне подключился на такой-то
порт? Если на удалённом хосте
# работает identd - он может ответить (а может
и не ответить - как
# настроить), скажет UID пользователя от
которого установлено
# соединение, тип ОС, и имя пользователя.
Теперь, понимаете, почему
# у всех оно зарублено и файрволлами
позакрыто? :) Это же палево :)
# Тока на мой взгляд, если на сервере всё
настроено правильно -
# то вовсе это и не страшно.
# Короче - если хостс поставить * то будет
проверять все. Таймаут -
# если поставить 0 то не будет ждать
ответа ни от кого. По
# вышеописанным причинам - отключаем
#rfc1413_hosts = *
rfc1413_query_timeout = 0s

# Если сообщение было недоставлено, то
генерится соощение
# об ошибке. Если сообщение об ошибке не
удалось доставить
# то оно замораживается на указанный в
этом пункте срок,
# после чего снова попытка доставить его.
При очередной
# неудаче - сообщение удаляется.
ignore_bounce_errors_after = 45m

# Замороженные сообщения, находящиеся в
очереди, дольше
# указанного времени удаляются и
генерится сообщение
# об ошибке (при условии, что это не было
недоставленное
# сообщение об ошибке :))
timeout_frozen_after = 15d

# собсно на этом штатный конфиг кончился,
но
# меня-то это не устраивает... Поэтому
пошли пункты,
# почёрпнутые из других источников.

# список адресов, через запятую, на
которые засылаются
# сообщения о замороженных сообщениях (о
замороженых
# уведомлениях о заморозке, сообщения не
генерятся. - я
# надеюсь эта строка понятна :))
freeze_tell = admin@mydomain.ua

# Список хостов, почта от которых
принимается, несмотря
# на ошибки в HELO/EHLO
helo_accept_junk_hosts = 10.0.15.0/24

# Через какое время повторять попытку
доставки
# замороженного сообщения
auto_thaw = 1h

# Приветствие сервера
smtp_banner = "$primary_hostname, ESMTP EXIM $version_number"

# Максимальное число одновременных
подключений по
# SMTP. Рассчитывать надо исходя из
нагрузки на сервер
smtp_accept_max = 50

# максимальное число сообщений
принимаемое за одно соединение
# от удалённого сервера (или
пользователя). C числом 25
# я имел проблемы тока один раз - когда у
меня три дня лежал
# инет и после его подъёма попёрли
мессаги. Но у меня не так
# много почты - всего 30 пользователей.
smtp_accept_max_per_connection = 25

# чё-то про логи и борьбу с флудом - я так
понимаю -
# максимальное число сообщений
записываемых в логи
smtp_connect_backlog = 30

# максимальное число коннектов с одного
хоста
smtp_accept_max_per_host = 20

# Ход ладьёй - для увеличения
производительности,
# директория `spool` внутри, разбивается на
# директории - это ускоряет обработку
split_spool_directory = true

# Если у сообщения много адресатов на
удалённых хостах,
# то запускатеся до указанного числа
максимально число
# параллельных процессов доставки
remote_max_parallel = 15

# при генерации сообщения об ошибке
прикладывать
# не всё сообщение, а кусок (от начала)
указанного
# размера (иногда полезно и целиком - в
таком случае
# просто закомментируйте эту строку)
return_size_limit = 70k

# размер сообщения. У меня стоит
относительно большой
# размер (`относительно` - потому, что на
большинстве
# хостов оно ограничено 2-5-10мб, либо стоит
анлим.)
message_size_limit = 24M

# разрешаем неположенные символы в HELO
(столкнулся
# с этим случайно - имя фирмы состояло из
двух слов
# и какой-то раздолбай домен обозвал
my_firme_name
# прям с подчёркиваниями... Виндовые
клиенты при
# соединении радостно рапортовали о себе
# `vasya.my_firme_name` ну а экзим их футболил :))
helo_allow_chars = _

# Принудительная синхронизация. Если
отправитель
# торопится подавать команды, не
дождавшись ответа,
# то он посылается далеко и надолго :)
Немного,
# спам режется.
smtp_enforce_sync = true

# Выбираем, что мы будем логировать
# + - писать в логи,
# - - Не писать в логи.
# +all_parents - все входящие?
# +connection_reject - разорваные соединения
# +incoming_interface - интерфейс (реально - IP)
# +lost_incoming_connections - потеряные входящие
# соединения
# +received_sender - отправитель
# +received_recipients - получатель
# +smtp_confirmation - подтверждения SMTP?
# +smtp_syntax_error - ошибки синтаксиса SMTP
# +smtp_protocol_error - ошибки протокола SMTP
# -queue_run - работа очереди (замороженные
мессаги)
log_selector = \
    +all_parents \
    +connection_reject \
    +incoming_interface \
    +lost_incoming_connection \
    +received_sender \
    +received_recipients \
    +smtp_confirmation \
    +smtp_syntax_error \
    +smtp_protocol_error \
    -queue_run

# Убираем собственную временную метку
exim`a из логов, её ставит
# сам syslogd - нефига дублировать
syslog_timestamp = no

# system filter
# А тут у начальства заскок - желание
контролировать всё.
# Вот и пришлось сделать копию всей почты.
# Вот тока в IT отделе, как выяснилось,
никто никому не пишет :)
#system_filter = /usr/local/etc/exim/copy_mail.conf


begin acl

# Эти правила срабатывают для каждого
получателя
acl_check_rcpt:

  # принимать сообщения которые пришли с
локалхоста,
  # не по TCP/IP
  accept  hosts = :

  #accept authenticated = *
  # Запрещаем письма содержащие в
локальной части
  # символы @; %; !; /; |. Учтите, если у вас было
  # `percent_hack_domains` то % надо убрать.
  # Проверяются локальные домены
  deny    message       = "Недопустимые символы в
адресе"
          domains       = +local_domains
          local_parts   = ^[.] : ^.*[@%!/|]

  # Проверяем недопустимые символы для
  # нелокальных получателей:
  deny    message       = "Недопустимые символы в
адресе"
          domains       = !+local_domains
          local_parts   = ^[./|] : ^.*[@%!] : ^.*/\\.\\./

  # Принимаем почту для постмастеров
локальных доменов без
  # проверки отправителя (я
закомментировал, т.к. это -
  # основной источник спама с мой ящик).

#  accept  local_parts   = postmaster
#          domains       = +local_domains

  # Запрещщаем, если невозможно проверить
отправителя
  # (отсутствует в списке локальных
пользователей)
  # У себя я это закоментил, по причине, что
некоторые
  # железяки (принтеры, & etc) и программы
(Касперский, DrWEB)
  # умеют слать почту, в случае проблем но
не умеют ставить
  # нужного отправителя. Такие письма эта
проверка не пускает.
#  require verify        = sender

  # Запрещщаем тех, кто не обменивается
приветственными
  # сообщениями (HELO/EHLO)
  deny    message       = "HELO/EHLO обязано быть по SMTP RFC"
          condition     = ${if eq{$sender_helo_name}{}{yes}{no}}

  # Принимаем сообщения от тех, кто
аутентифицировался:
  # Вообще, большинство конфигов в рунете -
это один и тот же
  # конфиг написанный Ginger, в котором этот
пункт расположен
  # внизу. Но при таком расположении
рубятся клиенты с adsl,
  # ppp, и прочие зарезанные на последующих
проверках. Но это
  # жа неправильно! Этом мои пользователи
из дома! Потому
  # я это правило расположил до проверок.
  accept  authenticated = *

# Рубаем нах, тех, кто подставляет свой IP в
HELO
  deny    message       = "Не надо пихать свой IP в
качестве HELO!"
          hosts         =  *:!+relay_from_hosts
          condition     = ${if eq{$sender_helo_name}\
                          {$sender_host_address}{true}{false}}


# Рубаем тех, кто в HELO пихает мой IP (2500 за
месяц!)
  deny    condition     = ${if eq{$sender_helo_name}\
                          {$interface_address}{yes}{no}}
          hosts         = !127.0.0.1 : !localhost : *
          message       = "Это мой IP-адрес! Пшёл
прочь!"

# Рубаем тех, кто в HELO пихает только цифры
# (не бывает хостов ТОЛЬКО из цифр)
  deny    condition     = ${if match{$sender_helo_name}\
                          {\N^\d+$\N}{yes}{no}}
          hosts         = !127.0.0.1:!localhost:*
          message       = "В HELO не могут быть тока
цифры!"

  # Рубаем хосты типа *adsl*; *dialup*; *pool*;....
  # Нормальные люди с таких не пишут. Если
будут
  # проблемы - уберёте проблемный пункт (у
меня клиенты
  # имеют запись типа asdl-1233.zone.su - я ADSL
убрал...)
  deny    message       = "Не нравится мне Ваш хост..."
          condition     = ${if match{$sender_host_name} \
                               {adsl|dialup|pool|peer|dhcp} \
                               {yes}{no}}
  # Рубаем тех, кто в блэк-листах. Серваки
перебираются
  # сверху вниз, если не хост не найден на
первом, то
  # запрашивается второй, и т.д. Если не
найден ни в одном
  # из списка - то почта пропускается.
  deny    message       = "host in blacklist - $dnslist_domain \n
$dnslist_text"
          dnslists      = proxies.blackholes.easynet.nl : \
                          cbl.abuseat.org : \
                          bl.spamcop.net : \
              dyna.rbl.ukr.net : \
                          spamsrc.rbl.ukr.net : \
                          sbl-xbl.spamhaus.org : \


                          
  #deny    message       = "host in blacklist - $dnslist_domain \n
$dnslist_text"
  #        dnslists      = opm.blitzed.org : \
  #                        proxies.blackholes.easynet.nl : \
  #                        cbl.abuseat.org : \
  #                        bl.spamcop.net : \
  #                        bl.csma.biz : \
  #                        dynablock.njabl.org : \

  # Задержка. (это такой метод борьбы со
спамом,
  # основанный на принципе его рассылки)
На этом рубается
  # почти весь спам. Единственно - метод
неприменим на
  # реально загруженных MTA - т.к. в
результате ему
  # приходится держать много открытых
соединений.
  # но на офисе в сотню-две человек -
шикарный метод.
  #
  # более сложный вариант, смотрите в
статье по exim и
  # курьер имап. Т.к. там метод боле умный
(просто правил
  # больше :), то можно и на более
загруженные сервера ставить)
  warn
        # ставим дефолтовую задержку в 20
секунд
        set acl_m0 = 20s
  warn
        # ставим задержку в 0 секунд своим
хостам и
        # дружественным сетям (соседняя
контора :))
        hosts = +relay_from_hosts : 213.234.195.226/28
        set acl_m0 = 0s
  warn
        # пишем в логи задержку (если оно вам
надо)
        logwrite = Delay $acl_m0 for $sender_host_name \
    [$sender_host_address] with HELO=$sender_helo_name. Mail \
    from $sender_address to $local_part@$domain.
        delay = $acl_m0

  # Проверка получателя в локальных
доменах.
  # Если не проходит, то проверяется
следующий ACL,
  # и если непрошёл и там - deny
  accept  domains       = +local_domains
          endpass
          message       = "В этом домене нет такого
пользователя"
          verify        = recipient

  # Проверяем получателя в релейных
доменах
  # Опять-таки если не проходит ->
следующий ACL,
  # и если непрошёл и там - deny
  accept  domains       = +relay_to_domains
          endpass
          message       = "Мой сервер не знать
маршрут на этот хост..."
          verify        = recipient

  # Разрешаем почту от доменов в списке
relay_from_hosts
  accept  hosts         = +relay_from_hosts

  # Если неподошло ни одно правило - чувак
явно ищет
  # открытый релей. Пшёл прочь. :)
  deny    message       = "Свободен. Это тебе не
ОпенРелей."


# Тут идут ACL проверяющие содержимое
(тело) письма.
# Без них будут пропускаться все
сообщения.

acl_check_data:

  # Проверяем письмо на вирусы
  #deny malware = *
  #message = "In e-mail found VIRUS - $malware_name"

  # Если есть необходимость - тут проверки
на спам

  # Пропускаем остальное
  accept

# чё делаем с почтой
begin routers

# Поиск маршрута к хосту в DNS. Если маршрут
не найден в DNS -
# то это `унроутабле аддресс`. Не
проверяются локальные
# домены, 0.0.0.0 и 127.0.0.0/8
#dnslookup:
# driver = dnslookup
#  domains = ! +local_domains
#  transport = remote_smtp
#  ignore_target_hosts = 0.0.0.0 : 127.0.0.0/8
#  no_more

send_to_smart_host:
  driver = manualroute
  route_list = !+local_domains mail.alkar.net
  transport = remote_smtp

system_aliases:
    driver      = redirect
    allow_fail
    allow_defer
    data = ${lookup mysql{SELECT `goto` FROM `alias` WHERE \
           `address`='${quote_mysql:$local_part@$domain}' OR \
           `address`='${quote_mysql:@$domain}'}}

userforward:
    driver = redirect
    allow_fail
    allow_defer
    data = ${lookup mysql{SELECT userfwd FROM exim.mailbox \
            WHERE (username='${quote_mysql:$local_part@$domain}' AND
domain='${domain}')}}
    unseen

mysqluser:
  driver = accept
  condition = ${if eq{}{${lookup mysql{SELECT `maildir` FROM `mailbox` \
              WHERE
`username`='${quote_mysql:$local_part@$domain}'}}}{no}{yes}}
  transport = mysql_delivery

# начинаются транспорты - как доставляем
почту
begin transports

# Доставка на удалённые хосты - по SMTP
remote_smtp:
    driver = smtp

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}@${domain}'}}
    directory_mode = 770
    envelope_to_add
    group = mail
    maildir_format
    maildir_tag = ,S=$message_size
    message_prefix = ""
    message_suffix = ""
    mode = 0600

address_file:
    driver = appendfile
    delivery_date_add
    envelope_to_add
    return_path_add

# Имя программы
address_pipe:
  driver = pipe
  return_output

# Транспорт для автоответов
address_reply:
  driver = autoreply

# Начинаются повторы недоставленных
писем.
begin retry

# Этот кусок я не трогал. Думаю
разработчики лучше знают,
# какие тут должны быть цифирьки. Если же
вы это знаете
# лучше их - меняйте. Хотя... А какого, если
Вы такой
# умный, читаете этот мануал? Может ну, их,
цифирьки, а? :)
# Address or Domain  Error   Retries
# -----------------  -----   -------
*                    *       F,2h,15m; G,16h,1h,1.5; F,4d,6h


# преобразование адресов. У меня такого
нету.
begin rewrite


# Секция авторизации при отправке писем.
Ввиду того,
# что почтовых клиентов много, и все всё
делают
# по-своему, то и механизмов авторизации
три...
begin authenticators

# А вот по какому методу авторизуется
оутглюк - я уже и
# не помню... Хотя в своё время долго
ковырялся,
# пока настроил... Толь plain, толь login...
auth_plain:
  driver = plaintext
  public_name = PLAIN
  server_condition = ${lookup mysql{SELECT `username` FROM \
                     `mailbox` WHERE `username` = \
                     '${quote_mysql:$1}' AND `password` = \
                     '${quote_mysql:$2}'}{yes}{no}}
  server_prompts = :
  server_set_id = $2

# Вроде по этому оутглюк, а по предыдущему
нетскейп.
auth_login:
  driver = plaintext
  public_name = LOGIN
  server_condition = ${lookup mysql{SELECT `username` FROM \
                     `mailbox` WHERE `username` = \
                     '${quote_mysql:$1}' AND `password` = \
                     '${quote_mysql:$2}'}{yes}{no}}
  server_prompts = Username:: : Password::
  server_set_id = $1

# А так авторизуется "Летучая Мышь" - TheBat!
auth_cram_md5:
  driver = cram_md5
  public_name = CRAM-MD5
  server_secret = ${lookup mysql{SELECT `password` FROM \
                        `mailbox` WHERE `username` \
                        = '${quote_mysql:$1}'}{$value}fail}
  server_set_id = $1

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

5. "Проблема с релеем почты Exim+Dovecot"  +/
Сообщение от бусик on 11-Авг-09, 21:03 
ненене, всё тоже самое, но без коментов
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

7. "Проблема с релеем почты Exim+Dovecot"  +/
Сообщение от superles (??) on 11-Авг-09, 21:13 
primary_hostname = mydomain.ua
hide mysql_servers = localhost/exim/root/gfhjkm123
domainlist local_domains = ${lookup mysql{SELECT `domain` \
                            FROM `domain` WHERE \
                            `domain`='${domain}' AND \
                            `active`='1'}}

domainlist relay_to_domains = ${lookup mysql{SELECT `domain` \
                            FROM `domain` WHERE \
                            `domain`='${domain}' AND \
                            `active`='1'}}

hostlist   relay_from_hosts = localhost:127.0.0.0/8:10.0.15.0/24
acl_smtp_rcpt = acl_check_rcpt
qualify_domain = mydomain.ua
qualify_recipient = mydomain.ua
allow_domain_literals = false
exim_user = mailnull
exim_group = mail
never_users = root
#rfc1413_hosts = *
rfc1413_query_timeout = 0s
ignore_bounce_errors_after = 45m
timeout_frozen_after = 15d
freeze_tell = admin@mydomain.ua
helo_accept_junk_hosts = 10.0.15.0/24
auto_thaw = 1h
smtp_banner = "$primary_hostname, ESMTP EXIM $version_number"
smtp_accept_max = 50
smtp_accept_max_per_connection = 25
smtp_connect_backlog = 30
smtp_accept_max_per_host = 20
split_spool_directory = true
remote_max_parallel = 15
return_size_limit = 70k
message_size_limit = 24M
my_firme_name
helo_allow_chars = _
smtp_enforce_sync = true
log_selector = \
    +all_parents \
    +connection_reject \
    +incoming_interface \
    +lost_incoming_connection \
    +received_sender \
    +received_recipients \
    +smtp_confirmation \
    +smtp_syntax_error \
    +smtp_protocol_error \
    -queue_run
exim`a из логов, её ставит
syslog_timestamp = no

begin acl
acl_check_rcpt:
  accept  hosts = :
  deny    message       = "Недопустимые символы в
адресе"
          domains       = +local_domains
          local_parts   = ^[.] : ^.*[@%!/|]

  deny    message       = "Недопустимые символы в
адресе"
          domains       = !+local_domains
          local_parts   = ^[./|] : ^.*[@%!] : ^.*/\\.\\./

  deny    message       = "HELO/EHLO обязано быть по SMTP RFC"
          condition     = ${if eq{$sender_helo_name}{}{yes}{no}}

  accept  authenticated = *

  deny    message       = "Не надо пихать свой IP в
качестве HELO!"
          hosts         =  *:!+relay_from_hosts
          condition     = ${if eq{$sender_helo_name}\
                          {$sender_host_address}{true}{false}}


  deny    condition     = ${if eq{$sender_helo_name}\
                          {$interface_address}{yes}{no}}
          hosts         = !127.0.0.1 : !localhost : *
          message       = "Это мой IP-адрес! Пшёл
прочь!"

  deny    condition     = ${if match{$sender_helo_name}\
                          {\N^\d+$\N}{yes}{no}}
          hosts         = !127.0.0.1:!localhost:*
          message       = "В HELO не могут быть тока
цифры!"

  deny    message       = "Не нравится мне Ваш хост..."
          condition     = ${if match{$sender_host_name} \
                               {adsl|dialup|pool|peer|dhcp} \
                               {yes}{no}}

  deny    message       = "host in blacklist - $dnslist_domain \n
$dnslist_text"
          dnslists      = proxies.blackholes.easynet.nl : \
                          cbl.abuseat.org : \
                          bl.spamcop.net : \
              dyna.rbl.ukr.net : \
                          spamsrc.rbl.ukr.net : \
                          sbl-xbl.spamhaus.org : \


                          
        set acl_m0 = 20s

        hosts = +relay_from_hosts : 213.234.195.226/28
        set acl_m0 = 0s
  warn
        logwrite = Delay $acl_m0 for $sender_host_name \
    [$sender_host_address] with HELO=$sender_helo_name. Mail \
    from $sender_address to $local_part@$domain.
        delay = $acl_m0

  accept  domains       = +local_domains
          endpass
          message       = "В этом домене нет такого
пользователя"
          verify        = recipient

  accept  domains       = +relay_to_domains
          endpass
          message       = "Мой сервер не знать
маршрут на этот хост..."
          verify        = recipient

relay_from_hosts
  accept  hosts         = +relay_from_hosts

  deny    message       = "Свободен. Это тебе не
ОпенРелей."

acl_check_data:


  accept

begin routers


send_to_smart_host:
  driver = manualroute
  route_list = !+local_domains mail.alkar.net
  transport = remote_smtp

system_aliases:
    driver      = redirect
    allow_fail
    allow_defer
    data = ${lookup mysql{SELECT `goto` FROM `alias` WHERE \
           `address`='${quote_mysql:$local_part@$domain}' OR \
           `address`='${quote_mysql:@$domain}'}}

userforward:
    driver = redirect
    allow_fail
    allow_defer
    data = ${lookup mysql{SELECT userfwd FROM exim.mailbox \
            WHERE (username='${quote_mysql:$local_part@$domain}' AND
domain='${domain}')}}
    unseen

mysqluser:
  driver = accept
  condition = ${if eq{}{${lookup mysql{SELECT `maildir` FROM `mailbox` \
              WHERE
`username`='${quote_mysql:$local_part@$domain}'}}}{no}{yes}}
  transport = mysql_delivery

begin transports

remote_smtp:
    driver = smtp

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}@${domain}'}}
    directory_mode = 770
    envelope_to_add
    group = mail
    maildir_format
    maildir_tag = ,S=$message_size
    message_prefix = ""
    message_suffix = ""
    mode = 0600

address_file:
    driver = appendfile
    delivery_date_add
    envelope_to_add
    return_path_add


address_pipe:
  driver = pipe
  return_output


address_reply:
  driver = autoreply

begin retry

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


begin rewrite


begin authenticators

auth_plain:
  driver = plaintext
  public_name = PLAIN
  server_condition = ${lookup mysql{SELECT `username` FROM \
                     `mailbox` WHERE `username` = \
                     '${quote_mysql:$1}' AND `password` = \
                     '${quote_mysql:$2}'}{yes}{no}}
  server_prompts = :
  server_set_id = $2

auth_login:
  driver = plaintext
  public_name = LOGIN
  server_condition = ${lookup mysql{SELECT `username` FROM \
                     `mailbox` WHERE `username` = \
                     '${quote_mysql:$1}' AND `password` = \
                     '${quote_mysql:$2}'}{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:$1}'}{$value}fail}
  server_set_id = $1


Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

8. "Проблема с релеем почты Exim+Dovecot"  +/
Сообщение от бусик on 11-Авг-09, 21:21 
судя по конфигу - exim не передает данные на спам-демона, вероятнее всего Вы пользуете sa-exim... это важно!

либо заворот на него идет где-то раньше.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

6. "Проблема с релеем почты Exim+Dovecot"  +/
Сообщение от бусик on 11-Авг-09, 21:10 
также, что по поводу sa-exim? пользуете или нет?
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

9. "Проблема с релеем почты Exim+Dovecot"  +/
Сообщение от superles (??) on 11-Авг-09, 21:23 
>также, что по поводу sa-exim? пользуете или нет?

нет , ничего подобного нет

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

10. "Проблема с релеем почты Exim+Dovecot"  +/
Сообщение от бусик on 11-Авг-09, 21:26 
>>также, что по поводу sa-exim? пользуете или нет?
>
>нет , ничего подобного нет

тогда скажите, каким образом письмо попадает в spamassassin? в конфиге строка закоментирована. напишите свой номер аськи, может в интерактивном режиме я смогу Вам помочь.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

11. "Проблема с релеем почты Exim+Dovecot"  +/
Сообщение от superles (??) on 11-Авг-09, 21:29 
443097381
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

12. "Проблема с релеем почты Exim+Dovecot"  +/
Сообщение от superles (??) on 11-Авг-09, 21:31 
>443097381

или свой напишите

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру