Ковырялся с сабжем. Много чего интересного нашел. Доки "листал", даже читал :)
Но некоторых вещей не понял. Прошу старших и умных товарищей объяснить..
Итак...
Существуют 3(три) такие "карты", как /etc/mail/userdb, /etc/mail/virtusertable и /etc/mail/local_host_names. В чем их концептуальная разница? (кроме синтаксиса) Я - не разобрался. :( В конечном счете, (пока я так вижу) они выполняют почти одну и ту же функцию что и /etc/aliases Т.е. переправка с одного алиаса на другой алиас или email или в локальный ящик ( в случае с virtusertable я так понял, что там первым аргуметом (ключом) прописывается email или некий шаблон и сообщение передается уже на другой мейл(шаблон) ) Я попробовал прописать следующее:
---------------------------
/etc/mail/virtusertable
user1@mydoma.in user2
321@mydoma.in tst
--------------------------
/userdb
123:maildrop user2
-----------------------------
Затем:
%makemap hash /etc/mail/virtusertable < /etc/mail/virtusertable
%makemap btree /etc/userdb.db < /etc/userdb
kill -HUP SendmailPID <-- это ведь обязательно? Сендмейл вроде только /etc/sendmail.cf перечитывает при его изменении(?), хотя я в этом сомневаюсь, так что после изменения cf всегда kill -HUP говорю =)
Итак, после "kill -HUP" отправляю письмо на 123@mydoma.in и оно приходит в ящик user2. userdb - работает!
При отправке же письма user1@mydoma.in письмо кладется в ящик user1 (как и "положено"), а при отправке на 321@mydoma.in, вообще ругается, что нет такого пользователя. Т.е. получается что /etc/mail/virtusertable у меня не работает? Интересно почему, ведь в mc, по которому генерился cf-файл все прописано:
=========Вот мой config.mc=========
divert(-1)
include(../m4/cf.m4)
VERSIONID('$Id$')
OSTYPE(bsd4.4)dnl
define('confCOPY_ERRORS_TO', 'postmaster')
define(`SMTP_MAILER',`smtp8')dnl
define(`confUSERDB_SPEC',/etc/mail/userdb.db)
MAILER(local)
MAILER(smtp)
MAILER(pop)
FEATURE(`access_db')dnl
FEATURE(`blacklist_recipients')
FEATURE(`accept_unresolvable_domains')dnl
FEATURE(`accept_unqualified_senders')dnl
FEATURE(`relay_entire_domain')dnl
FEATURE(`virtusertable')dnl
=====================================
А про local_host_names - я так понял - это база доступных адресов (алиасов), а вот чем она от userdb крнцептуально опять таки отличается? Вроде бы тоже самое (очень похоже)
Кстати, пока с эти всем ковырялся назрел вопрос: а как сделать так, чтобы не заводя пользователей в системе принимать почту на некоторое множество адресов, заданное регулярным выражением..
(все варианты не будешь ведь перечислять в local_host_names или access_db :)
Потом эти письма, я так понимаю через procmail разпихать "куда следует", вроде не проблема..
Сорри, что путано.. Но хочется "прояснения"...