Мы — долго запрягаем, быстро ездим, и сильно тормозим.
www.lissyara.su —> главная —> Архив —> EXIM & courier-imap

настройка связки EXIM, courier-imap и MySQL

Автор: lissyara.


Эта статья в архиве. Новая версия доступна по адресу: http://www.lissyara.su/?id=1175


   Когда я начинал общаться с UNIX`ами, то по инерции в качестве MTA (Message Transfer Agent) использовал Sendmail - инерция заключалась в том, что он ставился по умолчанию. Его я и настроил, и стал использовать. Работал он нормально, никаких проблем не было, но весьма доставали маловразумительные конфиги на макросах m4 которые мало кому легко даются, и отсутствие поддержки виртуальных доменов - у меня на машине была почта двух доменов, а вот раскладывалась она в одни и те же ящики - т.е. был ящик admin и в него ложилась почта и для admin@domain1.ru и для admin@domain2.ru. Естественно, что это было неудобно. Да и в плане безопастности меня беспокоило то, что использовались системные аккаунты.
   В-общем, по прошествии некоторого времени было принято решение эмигрировать на что-то иное. После бесплодных попыток настроить qmail я поставил связку postfix и courier-imap которая до сих пор успешно работает на той машине.
   Позже и у этой пары нашлись недостатки и я "эмигрировал" на exim. Он мне сразу понравился понятным конфигом (намного более вразумительным чем у того же postfix, который славится простотой конфигурационных файлов), плюс - файл один, а не куча как у постфикса. Также порадовала поддержка перл-совместимых регулярных выражений и нормальная поддержка MySQL - запросы к БД можно писать прямо в конфе... Короче - сказка :)
   Через некоторое время использования меня окончательно достал спам - уже не помогали ни блэк-листы, ни запрет на приём почты с хостов не имеющих доменного имени. Связано это было не с косяками самого экзима, а с тем что на мой ящик собиралась почта с одного домена целиком, и с "популярных" ящиков другого - postmaster, admin, support, & etc... После некоторого рыскания и метания - "а что делать?" было найдено интересное решение - задержка при приёме писем. В итоге это и было реализовано -  защита от спама методами самого exim и некоторым знанием того, как рассылается спам - серверу спамеров надо за малое время отослать несколько миллионов писем - поэтому, в отличие от нормального сервера он не может ждать больше нескольких секунд. Для "срезания" таких серверов в конфиг введена задержка на приёме письма - как итог нормальные сервера могут ждать и по 30 секунд, и по 99 - а вот спамерские отваливаются через 10-15 секунд. Им некогда - надо слать письма. Честно говоря эффектом был сам удивлён - спам пропал вообще. Потом выяснилось, что не всё так гладко - раз в три-четыре дня приходило письмо или пара. Судя по тому, что серверы с которых приходили эти письма в тот же день попадали в списки блэк-листов - спамеры просто находили и юзали очередной опен релей. Нужно заметить что это не моё изобретение, этот кусок конфига я подобрал в рассылке exim`a - exim-users.
   Итак, поехали. Ставим из портов, предварительно обновив их до нынешней версии.
/root/>cd /usr/ports/mail/exim
/usr/ports/mail/exim/>mcedit Makefile

там правим (комментируем или раскомментируем) такие строчки:
WITH_CONTENT_SCAN=     yes # для поддержки антивируса
WITH_MYSQL=            yes # для поддержки БД MySQL
WITH_MYSQL_VER=        40 # версия MySQL
WITHOUT_IPV6=          yes # Отрубаем IP шестой версии
WITH_DEFAULT_CHARSET?=  koi8-r # кодировка по-умолчанию
#LOGDIR?=        /var/log/exim # без директории для лог файлов, ибо 
# по умолчанию exim пишет логи в свою директорию, что на мой взгляд 
# не самый лучший вариант - для этого есть syslogd
LOG_FILE_PATH?= syslog # говорим ему куда писать логи - в syslog

Всё это шаманство с редактированием Makefile нужно только из-за того, что логи по-умолчанию пишутся дурацки - я хотел чтоб они писались в /var/log/maillog. Все опции кроме опций логов можно задать ключами при запуске Make. Но коли уж лезть - так на полную :) (что конечно же тоже неправильно, т.к. при использовании утилиты portupgrade она обновит порт с параметрами Makefile по-умолчанию, ибо ей-то невдомёк что файл был отредактирован - потому как при обновлении дерева портов он будет перезаписан дефолтовым.) После чего делаем make && make install && make clean.
   Создаём БД, заводим пользователя в MySQL - и таблицы по прилагаемым дампам:
-- MySQL dump 9.11
--
-- Host: localhost    Database: exim
-- ------------------------------------------------------
-- Server version       4.0.25-log

--
-- Current Database: exim
--

CREATE DATABASE /*!32312 IF NOT EXISTS*/ exim;

USE exim;

--
-- Table structure for table `aliases`
--

CREATE TABLE aliases (
  to_user varchar(128) NOT NULL default '',
  recipients text,
  PRIMARY KEY  (to_user)
) TYPE=MyISAM;

--
-- Dumping data for table `aliases`
--

INSERT INTO aliases VALUES ('@gate.domain1.ru','admin@lissyara.su');
INSERT INTO aliases VALUES ('@gate','admin@lissyara.su');
INSERT INTO aliases VALUES ('admin@domain1.ru','admin@lissyara.su');
INSERT INTO aliases VALUES ('postmaster@domain1.ru','admin@lissyara.su');
INSERT INTO aliases VALUES ('abuse@domain1.ru','admin@lissyara.su');

--
-- Table structure for table `domains`
--

CREATE TABLE domains (
  domainname varchar(128) NOT NULL default '',
  type enum('LOCAL','RELAY','VIRTUAL') default 'LOCAL',
  PRIMARY KEY  (domainname)
) TYPE=MyISAM;

--
-- Dumping data for table `domains`
--

INSERT INTO domains VALUES ('gate','LOCAL');
INSERT INTO domains VALUES ('domain1.ru','LOCAL');
INSERT INTO domains VALUES ('domain2.ru','VIRTUAL');
INSERT INTO domains VALUES ('gate.domain1.ru','LOCAL');

--
-- Table structure for table `users`
--

CREATE TABLE users (
  id varchar(64) NOT NULL default '',
  full_name varchar(128) NOT NULL default '',
  passwd varchar(64) NOT NULL default '',
  uid int(5) unsigned default '26',
  gid int(5) unsigned default '26',
  home varchar(128) binary default '/var/mail/exim/',
  active enum('Y','N') default 'Y',
  PRIMARY KEY  (id)
) TYPE=MyISAM;

--
-- Dumping data for table `users`
--

INSERT INTO users VALUES ('vasya@domain1.ru', 
'пользователь Вася','1234567',26,26,'/var/mail/exim/','Y');
INSERT INTO users VALUES ('petya@domain1.ru', 
'юзер Петя','568954',26,26,'/var/mail/exim/','Y');
INSERT INTO users VALUES ('marina@domain2.ru', 
'пользователь Mарина','1234567',26,26,'/var/mail/exim/','Y');
INSERT INTO users VALUES ('sanya@domain2.ru', 
'ящик Саши','568954',26,26,'/var/mail/exim/','Y');

Следующим образом (cСЧИТАЕМ что приведённый выше дамп Вы скопировали в файл sql_dump.sql и он лежит в домашней директории):
/usr/home/lissyara/>mysql --user=root --password=root_password < sql_dump.sql

После чего редактируем конфиг exim`а - /usr/local/etc/exim/configure:
# Файл конфигурации: /usr/local/etc/exim/configure

primary_hostname = gate.domain1.ru
domainlist local_domains = ${lookup mysql{SELECT domainname FROM domains \
                                WHERE domainname='${domain}' AND \
                                (type='LOCAL' OR type='VIRTUAL')}}
domainlist relay_to_domains = ${lookup mysql{SELECT domainname FROM domains \
                                WHERE domainname='${domain}' AND type='RELAY'}}
hostlist   relay_from_hosts = 127.0.0.1 : 192.168.0.0/24

acl_smtp_rcpt = acl_check_rcpt
acl_smtp_data = acl_check_data
av_scanner = clamd:/var/run/clamav/clamd
qualify_domain = domain1.ru

log_selector = \
        +all_parents \
        +lost_incoming_connection \
        +received_sender \
        +received_recipients \
        +smtp_confirmation \
        +smtp_syntax_error \
        +smtp_protocol_error \
        -queue_run

allow_domain_literals = false
never_users = root:daemon:bin
host_lookup = *
rfc1413_hosts = *
rfc1413_query_timeout = 0s
ignore_bounce_errors_after = 30m
timeout_frozen_after = 30d
freeze_tell = postmaster
auto_thaw = 1h
message_size_limit = 16M
smtp_accept_max = 50
smtp_accept_max_per_connection = 50
smtp_connect_backlog = 50
smtp_accept_max_per_host = 25
split_spool_directory = true
remote_max_parallel = 15
# вводим параметры подключения к MySQL серверу хост/БД/имя_пользователя/пароль
hide mysql_servers = localhost/exim/exim/exim

begin acl

acl_check_rcpt:

  accept  hosts = :
# Задержка приёма письма - как средство борьбы со спамом -
# спамерам некогда ждать по 99 секунд :)
        warn
        set acl_m0 = 0s

        warn
        hosts = !+relay_from_hosts:!213.234.195.226/32
        set acl_m0 = 30s

        warn
        condition = ${if and {\
                {match{$sender_host_name}\
                {\N^[-a-z]*\d{0,3}[-a-z]*\.?[-a-z]*\d{0,3}[-a-z]*\.\w+$\N}} \
                {!eq{$acl_c0}{outblaze_helo}} \
                }{yes}{no}}
        set acl_m0 = 1s

        warn
        condition = ${if and {\
                {match{$sender_helo_name}{\N^\w*\.\w{3}$\N}} \
                {eq{$acl_c1}{}} \
                        }{yes}{no}}
        set acl_m0 = 99s

        warn
        condition = ${if and {\
                {!match{$sender_host_name}{\N.+.outblaze.com$\N}} \
                {eq{$acl_c0}{outblaze_helo}} \
                        }{yes}{no}}
        set acl_m0 = 99s

        warn
        condition = ${if and {\
                {!match{$sender_host_name}{\N.+.outblaze.com$\N}} \
                {eq{$acl_c2}{outblaze_domain}} \
                        }{yes}{no}}
        set acl_m0 = 99s

        warn
        condition = ${if or {\
                {eq{$sender_address}{}} \
                {eq{$acl_m1}{0s}} \
                } {yes}{no}}
        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.
        set acl_m1 = 0s
        delay = $acl_m0

############  ###################
    deny    local_parts   = ^.*[@%!/|] : ^\\.

# Приём писем для постмастера локальных доменов без проверок
#  accept  local_parts   = postmaster
#          domains       = +local_domains

  require verify        = sender

  deny    message       = HELO/EHLO required by SMTP RFC
          condition     = ${if eq{$sender_helo_name}{}{yes}{no}}

  deny    message       = Go Away! You are spammer.
          condition     = ${if match{$sender_host_name} \
                           {bezeqint\\.net|net\\.il|dialup|pool|peer|dhcp} \
                           {yes}{no}}

  deny    message       = host is listed in $dnslist_domain
          dnslists      = sbl.spamhaus.org : \
                          relays.ordb.org : \
                          opm.blitzed.org : \
                          proxies.blackholes.easynet.nl

  accept  domains       = +local_domains
          endpass
          message       = unknown user
          verify        = recipient

  accept  domains       = +relay_to_domains
          endpass
          message       = unrouteable address
          verify        = recipient

  accept  hosts         = +relay_from_hosts

  accept  authenticated = *

  deny    message       = RELAY NOT PERMITTED

acl_check_data:

    deny        message         = Go Away! Eat Your Spam Self!
                condition       = ${if match{$message_body} \
                               {105[-_]*51[-_]*86|778[-_]*98[-_]*94} \
                               {yes}{no}}
    deny        malware         = *
                message         = Virus found ($malware_name)
    accept

begin routers

dnslookup:
  driver = dnslookup
  domains = ! +local_domains
  transport = remote_smtp
  ignore_target_hosts = 0.0.0.0 : 127.0.0.0/8 : 192.168.0.0/24
  no_more

system_aliases:
    driver      = redirect
    allow_fail
    allow_defer
    data = ${lookup mysql{SELECT recipients FROM aliases WHERE \
            to_user='${quote_mysql:$local_part@$domain}' OR \
                to_user='${quote_mysql:@$domain}'}}

mysqluser:
  driver = accept
  condition = ${if eq{} {${lookup mysql{SELECT home FROM users \
                WHERE id='${quote_mysql:$local_part@$domain}' OR \
                id='${quote_mysql:@$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(home, '${local_part}@${domain}')\
    		 FROM users WHERE id='${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_pipe:
    driver = pipe
    return_output

address_file:
    driver = appendfile
    delivery_date_add
    envelope_to_add
    return_path_add

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 id FROM users \
                        WHERE id = '${quote_mysql:$1}' \
                        AND passwd = '${quote_mysql:$2}' \
                        AND active = 'Y'}{yes}{no}}
  server_prompts = :
server_set_id = $2

auth_login:
  driver = plaintext
  public_name = LOGIN
  server_condition = ${lookup mysql{SELECT id FROM users \
                        WHERE id = '${quote_mysql:$1}' \
                        AND passwd = '${quote_mysql:$2}' \
                        AND active = 'Y'}{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 passwd FROM users \
                        WHERE id = '${quote_mysql:$1}' \
                        AND active = 'Y'}{$value}fail}
server_set_id = $1

Затем проверяем корректность конфига командой exim -bV:
/root/>exim -bV
Exim version 4.52 #0 (FreeBSD 4.11) built 24-Aug-2005 17:25:35
Copyright (c) University of Cambridge 2005
Probably Berkeley DB version 1.8x (native mode)
Support for: iconv() PAM Perl OpenSSL Content_Scanning Old_Demime
Lookups: lsearch wildlsearch nwildlsearch iplsearch cdb dbm dbmnz 
dnsdb dsearch mysql nis nis0 passwd
Authenticators: cram_md5 plaintext spa
Routers: accept dnslookup ipliteral manualroute queryprogram redirect
Transports: appendfile/maildir/mailstore/mbx autoreply lmtp pipe smtp
Fixed never_users: 0
Configuration file is /usr/local/etc/exim/configure

Если нет ошибок - то продолжаем, если есть - исправлям (он достаточно подробно жалуется на ошибки, поэтому тут относительно просто, а чаще всего ошибки бывают из-за невнимательности).
   Добавляем в /etc/rc.conf строку exim_enable="YES" и там же меняем sendmail_enable="YES" на sendmail_enable="NONE", после чего убиваем sendmail, запускаем exim, и проверяем - запустился ли:
/root/>killall sendmail
/root/>/usr/local/etc/rc.d/exim.sh start
Starting exim.
/root/>ps -ax | grep exim
 2775  ??  Ss     0:00.00 /usr/local/sbin/exim -bd -q30m (exim-4.52-0)
/root/>

   Теперь ставим антивирус - ClamAV. Почему именно он? Просто когда-то у меня стоял DrWeb, но под него очень тяжело найти ключи :) Под UNIX-версию намного тяжелее чем под виндовую.... Потом, по проценту отлова заражённых файлов ClamAV недалеко от платных антивирей, иногда даже впереди (как-то отправил письмо другу с картинкой прикольной - приходит ответ моего же почтаря - фотка зарублена как заражённая каким-то jpeg-вирусом.... Касперский на моей машине с самыми свежими базами файл этот в упор не видел как заражённый....).
/root/>cd /usr/portd/security/clamav
make && make install && make clean

При запуске вылазиет красивое окошко с выбором опций - ничего не выбираем (у меня он предложил "URL downloading" и "milter"). Добавляем в /etc/rc.conf строку clamav_clamd_enable="YES" запускаем демона и проверяем заработало ли:
/root/>/usr/local/etc/rc.d/clamav-clamd.sh start
Starting clamav_clamd.
/root/>ps -ax | grep clam
 3073  ??  Is     0:00.00 /usr/local/sbin/clamd
 3078  p0  DL+    0:00.00 grep clam
/root/>

В особой настройке не нуждается, по умолчанию неплохо работает, но при желании можно поправить конфиг - /usr/local/etc/clamd.conf, ещё есть прикол - строка в этом файле в начале файла - Example если она есть и незакомментирована - то он неработает. Единственное для чего точно требуется настройка - это обновление антивирусных баз - для этого запускаем планировщик (crontab -e - нужно учесть что запускается редактор по-умолчанию, т.е. vi если вы это не исправили :)) от суперпользователя и вносим в него такую строку:
28	*/4	*	*	*    /usr/local/bin/freshclam >/dev/null 2>&1

Теперь каждый час, который делится нацело на 4 (т.е. в 0, 4, 8, 12, 16, 20) в 28 минут будет проводиться обновление антивируса. Если кажется слишком часто - можно поставить и реже.
   Собственно почту сервер уже может принимать. Для проверки можно отправить самому себе письмо с консоли:
/root/>mail -s test_e_mail admin@domain1.ru < /usr/local/etc/rc.d/exim.sh

После чего надо сходить в папку /var/mail/exim и посмотреть появилась ли внутри папка с именем пользователя а в ней файл письма в папке NEW. Если всё нормально - идём дальше, нет - смотрим логи - /var/log/maillog и устраняем ошибки. Есть одна особенность у инсталлятора exim - если до него стоял sendmail, то содержимое файла /etc/mail/mailer.conf остаётся неизменным, а вот если до него стоял другой MTA то в него стоит заглянуть - при удалении не все они восстанавливают после себя всё `как былО` - е если в нём прописан старый майлер то заменить его содержимое на следующее:
sendmail        /usr/local/sbin/exim
send-mail       /usr/local/sbin/exim
mailq           /usr/local/sbin/exim -bp
newaliases      /usr/local/sbin/exim -bi
hoststat        /usr/local/sbin/exim
purgestat       /usr/local/sbin/exim

Только нужно учесть что это действует только на отправку сообщений с консоли. Если у Вас проблема не в этом месте, то его править бесполезно.
   Теперь осталось научить его отдавать почту клиентам. Для этого ставим courier-imap:
/root/>cd /usr/ports/mail/courier-imap
/usr/ports/mail/courier-imap/>make && make install && make clean

В появившемся окошке с опциями нам нужно только одно - поддержка авторизации MySQL. Остальное никчему. По окончании настройки конфигурим, но не сам courier-imap, a courier-authlib которого он за собой тащит при установке. Редактируем файл /usr/local/etc/authlib/authmysqlrc до такого состояния:
MYSQL_SERVER            localhost
MYSQL_USERNAME          exim
MYSQL_PASSWORD          exim
MYSQL_PORT              3306
MYSQL_DATABASE          exim
MYSQL_USER_TABLE        `users`
MYSQL_CLEAR_PWFIELD     `passwd`
MYSQL_UID_FIELD         `uid`
MYSQL_GID_FIELD         `gid`
MYSQL_LOGIN_FIELD       `id`
MYSQL_NAME_FIELD        `full_name`
MYSQL_MAILDIR_FIELD     CONCAT(`home`, `id`)
DEFAULT_DOMAIN          domain1.ru

После чего добавляем следующие строки в /etc/rc.conf:
courier_imap_pop3d_enable="YES"
courier_imap_imapd_enable="YES"
courier_authdaemond_enable="YES"

И запускаем службы:
/etc/>cd /usr/local/etc/rc.d
/usr/local/etc/rc.d/>./courier-authdaemond.sh start
Starting courier_authdaemond.
/usr/local/etc/rc.d/>./courier-imap-imapd.sh  start
Starting courier_imap_imapd.
/usr/local/etc/rc.d/>./courier-imap-pop3d.sh  start
Starting courier_imap_pop3d.
/usr/local/etc/rc.d/>ps -ax | grep imap
 6223  ??  I      0:00.00 /usr/local/sbin/courierlogger -
 6224  ??  I      0:00.00 /usr/local/libexec/courier-imap
 6235  ??  S      0:00.00 /usr/local/libexec/courier-imap
/usr/local/etc/rc.d/>sockstat | grep couri
root     couriert  6235    3 tcp4   *:110                 *:*
root     couriert  6224    3 tcp4   *:143                 *:*
root     courierl  6234    4 dgram  syslogd[113]:3
root     courierl  6223    4 dgram  syslogd[113]:3
root     courierl  6207    4 dgram  syslogd[113]:3
/usr/local/etc/rc.d/>sockstat | grep auth
root     authdaem  6213    5 stream /var/run/authdaemond/socket.tmp
root     authdaem  6212    5 stream /var/run/authdaemond/socket.tmp

   Вот и всё. Тестируйте, проверяйте. Всё это руководство писалось при наладке тестовой машины следующей конфигурации:
P-II 233 MHz
64 Mb RAM
8 Gb HDD

Версии ПО:
exim-4.52
clamav-0.86.2_1
courier-authlib-base-0.57
courier-authlib-mysql-0.57
courier-imap-4.0.4,1
mysql-server-4.0.25

После чего конфиг переносился на "боевой" сервак. Также подразумевается что MySQL уже стоит.



размещено: 2005-08-27,
последнее обновление: 2009-10-24,
автор: lissyara

..::GNUтёнок::.., 2005-10-13 в 0:31:30

УРА! Спасибо Лёха. мне удалось поднять Сервак.
Работает вроде. тьфу тьфу тьфу.
В общем запара была с курьером. там crypt нужно было вычеркнуть, что бы почту забирал.  а так писал в логи
051013  4:28:32      48 Connect     exim@localhost on
48 Init DB     exim
48 Query       SELECT `id`, crypt, `passwd`, `uid`, `gid`, home, CONCAT(`home`, `id`), "", `full_name`, "" FROM `users` WHERE `id` = "name@domain1.com"

..::GNUтёнок::..,, 2005-10-13 в 0:40:16

Вот только я не понял. почему на yandex.ru я отправляю письмо, оно в другой кодировки приходит. непонял что то.

lissyara, 2005-10-13 в 9:00:27

Ага. Exim, от нечего делать, письма на лету перекодирует....
Рой клиента своего почтового.

..::GNUтёнок::.., 2005-10-14 в 6:46:22

В общем все тип топ. Вот думаю dhcpd поставить.. мне dhcp на винде никак не нравится.

..::GNUтёнок::.., 2005-10-14 в 9:40:59

мм..  а квоты на отправку почты анлимит? ^)

lissyara, 2005-10-14 в 9:51:11

Я сервак для офиса настраивал, а не магистральный SMTP-релей :)

monstr, 2005-12-23 в 10:36:04

все бы хорошо только не могу понать вот этого

Создаём БД, заводим пользователя в MySQL - и таблицы по прилагаемым дампам:
— MySQL dump 9.11
--
— Host: localhost    Database: exim
— ------------------------------------------------------
— Server version       4.0.25-log

--
— Current Database: exim
--


что сним делать и куда его пихать ???
Я не ламер я только учусь.

lissyara, 2005-12-23 в 10:55:20

Сорри. Щас добавлю в статью. А в общих чертах оно делается так - либо копируешь текст отсюда и вставляешь в phpMyAdmin - в окно выполнить SQL запрос, либо в текстовый файл и с ним делаешь так:
mysql --user=root --password=root_passwd < file.sql

P.S. надо добавить, что нынешний exim умеет сразу сам писать логи в maillog - поэтому эту часть Makefile можно не трогать.

Alexandr, 2005-12-26 в 7:33:49

Всё прекрасно но как избежать сообщений типа, не понятно от кого. Может кто знает как закрыть эту траблу!

Вот кусок лога

2005-12-26 09:08:55 Delay 0s for  [66.246.218.96] with HELO=mail.idiot.com. Mail from  to int_chel@example.com.

lissyara, 2005-12-26 в 9:08:04

А что тебе не нравится в этом логе?
Это ещё не сообщение, это тока факт соединения серверов...

Alexandr, 2005-12-27 в 7:35:06

вот  ->>
2005-12-26 09:08:55 Delay 0s for  [66.246.218.96] with HELO=mail.hoster.kz. Mail from  to int_chel@example.com.
2005-12-26 09:09:27 1EqijI-0001jn-FK <= <> H=(mail.hoster.kz) [66.246.218.96] P=esmtps X=TLSv1:AES256-SHA:256 S=109204 id=E1EqjiG-00
0IS8-4x@mail.hoster.kz

Alexandr, 2005-12-27 в 7:36:20

2005-12-26 09:09:27 1EqijI-0001jn-FK Completed

lissyara, 2005-12-27 в 9:30:12

так бы и сказал, что с пустым полем "From".
Хрен его знает. Надо читать документацию и правило писать...

dmart, 2005-12-30 в 16:03:54

С пустым MAIL From: - это стандарт для сообщений об отлупах. А то зафильтруете, и знать не будете, что ваши письма куда-то не доходят.

Showjumper, 2006-01-10 в 20:18:43

А расшифруйте плиз как тут почта по алиасам бегает ?
как я понял все алиасы только из MySQL, расшифруйте что есть to_user ....ну собсно воопче чт отам сказано :)
Спасибо.
PS я еще встретил не system_aliases, a mysql_system_aliases:
на етой странице http://www.exim.org/pipermail/exim-users/Week-of-Mon-19991025/014854.html

lissyara, 2006-01-10 в 20:53:37

Поле `to_user` - получатель письма в локальном домене (кому она пришла на этом сервере), поле `recipients` - получатель почты, кому она уйдёт с этого сервера в итоге

Zzz, 2006-01-23 в 17:53:36

Спасибо за хорошую статью.
У меня проблема такая: при доставке почты время доставки указывается на 3 часа больше, чем есть на самом деле. Системное время в норме. В настройках courier-imap про время ничего не указать. Может, кто сталкивался - подскажите.

Rustem, 2006-02-08 в 15:41:47

Проверка на антивирус идет все файлы - болшие и маленькие, как можно ограничить проверку размером , можеть кто нить написать?

Николай, 2006-02-08 в 16:09:07

To Zzz:
Дело скорее всего в том что ты при установке системы установил временную зону как Москва + 3 часа :)
Оттуда этот косяк и лезет. Выправить можно просто:
sysinstall и там уже по месту разберешься.

Саня, 2006-04-17 в 15:04:19

Спасибо за статью! Материал приятно выложен, удобен для чтения и понимания. Буду пробовать поднятть серв по этому описанию. (Сам я лишь немного знаком с freeBSD, поэтому для меня статья более чм полезна)

Александр, 2006-05-17 в 16:08:37

Сделали все как описано в статье - не работает, письма отправляются, но не принимаются и почтовый клиент (Outlook) не может прочитать каталоги, пишет ошибку:
       Temporary problem, please try again later
   Протокол:    IMAP
   Сервер:    mail.my-domain.ru
   Порт:    143
и пишет что не удалось загрузить папку для пользователя, не удалось соединиться с сервером.  в maillog на сервере input\output error :(
Очень жаль что подобные "справочные материалы" только впустую убивают рабочее время, целую неделю было потрачено на настройку почтового сервера основываясь на данной статье. Пробовали фри 5.4 и 6.1

lissyara, 2006-05-17 в 16:14:33

Наберут Пэ-Тэ-Ушников по объявлению... :))
1. Чиать умеешь, про комментарии и форум для вопросов?
2. Включи отладку.
3. И без отладки скажу - а директории такие есть? Их экзим при отпраке первого письма создаёт. завёл юзера - отправь ему письмо.
4. На что ты неделю потратил? на копи-пасте, у меня самого (а статью я для себя писал - чтоб проще было) уходит минут 20, после чего всё работает.

имя, 2006-06-08 в 18:16:46

а у меня один баг вылез - после обновления до последней версии под фри-бсд - запускается, порт слушает но при попытке коннекта - обрывается - в логи ничего кроме lost input connection Connection closed by foreign host - не пишет - что деалть? exim -bd -d+all тоже выдает  Process 10418 is ready for new message и потом lost input connection
уже второй день бьюсь - все библиотеки и перлы пересобрал - все одно и то-же при чем на второй машине с этим-же конфигом все работает

DarkHost, 2007-08-28 в 13:17:55

Тю...а я-то думал, что наконец-то заработала нормально фича с PASSWD_CRYPT_FIELD, обрадовался.... :(

Maksim, 2008-01-13 в 12:46:25

А вот такой вопрос: у меня в mysql базе пароли зашифрованны sha, сейчас пока стоит dovecot как pop и imap сервер. Возможно ли в courier использовать шифрование?
Я сам конечно сейчас разберусь, только вот было бы хорошо и тут написать про шифрование.

majestic, 2008-04-03 в 0:48:35

relays.ordb.org : \
- надо убрать (http://www.opennet.ru/openforum/vsluhforumID3/40914.html)

Oleg, 2009-10-24 в 22:58:31

Делаю по инструкции запускаю exim -bV, получаю вот такую ощибку.
2009-10-24 05:45:25 Exim configuration error in line 43 of /usr/local/etc/exim/configure:
 main option "mysql_servers" unknown

Как быть?

lissyara, 2009-10-24 в 23:07:34

взять статью не из архива - линк есть вверху этой.
обсуждения закрыты.



 

  Этот информационный блок появился по той простой причине, что многие считают нормальным, брать чужую информацию не уведомляя автора (что не так страшно), и не оставляя линк на оригинал и автора — что более существенно. Я не против распространения информации — только за. Только условие простое — извольте подписывать автора, и оставлять линк на оригинальную страницу в виде прямой, активной, нескриптовой, незакрытой от индексирования, и не запрещенной для следования роботов ссылки.
  Если соизволите поставить автора в известность — то вообще почёт вам и уважение.

© lissyara 2006-10-24 08:47 MSK

Время генерации страницы 0.3288 секунд
Из них PHP: 51%; SQL: 49%; Число SQL-запросов: 62 шт.
Исходный размер: 66112; Сжатая: 16640