ОС FreeBSD 7.0
Cyrus IMAP 2.3
Sendmail 8.14.2Народ это фича или я что-то не так настроил ?
Собрал связку Sendmail+Cyrus+Mysql. Cyrus (как и sendmail) для аутентификации пользуется SASL который в свою очередь использует MySQL. Все отлично работает. Только фича в том, что если Sendmail поросить принять письмо на несуществующего пользователя, он его примет :(. И только после пошлет отправителю отдельное письмо c текстом "User unknow". Так и должно быть? ведь когда используется локальный майлер то ответ "User unknow" виден еще на этапе tcp сессии.== пример tcp сиссия с попыткой послать письмо несуществующему пользователю user3@xxx.com ===
dragon@giperion# telnet 80.92.XX.XX 25
Trying 80.92.102.212...
220 mx.xxx.com ESMTP Welcome ready at Mon, 22 Sep 2008 18:01:47 +0400 (MSD)
MAIL FROM: skrylov@yyy.ru
250 2.1.0 skrylov@yyy.ru... Sender ok
RCPT TO: user3@xxx.com
250 2.1.5 user3@xxx.com... Recipient ok
DATA
354 Enter mail, end with "." on a line by itself
hi 4
.
250 2.0.0 m8ME1lkC014267 Message accepted for delivery
да, есть такое в связке sendmail+cyrusрешение от Andrzej Filip
http://jmaimon.com/sendmail/anfi.homeunix.net/sendmail/#cyrus
это старый ресурс
новый - здесь
http://open-sendmail.sourceforge.net/
Помучившись с установкой указаного патча я нашел еще одно решение для владельцев FreeBSD.
Решение лежит прямо под носом :), в портах уже всё есть для исправления этой фичи, см. файл /usr/ports/mail/sendmail/files/CYRUS_LOOKUP
кто автор этого решения?(у меня не FreeBSD, поэтому посмотреть у себя не смогу)
>кто автор этого решения?
>
>(у меня не FreeBSD, поэтому посмотреть у себя не смогу)Автор Michael O. Boev, ниже текст инструкции
root@mx# cat /usr/ports/mail/sendmail/files/CYRUS_LOOKUPCYRUS MAILBOX LOOKUP FOR SENDMAIL
---------------------------------You have enabled modifications for sendmail for looking up
whether a cyrus (2.2.3+) mailbox exists and is under quota
before accepting any mail to be relayed to cyrus.They are based on the idea and work by
Andrzej Filip, http://anfi.homeunix.net/sendmail/rtcyrus2.html
and
Mike Boev, http://tric.ru/users/mike/ckuser_cyrus/Please, use these urls to learn all configuration details
(although a quick recipe is provided below) and may be to give
credits to the authors.
******************************************************************
IMPORTANT:
Now that the mrs_cyrus.m4 has been updated, you may need to adjust
the modifications you made to your .mc file if you used the old one!
See http://anfi.homeunix.net/sendmail/rtcyrus2.html for current
installation instructions.
******************************************************************HOW TO :
---------0. Build the `mail/sendmail' sendmail port with
SENDMAIL_WITH_SOCKETMAP=yes SENDMAIL_WITH_CYRUSLOOKUP=yes
This is what you've just obviously done, unless you are just browsing the
ports tree. To stick with these settings, you can place something like
the following in your `/etc/make.conf'.PORTSDIR?= /usr/ports
.if ${.CURDIR} == ${PORTSDIR}/mail/sendmail
SENDMAIL_WITH_CYRUSLOOKUP= yes
SENDMAIL_WITH_SOCKETMAP= yes
# possibly other sendmail knobs here too.
.endifYou should have also installed and configured Cyrus IMAP server,
version 2.2.3 or higher. Not the worst idea is to utilize the
`mail/cyrus-imapd22' port.1. Insert the following lines to the SERVICES sections of `cyrus.conf'.
By default, the port installs it to `/usr/local/etc'.# Sendmail socket map smmapd(8)
smmap cmd="smmapd" listen="/var/imap/socket/smmapd" prefork=0A SIGHUP would make the Cyrus master(8) process catch this change
on-the-fly. Please, also note, that if sendmail and cyrus run on
separate machines, you will obviously need to modify this line
and a couple of others.2. As per the `install-configure' from Cyrus IMAP server's documentation,
in the simplest case, you added:define(`confLOCAL_MAILER', `cyrusv2')dnl
MAILER(`cyrusv2')dnlto your sendmail's .mc file to make local delivery to Cyrus mailboxes.
Now, simply add (somewhere near other FEATURES, before MAILER lines):FEATURE(`ckuser_cyrus')dnl
for sendmail to start rejecting local addresses for nonexisting and
full mailboxes. Rebuild your sendmail.cf, restart sendmail, and enjoy!If your configuration is more complicated than just defining Cyrus
as your local mailer, read Andrzej's article. It covers more of the
other cases.******************************************************************
2004, September 16th
Michael O. Boev,
mike@tric.ru.
спасибо за инфу
второй автор мне был не известен,
буду иметь в виду этого sendmail-гуру и его решения
>[оверквотинг удален]
>(MSD)
>MAIL FROM: skrylov@yyy.ru
>250 2.1.0 skrylov@yyy.ru... Sender ok
>RCPT TO: user3@xxx.com
>250 2.1.5 user3@xxx.com... Recipient ok
>DATA
>354 Enter mail, end with "." on a line by itself
>hi 4
>.
>250 2.0.0 m8ME1lkC014267 Message accepted for deliveryЭто происходит от того, что когда пользователи системные, то sendmail знает всех получателей (/etc/passwd), в случае cyrus у него нет базы данных локальных получателей
for Medlar и Vitaly
Большое Вам спасибо. Очень приятно видеть такие развернутые ответы.
Senadmail до сих пор не может работать с smmapd без "патчивания"?