Добрых вам мыслей и интересных идей.Вяжу связку из трёх 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 --versionDSPAM 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')dnlFEATURE(mailertable, `hash -o /etc/mail/mailertable')dnl
FEATURE(virtusertable, `hash -o /etc/mail/virtusertable')dnlFEATURE(access_db)dnl
FEATURE(local_lmtp)dnldefine(`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')dnlMAILER(`local')dnl
MAILER(`smtp')dnl
MAILER(`dbmail')dnl
MAILER(`dbmail-lmtp')dnl
=================dspam.conf не полный, только имеющее отношение
=================
Home /var/db/dspamStorageDriver /usr/local/lib/dspam/libmysql_drv.so
DeliveryHost 127.0.0.1
DeliveryPort 24
DeliveryIdent localhost
DeliveryProto LMTP
...
Opt outServerPID /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
=================
>Вот ещё: если я удаляю флаг 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@ OKTo:mydomain.ru ERROR:"550 User unknown"
Не кашерно, но работает... дальше думаем как написать правило на рулсет для проверки пользователя в не локальной базе(passwd). Может кто писал... или видел где примерчик?
>Вот ещё: если я удаляю флаг F=w в Mlocal правиле sendmail.cf, то
>почта попадает в dbmail базы,
>но нет уведомления не отправителя ни postmaster если отправляется на несуществующий ящик...Как это самое "w" в Mlocal вынести(из sendmail.cf) с помощью записей в sendmail.mc?
>Как это самое "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.
Попоравочка: учитывая то, что "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')