>Итак: FreeBSD - sendmail. В конфигурировании черт ногу сломит, чес слово :).
>Документации толковой нет. README скудный и какой-то обрывистый.
>Да и выбор POP/IMAP сервера от этого очевиднее не становится ;)
есть книги от O'Reilly - Sendmail
есть FAQ, есть RFC
1) настраивается DNS и MX для обслуживаемых зон - это независимо от
того какой MTA используется
2) на почтовом релее (MX) настраивается sendmail
общая конфигурация и последовательность FEATURE,DEFINE,MAILER,local_rule такова:
VERSIONID
OSTYPE
DOMAIN
FEATURE
local macro definitions
MAILER
LOCAL_CONFIG
LOCAL_RULE_*
LOCAL_RULESETS
есть некоторые исключения в порядке (например для procmail), берем
простой пример alone.dubna.ru.mc (конфигурация для личной станции):
#
# The best documentation for this .mc file is:
# /usr/src/contrib/sendmail/cf/README
#
#--lavr for alone.dubna.ru
# "dnl и #" - это комментарии
divert(0)dnl
#-- версия sendmail, можно заменить на что-то свое если нужно
VERSIONID(`$FreeBSD: src/etc/sendmail/freebsd.mc,v 1.10.2.2 2000/11/2021:17:28 lavr Exp $')
#-- OSTYPE=bsd4.4 устарело
dnl OSTYPE(bsd4.4)dnl
OSTYPE(freebsd4)
DOMAIN(generic)dnl
#-- релеинг только отдельных хостов, см. README по релеингу
# relay_entire_domain
FEATURE(relay_hosts_only)
dnl
dnl Lavr - use full e-mail address when use local-mail
dnl
#-- всегда добавлять имя домена, даже при локальной почте
FEATURE(always_add_domain)
#-- определение баз и метода их создания
FEATURE(mailertable, `hash -o /etc/mail/mailertable')dnl
FEATURE(access_db, `hash -o /etc/mail/access')dnl
FEATURE(virtusertable, `hash -o /etc/mail/virtusertable')dnl
dnl
#-- использование procmail
dnl FEATURE(local_procmail)
FEATURE(local_lmtp)
dnl
dnl LAVR - use blacklist for lock user via access.db
dnl
#-- использовать черный список для блокирование почты пользователей
# в файл access вносится USERNAME REJECT
FEATURE(blacklist_recipients)dnl
dnl
#-- не использовать стики-хост в случае mailertable!!!
FEATURE(stickyhost)dnl
dnl
#-- больше не поддерживаем uucp
FEATURE(nouucp,reject)
dnl
dnl Lavr - DNSBL is new replacement RBL, has many feature
dnl
#-- использование внешних баз для проверки спама, раскомментарить нужное
dnl FEATURE(`dnsbl')dnl
dnl ORDB Anti-Spam Database http://www.ordb.org/
dnl FEATURE(`dnsbl', `relays.ordb.org', `Spam bloked - see http://ordb.org/')dnl
FEATURE(`dnsbl', `relays.ordb.org', `Spam bloked - see http://ordb.org/')dnl
dnl ORBZ Anti-Spam Database http://orbz.org/sysadmin-lightside.php
FEATURE(dnsbl,`inputs.orbz.org', `Input Spam bloked - see http://orbz.org/')dnl
dnl uncomment below for filter output mail/lavr
dnl FEATURE(dnsbl,`outputs.orbz.org', `Output Spam bloked - see http://orbz.org/')dnl
dnl SPAMCOP - http://spamcop.net/bl.shtml
FEATURE(dnsbl,`bl.spamcop.net', `Spam blocked - see http://spamcop.net/bl.shtml?$&{client_addr}')dnl
dnl DNSBL - http://www.dnsbl.org/ - DNSbl
FEATURE(dnsbl,`ex.dnsbl.org', `Spam bloked - see http://www.dnsbl.org/')dnl
dnl OSIRUSOFT - http://relays.osirusoft.com/ - union anti-spam databases
dnl Five in One, see below
FEATURE(dnsbl, `relays.osirusoft.com', `Spam bloked - see http://relays.osirusoft.com/')dnl
dnl FEATURE(`dnsbl', `inputs.relays.osirusoft.com', `Spam bloked - see inputs.relays.osirusoft.com')
dnl FEATURE(`dnsbl', `dialups.relays.OsiruSoft.com', `Spam bloked - see dialups.relays.OsiruSoft.com')
dnl FEATURE(`dnsbl', `spamsites.relays.OsiruSoft.com', `Spam bloked - see spamsites.relays.OsiruSoft.com')
dnl FEATURE(`dnsbl', `spamhaus.relays.OsiruSoft.com', `Spam bloked - see spamhaus.relays.OsiruSoft.com')
dnl FEATURE(`dnsbl', `spews.relays.OsiruSoft.com', `Spam bloked - see spews.relays.OsiruSoft.com')
dnl
dnl Lavr - delay_checks, new feature for delay until CHECK rules done
dnl
#-- лучше закоментарить, есть вариант спама через эту задержку
dnl FEATURE(`delay_checks')
dnl
dnl Lavr - new feature, defaul - mail.local, second arg=path_to_mail.local
dnl
#-- использование возможности работы через LMTP
FEATURE(local_lmtp)dnl
dnl define(`LOCAL_MAILER_FLAGS', LOCAL_MAILER_FLAGS`'P)dnl
dnl
dnl Lavr - don't allow user@host.dubna.ru
dnl all outgoing mail should be user@dubna.ru
dnl converting ALL OLDER cntc.dubna.su to dubna.ru
dnl
#-- маскарадим все адреса как username@dubna.ru
MASQUERADE_AS(`dubna.ru')dnl
MASQUERADE_DOMAIN(`dubna.ru')dnl
MASQUERADE_DOMAIN(`cntc.dubna.su')dnl
FEATURE(`masquerade_entire_domain')dnl
dnl Lavr - do envelope e-mail address for has chance to see it
FEATURE(`masquerade_envelope')dnl
dnl
dnl Lavr - comment new filename relay and use common sendmail.cw
define(`confCW_FILE', `-o /etc/mail/local-host-names')dnl
dnl
dnl define(`confCW_FILE', `-o /etc/mail/sendmail.cw')dnl
dnl
dnl Lavr - don't allow EXPN,VRFY,RECEIPTS
dnl
#-- класс диагностики, запрет vrfy, etrn и тд и тп
define(`confPRIVACY_FLAGS', `authwarnings,noexpn,noetrn,novrfy,noreceipts')dnl
define(`confNO_RCPT_ACTION', `add-to-undisclosed')dnl
#-- запрет большого размера заголовков в письмах, чтобы спам не пролез
define(`confMAX_MIME_HEADER_LENGTH', `256/128')dnl
dnl
dnl Lavr - permit 8bit-body 8bit=pass8
dnl
define(`confEIGHT_BIT_HANDLING', `pass8')
dnl
dnl Lavr - set default Charset
dnl
dnl define(`confDEF_CHAR_SET', `koi8-r')
dnl
dnl Lavr - max-mail lenght in bytes
dnl
#-- максимальный размер письма
define(`confMAX_MESSAGE_SIZE', `1500000')
dnl
dnl Lavr - max recepients for any maillist
dnl
#-- максимальное количество адресов в rcpt to: антиспам
define(`confMAX_RCPTS_PER_MESSAGE', `25')
dnl
dnl Lavr - max sendmail-daemon processes, seems 70 must be enough
dnl
dnl define(`confMAX_DAEMON_CHILDREN', `70')
dnl
dnl Lavr - don't send mail if max-hop more than 20/25-default
dnl
define(`confMAX_HOP', `20')
dnl
dnl Lavr - max mail-queue 64 and refused after achived number 128
dnl
dnl define(`confQUEUE_LA', `64')
dnl define(`confREFUSE_LA', `128')
dnl
dnl Lavr - max new numbers connection at second
dnl
dnl define(`confCONNECTION_RATE_THROTTLE', `5')
dnl
dnl Lavr - ignore such security level as GROUP and WORLD writeable
dnl chmod go-w / /etc /etc/mail /usr /var /var/spool /var/spool/mqueue
dnl chown root / /etc /etc/mail /usr /var /var/spool /var/spool/mqueue
dnl
dnl 1. Allow .forward in Group-writeable DIRS:
dnl - O DontBlameSendmail=forwardfileingroupwritabledirpath
dnl 2. Allow .forward in both Group and World writeable
dnl - O DontBlameSendmail=forwardfileinunsafedirpath
dnl 3. Allow full-unsafe mode:
dnl - O DontBlameSendmail=forwardfileinunsafedirpath,
dnl forwardfileinunsafedirpathsafe
dnl
dnl DontBlameSendmail mode is very important for Majordomo use.
dnl
dnl define(`confDONT_BLAME_SENDMAIL', `forwardfileingroupwritabledirpath')
dnl
dnl Lavr - anti-spam sendmail prompt
dnl
define(`confSMTP_LOGIN_MSG',`$j Sendmail $v/$Z; $b\n"Use of this system for third party and non-authorized relaying is prohibited." ')
dnl
dnl Lavr - outgoing mail from inside-domain hosts must go via cntc.dubna.ru
dnl
#-- вся почта с alone будет валится на почтовый релей cntc.dubna.ru
define(`SMART_HOST', `cntc.dubna.ru')
dnl
MAILER(local)dnl
MAILER(smtp)dnl
все в точности по cf/README
еще один вариант (сделан для себя с комментариями):
http://unix1.jinr.ru/~lavr/webmail/sendmail_common.mc
еще одно незавершенное руководство:
http://unix1.jinr.ru/~lavr/webmail/webmail.html
http://gyro.hotbox.ru/sendmail/index.html - документация sendmail
http://unix1.jinr.ru/~lavr/avpdocs/avp3.html - есть примеры mc с короткими
комментариями
http://sendmail.by.ru/ - Sendmail FAQ по-русски и другие полезности
Кто ищет - тот найдет