URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 89104
[ Назад ]

Исходное сообщение
"sendmail+dspam+dbmail(LMTP), доставка в виртуальные ящики"

Отправлено wawont , 08-Июн-10 15:08 
Добрых вам мыслей и интересных идей.

Вяжу связку из трёх sendmail+dspam+dbmail...

Ситуация:

sendmail+dspam
почта проверяется(dspam отрабатывает) и доставляется(в mailbox)

sendmail+dbmail
почта доставляется(т.е. виртуальные почтовые ящики работают)

sendmail+dspam+dbmail
учётная запись есть в системе и в dbmail одноимённая:
почта проверяется(dspam отрабатывает) и доставляется(через dbmail)
виртуальный почтовый ящик(только в dbmail): почта не принимается.
maillog:
Jun  8 17:10:06 ns1 sm-mta[45877]: o58AA6sm045877: <test@mydomain.ru>... User unknown

Где загвоздка? хотелось бы чтобы последний случай отрабатывал и доставлял почту в виртуальный ящик.

Вот ещё: если я удаляю флаг F=w в Mlocal правиле sendmail.cf, то почта попадает в dbmail базы,
но нет уведомления не отправителя ни postmaster если отправляется на несуществующий ящик...
почта просто сваливается postmaster-у.

Это конечно не устраивает, но говорит о том что отлуп делает именно sendmail,
как научить эту связку проверять ящик в dbmail?

Кроме этого, но к делу похоже не имеет отношения в maillog после обращения к sendmail появляются строчки:
Jun  8 17:48:08 ns1 sm-mta[64657]: NOQUEUE: Warning: mailer local: LMTP flag (F=z) turned off
Jun  8 17:48:08 ns1 dspam[64658]: Ignoring disallowed preference 'dailyQuarantineSummary'

Первая строка лога вроде так и должно быть, ведь НЕ sendmail доставляет почту, а dbmail... или я ошибаюсь?
Опция dailyQuarantineSummary в dspam.conf отсутствует! Почему, откуда ноги растут?

Благодарю, за разумные ответы!

Версии программ и конфиги:

FreeBSD 8.0-STABLE-201001

# /usr/local/sbin/sendmail -bt -d0.1
Version 8.14.4
Compiled with: DNSMAP LOG MAP_REGEX MATCHGECOS MILTER MIME7TO8 MIME8TO7
        NAMED_BIND NETINET NETUNIX NEWDB NIS PIPELINING SCANF
        TCPWRAPPERS USERDB XDEBUG
...
# /usr/local/bin/dspam --version

DSPAM Anti-Spam Suite 3.9.0 (agent/library)

Copyright (c) 2002-2009 DSPAM Project
http://dspam.sourceforge.net.

DSPAM may be copied only under the terms of the GNU General Public License,
a copy of which can be found with the DSPAM distribution kit.

Configuration parameters:  '--sysconfdir=/usr/local/etc' '--with-logdir=/var/log/dspam' '--with-dspam-home=/var/db/dspam' '--with-dspam-home-owner=dspam' '--with-dspam-home-group=dspam' '--with-dspam-home-mode=0770' '--with-dspam-owner=dspam' '--with-dspam-group=dspam' '--enable-syslog' '--enable-debug' '--enable-preferences-extension' '--enable-daemon' '--with-mysql-includes=/usr/local/include/mysql' '--with-mysql-libraries=/usr/local/lib/mysql' '--enable-client-compression' '--with-storage-driver=mysql_drv' '--enable-external-lookup' '--enable-virtual-users' '--enable-long-usernames' '--enable-large-scale' '--with-delivery-agent=/usr/sbin/sendmail' '--with-dspam-mode=4511' '--enable-logging' '--enable-user-logging' '--prefix=/usr/local' '--mandir=/usr/local/man' '--infodir=/usr/local/info/' '--build=amd64-portbld-freebsd8.0' 'build_alias=amd64-portbld-freebsd8.0' 'CC=cc' 'CFLAGS=-pipe -g -DLDAP_DEPRECATED ' 'LDFLAGS=-L/usr/local/lib' 'LIBS=-L/usr/local/lib -pthread' 'CPPFLAGS= -I/usr/local/include' 'CXX=c++' 'CXXFLAGS=-pipe -g -DLDAP_DEPRECATED'

# /usr/local/sbin/dbmail-smtp -V
This is DBMail version 2.2.11

КОНФИГИ:
sendmail.mc
=================
OSTYPE(freebsd6)dnl
DOMAIN(generic)dnl
MASQUERADE_AS(`mydomain.ru')dnl

FEATURE(mailertable, `hash -o /etc/mail/mailertable')dnl
FEATURE(virtusertable, `hash -o /etc/mail/virtusertable')dnl

FEATURE(access_db)dnl
FEATURE(local_lmtp)dnl

define(`confCW_FILE', `-o /etc/mail/local-host-names')dnl
define(`_FFR_MILTER',1)

define(`LOCAL_MAILER_PATH', `/usr/local/bin/dspam')dnl
define(`LOCAL_MAILER_ARGS', `dspam -t -Y -a $h "--deliver=innocent" --user $u -d %u')dnl

MAILER(`local')dnl
MAILER(`smtp')dnl
MAILER(`dbmail')dnl
MAILER(`dbmail-lmtp')dnl
=================

dspam.conf не полный, только имеющее отношение
=================
Home /var/db/dspam

StorageDriver /usr/local/lib/dspam/libmysql_drv.so

DeliveryHost        127.0.0.1
DeliveryPort        24
DeliveryIdent       localhost
DeliveryProto       LMTP
...
Opt out

ServerPID       /var/run/dspam/dspam.pid

ServerMode auto

ServerParameters       "--deliver=innocent,spam"
ServerIdent            "dspam.localdomain"

ServerDomainSocketPath  "/var/run/dspam/dspam.sock"

ProcessorURLContext on

ProcessorBias on

StripRcptDomain off

=================



Содержание

Сообщения в этом обсуждении
"sendmail+dspam+dbmail(LMTP), доставка в виртуальные ящики"
Отправлено wawont , 09-Июн-10 15:25 
>Вот ещё: если я удаляю флаг F=w в Mlocal правиле sendmail.cf, то почта попадает в dbmail базы,
>но нет уведомления не отправителя ни postmaster если отправляется на несуществующий ящик...
>почта просто сваливается postmaster-у.
>
>Это конечно не устраивает, но говорит о том что отлуп делает именно
>sendmail,
>как научить эту связку проверять ящик в dbmail?

Как не крути, а dspam не умеет проверять виртуальные почтовые ящики
В общем настроил так "w" всётаки удаляю, остальное через:
FEATURE(access_db)dnl
FEATURE(blacklist_recipients)dnl
т.е.
access ~
=======
To:virtuser0@                    OK
To:virtuser1@                    OK
...
To:virtuserN@                    OK

To:mydomain.ru                   ERROR:"550 User unknown"

Не кашерно, но работает... дальше думаем как написать правило на рулсет для проверки пользователя в не локальной базе(passwd). Может кто писал... или видел где примерчик?


"sendmail+dspam+dbmail(LMTP), доставка в виртуальные ящики"
Отправлено wawont , 09-Июн-10 15:47 

>Вот ещё: если я удаляю флаг F=w в Mlocal правиле sendmail.cf, то
>почта попадает в dbmail базы,
>но нет уведомления не отправителя ни postmaster если отправляется на несуществующий ящик...

Как это самое "w" в Mlocal вынести(из sendmail.cf) с помощью записей в sendmail.mc?


"sendmail+dspam+dbmail(LMTP), доставка в виртуальные ящики"
Отправлено Sciurus , 10-Июн-10 16:02 
>Как это самое "w" в Mlocal вынести(из sendmail.cf) с помощью записей в
>sendmail.mc?

Или с помощью опции
LOCAL_MAILER_FLAGS    [Prmn9] The flags used by the local mailer.  The
            flags lsDFMAw5:/|@q are always included.
перечисляете весь список, какой вам нужен:
define(`LOCAL_MAILER_FLAGS',`lsDFMA5:/|@q')

ИЛи с.п. MODIFY_MAILER_FLAGS(`LOCAL', `-w')
удаляете из списка по умолчанию одно значение

Note: to tweak Name_MAILER_FLAGS use the macro MODIFY_MAILER_FLAGS:
MODIFY_MAILER_FLAGS(`Name', `change') where Name is the first part
of the macro Name_MAILER_FLAGS (note: that means Name is entirely in
upper case) and change can be: flags that should be used directly
(thus overriding the default value), or if it starts with `+' (`-')
then those flags are added to (removed from) the default value.
Example:

    MODIFY_MAILER_FLAGS(`LOCAL', `+e')

will add the flag `e' to LOCAL_MAILER_FLAGS.  Notice: there are
several smtp mailers all of which are manipulated individually.
See the section MAILERS for the available mailer names.



"sendmail+dspam+dbmail(LMTP), доставка в виртуальные ящики"
Отправлено Sciurus , 10-Июн-10 16:13 
Попоравочка: учитывая то, что "The flags lsDFMAw5:/|@q are always included. "
в вашем слчае лучше исп-ть MODIFY_MAILER_FLAGS

>Или с помощью опции
>LOCAL_MAILER_FLAGS [Prmn9] The flags used by the local mailer.  The
>   flags lsDFMAw5:/|@q are always included.
>перечисляете весь список, какой вам нужен:
>define(`LOCAL_MAILER_FLAGS',`lsDFMA5:/|@q')