Добрый день.В системе установлено:
sendmail 8.13.3
cyrus-imapd-2.1.18_1
cyrus-sasl-2.1.22
cyrus-sasl-saslauthd-2.1.22конфиг sendmail.mc
//------------------------------------
divert(0)
VERSIONID(`$FreeBSD: src/etc/sendmail/freebsd.mc,v 1.29 2003/12/24 21:15:09 gshapiro Exp $')
OSTYPE(freebsd5)
DOMAIN(generic)FEATURE(access_db, `hash -o -T<TMPF> /etc/mail/access')
FEATURE(blacklist_recipients)
FEATURE(local_lmtp)
FEATURE(mailertable, `hash -o /etc/mail/mailertable')
FEATURE(virtusertable, `hash -o /etc/mail/virtusertable')dnl Uncomment the first line to change the location of the default
dnl /etc/mail/local-host-names and comment out the second line.
dnl define(`confCW_FILE', `-o /etc/mail/sendmail.cw')
define(`confCW_FILE', `-o /etc/mail/local-host-names')dnl Enable for both IPv4 and IPv6 (optional)
DAEMON_OPTIONS(`Name=IPv4, Family=inet')
dnl DAEMON_OPTIONS(`Name=IPv6, Family=inet6, Modifiers=O')define(`confAUTH_OPTIONS', `A')dnl
TRUST_AUTH_MECH(`DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
define(`confAUTH_MECHANISMS', `DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnldefine(`confBIND_OPTS',`-DNSRCH -DEFNAMES')
define(`confTO_IDENT',`0')
FEATURE(`nocanonify')
FEATURE(`always_add_domain')define(`confLOG_Level', `15')
define(`confDOUBLE_BOUNCE_ADDRESS', `')define(`confBIND_OPTS', `WorkAroundBrokenAAAA')
define(`confNO_RCPT_ACTION', `add-to-undisclosed')
define(`confPRIVACY_FLAGS', `authwarnings,noexpn,novrfy')
MAILER(local)
MAILER(smtp)define(`confLOCAL_MAILER',`cyrusv2')
define(`CYRUS_MAILER_PATH',`/usr/local/cyrus/bin/deliver')
MAILER(`cyrusv2')
//------------------------------------Проблема в следующем: когда приходит письмо не существующему пользователю sendmail принимает его, и только потом генерит отлуп.
Для примера письмо приходил для пользователя fakeuser@domain.tld
Проверим, будет ли оно приниматься
domain# sendmail -bv fakeuser@domain.tld
fakeuser@domain.tld... deliverable: mailer cyrusv2, user fakeuserОк, в логах пишется что письмо принялось и отправлено майлеру, после чего майлер cyrus отвечает что user unknown.
Sep 6 12:06:12 domain sm-mta[87853]: l86868nx087851: to=<fakeuser@domain.tld>, delay=00:00:01, xdelay=00:00:00, mailer=cyrusv2, pri=32966, relay=loca
lhost, dsn=5.1.1, stat=User unknownПосле этого sendmail пытается известить отправителя о том что такого пользователя нет в системе. Но по большому счету все письма на которые он отвечает это спам, и естественно их никто не получит. В связи с этим скапливается ОЧЕНЬ БОЛЬШАЯ чередь недоставленых сообщений.
Как с этим боротся ?
Как заставить сендмайл проверять пользвателей во время коннекта ?Большое спасибо.
>Как с этим боротся ?
>Как заставить сендмайл проверять пользвателей во время коннекта ?Ищите sendmail socket map smmapd .
Это позволит sendmail обращаться к cyrus-imapd на предмет
наличия того или иного imap почтового ящика./usr/local/etc/cyrus.conf :
smmapd cmd="smmapd" listen="/var/imap/socket/smmapd" prefork=1
/etc/make.conf :
SENDMAIL_CFLAGS+= -DSOCKETMAP
P.S. Не забудьте также, что есть другие переобразования адресов , которые
Вы должны учесть (virtusertable , aliases и т.д.).
>[оверквотинг удален]
>/usr/local/etc/cyrus.conf :
>
>smmapd cmd="smmapd" listen="/var/imap/socket/smmapd" prefork=1
>
>/etc/make.conf :
>
>SENDMAIL_CFLAGS+= -DSOCKETMAP
>
>P.S. Не забудьте также, что есть другие переобразования адресов , которые
>Вы должны учесть (virtusertable , aliases и т.д.).Спасибо!
Но данная версия cyrus-imapd не содержит smmapd
если ставить более свежую то она тянет за собой новую DB, боюсь как бы пользователи не слетели.Как считаете, можно модернизировать вот это под мои нужды ?
http://www.unixfaq.ru/index.pl?req=qs&id=230
>Но данная версия cyrus-imapd не содержит smmapd
>если ставить более свежую то она тянет за собой новую DB, боюсь
>как бы пользователи не слетели.
>
>Как считаете, можно модернизировать вот это под мои нужды ?
>http://www.unixfaq.ru/index.pl?req=qs&id=230Как идею, использовать можно.
Только список бюджетов в sasldb, в общем случае,
не совпадает с количеством и именами imap ящиков.
Используйте ctl_mboxlist -d для получения списка imap ящиков.
Из этого списка можно сделать hash базу для sendmail .
Если добавляете или удаляете imap ящик , то перестраиваете сразу и
hash базу для sendmail .
Вот еще два патча Andrzej Filip, может пригодится
http://anfi.homeunix.net/sendmail/rtcyrus2.html
http://anfi.homeunix.net/sendmail/cyrusv2.htmlИ мб проще всего записать всех получателей в access, c последующим отлупом всем остальным?
>Вот еще два патча Andrzej Filip, может пригодится
>http://anfi.homeunix.net/sendmail/rtcyrus2.html
>http://anfi.homeunix.net/sendmail/cyrusv2.html
>
>И мб проще всего записать всех получателей в access, c последующим отлупом
>всем остальным?Патчи видел, увы они тоже расчитаны на smmapd которого сейчас нет.
Спасибо.
Так и сделал через access.db#cat access
localhost.localdomain RELAY
localhost RELAY
127.0.0.1 RELAY
To:pix@domain.tld OK
To:info@domain.tld OK
To:bel@domain.tld OK
To:smol@domain.tld OK
To:hab@domain.tld OK
To:par@domain.tld OK
To:gerdo@domain.tld OK
To:volkov@domain.tld OK
To:domain.tld OK REJECTможет чтото еще надо добавить ?
>[оверквотинг удален]
>To:info@domain.tld OK
>To:bel@domain.tld OK
>To:smol@domain.tld OK
>To:hab@domain.tld OK
>To:par@domain.tld OK
>To:gerdo@domain.tld OK
>To:volkov@domain.tld OK
>To:domain.tld OK REJECT
>
>может чтото еще надо добавить ?На первый взгляд, все ОК,
ну разве что OK в последней строке лишний