Доброго времени суток. Помогите разобраться пожалуйста с Sendmail. уже давно мучаюсь, не получаться никак.Система Debian 5.0
есть локальный домен company.local
есть зарегистрированный домен company.com
почтовый сервер mail.company.local поставил за натом и пробросил 25-й порт.sendmail, как я понял должен работать так - запрещен любой релей без аутентификации, это ведь подразумевает что почта направленная на user@company.com приходит без аутентификации и должна переходить в dbmail-lmtp.
так же установил sasl и настроил его смотреть пользователей в базе mysql.настраиваю так:
- в ассеss оставил только релей для 127.0.0.1
- local-host-names - пустой
- mailertable: company.com dbmail-lmtp:[127.0.0.1]
- alias не трогал, ведь почтой должен заниматься dbmail.
- создал файлы dbmail.m4 dbmail-lmtp.m4, они в нете везде одинаковые предлагаються.sendmail.mc:
define(`_USE_ETC_MAIL_')dnl
include(`/usr/share/sendmail/cf/m4/cf.m4')dnl
VERSIONID(`$Id: sendmail.mc, v 8.14.3-5 2008-07-15 22:30:00 cowboy Exp $')
OSTYPE(`debian')dnl
DOMAIN(`debian-mta')dnl
undefine(`confHOST_STATUS_DIRECTORY')dnl
FEATURE(`no_default_msa')dnlDAEMON_OPTIONS(`Family=inet, Name=MTA-v4, Port=smtp')dnl
define(`confPRIVACY_FLAGS',dnl
`needmailhelo,needexpnhelo,needvrfyhelo,restrictqrun,restrictexpand,nobodyreturn,authwarnings')dnl
define(`confCONNECTION_RATE_THROTTLE', `15')dnl
define(`confCONNECTION_RATE_WINDOW_SIZE',`10m')dnl
FEATURE(`access_db', , `skip')
FEATURE(`greet_pause', `1000')
TRUST_AUTH_MECH(`DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
define(`confAUTH_MECHANISMS', `DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
define(`confLOG_LEVEL',21)dnl
FEATURE(`mailertable')dnl
FEATURE(`delay_checks', `friend', `n')dnl
define(`confDELIVERY_MODE',`background')dnl
define(`confMIN_QUEUE_AGE',`31m')dnl
define(`confTO_IDENT',`1s')dnl
define(`confBAD_RCPT_THROTTLE',`3')dnl
FEATURE(`conncontrol', `nodelay', `terminate')dnl
FEATURE(`ratecontrol', `nodelay', `terminate')dnlMAILER_DEFINITIONS
MAILER(`local')dnl
MAILER(`smtp')dnl
MAILER(`dbmail')dnl
MAILER(`dbmail-lmtp')dnlИ тут возникает сложность. когда отправляю почту на user@company.com с the bat например с использованием smtp-auth почта нормально приходит и ее подхватывает dbmail-lmtp. А вот любой другой почтовик не может мне ее отправть, sendmail пишет Relaying denied. Proper authentication required.
А когда я добавляю в sendmail.mc любую из строк:
define(`confDOMAIN_NAME', `company.com')dnl
или
Cwcompany.com
Cmcompany.com
Ckcompany.com
Djcompany.comsenmdail сразу понимает что это почта локальная, принимает без аутентификации НО использует mailer=local, проверяет aliases и доставляет ее в /var/spool/mail/$u
тоесть я не могу заставить его использовать dbmail.
.. довольно долго ковырял конфиги, пробовал делать это все для company.local без выхода в интернет. одно и то же. итого:
почта или всегда воспринимает локальные адреса как релей и требует аутентификации, но потом кладет ее в dbmail.
или принимает почту на user@company.com нормально, но не хочет использовать dbmail, а использует mailer=local.
Может кто-то сможет подсказать что я не увидел или где ошибся. Спасибо!
>senmdail сразу понимает что это почта локальная, принимает без аутентификации НО использует
> mailer=local, проверяет aliases и доставляет ее в /var/spool/mail/$u
>тоесть я не могу заставить его использовать dbmail.
>.. довольно долго ковырял конфиги, пробовал делать это все для company.local без
>выхода в интернет. одно и то же. итого:
>почта или всегда воспринимает локальные адреса как релей и требует аутентификации, но
>потом кладет ее в dbmail.
>или принимает почту на user@company.com нормально, но не хочет использовать dbmail, а
>использует mailer=local.
> Может кто-то сможет подсказать что я не увидел или где ошибся.Ошибка в правиле "0" конфигурации sendmail. Неправильно выбирается mailer=local .
Необходимо добавить в конфигурациюLOCAL_RULE_0
Ruser1 < @ $=w . > $: $#local $: $1
....
Остальных в ваш dbmail-lmtp отправить. Извиняюсь, dbmail-lmtp не юзал,
но аналогичных примеров много для cyrus imap на этом форуме:
http://www.opennet.me/openforum/vsluhforumID1/25610.html
http://www.opennet.me/openforum/vsluhforumID1/33277.html
>[оверквотинг удален]
>Необходимо добавить в конфигурацию
>
>LOCAL_RULE_0
>Ruser1 < @ $=w . > $: $#local $: $1
>....
>Остальных в ваш dbmail-lmtp отправить. Извиняюсь, dbmail-lmtp не юзал,
>но аналогичных примеров много для cyrus imap на этом форуме:
>http://www.opennet.me/openforum/vsluhforumID1/25610.html
>http://www.opennet.me/openforum/vsluhforumID1/33277.html
>Спасибо, это помогло, даже не подумал что нужно будет рулсет дописывать. пока сделал так.
в sendmail.mc:define(`confDOMAIN_NAME', `company.com')dnl
LOCAL_RULE_0
R$=N $: $#local $: $1
R$=N < @ $j . > $: $#local $: $1
R$* < @ $j . > $#dbmail-lmtp $@ $: $1
LOCAL_CONFIG
FN /etc/mail/sendmail.cNв файле sendmail.cN указал то что по дефолту перечислено в aliases, теперь root postmaster etc.. обрабатываться mailer=local, все остальное dbmail-lmtp
и там еще выскакивала ошибка 554 5.3.5 buildaddr: no host
прочитал тут http://my.safaribooksonline.com/1565928393/ch20-77173
и в dbmail.m4 добавил к флагам "l" (lowercase L).
> LOCAL_RULE_0
> R$=N $: $#local $: $1
> R$=N < @ $j . > $: $#local $: $1
> R$* < @ $j . > $#dbmail-lmtp $@ $: $1
> LOCAL_CONFIG
> FN /etc/mail/sendmail.cN
> в файле sendmail.cN указал то что по дефолту перечислено в aliases, теперь
> root postmaster etc.. обрабатываться mailer=local, все остальное dbmail-lmtp_ЗАДАЧКА_
Подскажите почему не работает?
Всё тоже кроме,
4 строку меняем на: R$~N < @ $j . > $#dbmail-lmtp $@ $: $1
Что как я понимаю должно звучать так:
"Все кто не в классе N и с доменом $j обрабатываются dbmail-lmtp