Есть сервер с 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: 8bitSpam 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: 8bitReceived: 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--
Отправляю изнутри всё ок уходит приходит моментально . Подскажите хоть где копать???
>[оверквотинг удален]
>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--
>
>Отправляю изнутри всё ок уходит приходит моментально . Подскажите хоть где копать???
>Вы настолько неправильно задали вопрос, что даже не понятно, где у Вас основная проблема) кто куда откуда отправляет и кто куда где получает? Ваш сервер не принимает или не доставляется удаленному ?
>Вы настолько неправильно задали вопрос, что даже не понятно, где у Вас
>основная проблема) кто куда откуда отправляет и кто куда где получает?
>Ваш сервер не принимает или не доставляется удаленному ?Прошу прощения. Наш сервер отправляет и принимает. Только если мы делаем это из локальной сети то всё нормально , а если мы это делаем из вне(пересылаем с авторизацией по паролю) то получаем такое сообщение из которого следует , что spam assasin нас считает спамом. Хотя я ломаю голову и немогу понять , почему при отправке из локальной сети мы НЕ СПАМ , а из вне мы СПАМ. Гуру , подскажите что меняется.
>[оверквотинг удален]
>>основная проблема) кто куда откуда отправляет и кто куда где получает?
>>Ваш сервер не принимает или не доставляется удаленному ?
>
>Прошу прощения. Наш сервер отправляет и принимает. Только если мы делаем это
>из локальной сети то всё нормально , а если мы это
>делаем из вне(пересылаем с авторизацией по паролю) то получаем такое сообщение
>из которого следует , что spam assasin нас считает спамом. Хотя
>я ломаю голову и немогу понять , почему при отправке из
>локальной сети мы НЕ СПАМ , а из вне мы СПАМ.
>Гуру , подскажите что меняется.ну, без конфигов тут не разобраться.
используете ли sa-exim и как прикручен spamassassin, если нет?
в общем, давайте конфиги, будем посмотреть :)
#!/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_moresend_to_smart_host:
driver = manualroute
route_list = !+local_domains mail.alkar.net
transport = remote_smtpsystem_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}')}}
unseenmysqluser:
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 = smtpmysql_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 = 0600address_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
ненене, всё тоже самое, но без коментов
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 = nobegin 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 = 20shosts = +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_m0accept domains = +local_domains
endpass
message = "В этом домене нет такого
пользователя"
verify = recipientaccept domains = +relay_to_domains
endpass
message = "Мой сервер не знать
маршрут на этот хост..."
verify = recipientrelay_from_hosts
accept hosts = +relay_from_hostsdeny message = "Свободен. Это тебе не
ОпенРелей."acl_check_data:
acceptbegin routers
send_to_smart_host:
driver = manualroute
route_list = !+local_domains mail.alkar.net
transport = remote_smtpsystem_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}')}}
unseenmysqluser:
driver = accept
condition = ${if eq{}{${lookup mysql{SELECT `maildir` FROM `mailbox` \
WHERE
`username`='${quote_mysql:$local_part@$domain}'}}}{no}{yes}}
transport = mysql_deliverybegin transports
remote_smtp:
driver = smtpmysql_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 = 0600address_file:
driver = appendfile
delivery_date_add
envelope_to_add
return_path_add
address_pipe:
driver = pipe
return_output
address_reply:
driver = autoreplybegin retry
* * F,2h,15m; G,16h,1h,1.5; F,4d,6h
begin rewrite
begin authenticatorsauth_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 = $2auth_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 = $1auth_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
судя по конфигу - exim не передает данные на спам-демона, вероятнее всего Вы пользуете sa-exim... это важно!либо заворот на него идет где-то раньше.
также, что по поводу sa-exim? пользуете или нет?
>также, что по поводу sa-exim? пользуете или нет?нет , ничего подобного нет
>>также, что по поводу sa-exim? пользуете или нет?
>
>нет , ничего подобного неттогда скажите, каким образом письмо попадает в spamassassin? в конфиге строка закоментирована. напишите свой номер аськи, может в интерактивном режиме я смогу Вам помочь.
443097381
>443097381или свой напишите