Информационные технологииStfw.Ru 🔍

Как я настраивал smail

🕛 27.10.2006, 12:38
Copyright(C) by K&K 2:5054/69 aka cola@tcsb.perm.su 23.05.97

Как я настраивал smail!
Дано : 2 сервера под Linux : server.tcsb.perm.su tcsb.perm.su Примечания : kernel 2.0.30 smail 3.1.29
Пользователи : Отдел маркетинга, сетевой отдел, начальники. Примечание: Все пользователи работают под Windows95 ;) 1 сервер у меня дома : cola.tcsb.perm.su 1 сервер в банке : bank.perm.su 1 сервер провайдера uucp: cclern.perm.su
Необходимо : Отдавать принимать почту: - у провайдера uucp (Все пользователи) - у сберегательного банка (все пользователи) - у сервера cola.tcsb.perm.su - Возможно у других серверов xxxx.tcsb.perm.su (buh,versia)
Файл конфигурации config на tcsb.perm.su

#
# Конфигурационный файл smail для tcsb.perm.su
# (Смотрите smail(5) man для получения полной информации)
#
+smtp_debug # Отладочная информация для smtp
spool_mode=400 # Файлы в спул ложаться в таком режиме
max_message_size=500k # Максимальный размер сообщения

hostname=tcsb.perm.su:tcsb:f69.n5054.z2.fidonet.org # Все допустимые # имена данного хоста
visible_domain=tcsb.perm.su #
more_hostnames=f69.n5054.z2.fidonet.org #

+error_copy_postmaster # Сообщения об ошибкак отсылать на # адрес postmaster

postmaster_address=cola@tcsb.perm.su #адрес postmaster
uucp_name=tcsb.perm.su # UUCP-имя для данного хоста
smart_path=cclearn # Все что не предназначено для
# определенных хостов cola,bank и т.д. # будет падать на cclearn (Имеется ввиду # что адреса правильные , если адреса не правильные # то сообщение вернется назад

smart_transport=uux # для smartdrive использовать транспорт # uux . То есть все сообщения отправляемые на # smart_path будут отправлятся с помощью uux
#
auth_domain=tcsb.perm.su # Главной целью этой переменной дать список # доменов , которые не будут соответствовать # smarthost router driver

- Файл var/lib/smail/directors
Отвечает за доставку почты на локальные адреса.
# smail directors
#
# Ниже приведенные два драйвера будут брать
# из всех файлов псевдонимов (типа /usr/lib/aliases)
# строчки :include:filename
# после чего будут обрабатывать список адресов , записанных в
# этом файле filename
#
aliasinclude: driver = aliasinclude, # use this special-case driver nobody; # Когда доставка идет в файл # или когда вызывается программа, # взятая из алиас файла, то smail запускается с UID nobody copysecure, # get permissions from alias director copyowners, # get owners from alias director
# forwardinclude - expand ":include:filename" addrs produced by forward files
forwardinclude: driver = forwardinclude, # use this special-case driver nobody; # смотри выше.
copysecure, # get perms from forwarding director copyowners, # get owners from forwarding director

# aliases - Ищет для алиаса расширение записаное в базе
# Это стандартный алиас файл. Используется для переапределения адресов
# root, postmaster, MAILER-DAEMON
# this site configuration, the aliases file is used mostly for
# machine-specific aliasing/forwarding information.
# Глобальный форвардинг должен быть установлен
# в файле "forward" database.
aliases: driver = aliasfile, # general-purpose aliasing director -nobody, # all addresses are associated # with nobody by default, so setting # this is not useful. owner = owner-$user; # Проблемы отсылать владельцу # алиас файла file = /usr/lib/aliases, # Сам алиас файл modemask = 002, # маска доступа # Данный алиас файл не должен # иметь доступ для "Всего мира" proto = lsearch, # Использовать линейный поиск

# Мой файл /usr/lib/aliases
#+++++++++++++++++++++++++++ Cut here +++++++++++++++++++
# Note: if your /usr/lib/smail/directors says that the aliases
# director uses proto=dbm, you must use mkaliases to make
# /usr/lib/aliases.pag and /usr/lib/aliases.dir, which are the
# actual files used by smail.
# If you use proto=lsearch, smail will read this file. (That's
# much slower but it's OK if this file is small.)
postmaster:cola@tcsb.perm.su
webmaster:postmaster
hostmaster:postmaster
usenet:postmaster
root:cola@tcsb.perm.su

# Всем ниже перечисленым пользователям
# переправлять почту на сервер server.tcsb.perm.su,
# Где они ее читают пишут с помощью POP3/SMTP :)
# На server.tcsb.perm.su Установлены соответствующие службы
# Ну не хочу я иметь аккаунты на своей машине :))
#
alex:alex@server.tcsb.perm.su
alexsc:alexsc@server.tcsb.perm.su
denn:denn@server.tcsb.perm.su
ola:ola@server.tcsb.perm.su
marina:marina@server.tcsb.perm.su
maksim:maksim@server.tcsb.perm.su
mike:mike@server.tcsb.perm.su
dima:dima@server.tcsb.perm.su
svl:svl@server.tcsb.perm.su
andrey:andrey@server.tcsb.perm.su
#
# Фидо узлы !
#
Пропущены ...
#+++++++++++++++++++++++++++ end cut ++++++++++++++++++++++++++++

# forward - search for expansions stored in a forwarding database
# This is the subdomain-wide user forwarding database. Entries are
# maintained here for current or past users, to forward their mail to
# their preferred mail-reading machine. The forward database is
# shipped around the TCP/IP network as changes are made, to keep the
# network consistent.
forward: driver = aliasfile, # general-purpose aliasing director -nobody, # all addresses are associated # with nobody by default, so setting # this is not useful. owner = real-$user; # проблемы отсылаются на адрес # real-$user file = /var/lib/smail/forward, # Сам файл modemask = 002, # Маска доступа proto = lsearch # Использовать линейный поиск в файле
# возможен так же бинарный и dbm ;)
# dotforward - Расширяет .forward файл в домашнем каталоге пользователя
# Если в нем описыны адреса как в обычном алиас файле, то вся почта ,
# которая приходит на имя этого пользователя , будеи перенаправлятся на
# эти адреса
# Например:
# cola@server.tcsb.perm.su,sysop@tcsb.perm.su
# В этом случае вся почта на адрес xxxx@tcsb.perm.su
# Будет пересылаться на cola@server.tcsb.perm.su,sysop@tcsb.perm.su
# очень удобно , когда ты в отпуске или где то в командировке :)
#
dotforward: driver = forwardfile, # general-purpose forwarding director owner = Postmaster, # Все проблемы отсылать postmaster'у nobody, # смотри выше sender_okay; # sender never removed from expansion # Это я сно нет ?? :) file = ~/.forward, # .forward файл в домашнем каталоге # Попробуйте сменить :)) checkowner, # Владельцем этого файла может быть или owners = root, # пользователь или root modemask = 002, # Права доступа caution = daemon:root, # Не запускать root или демоном # don't run things as root or daemon # be extra carefull of remotely accessible home directories # смотрите man ! unsecure = "~uucp:~nuucp:/tmp:/usr/tmp"

# forwardto - расширяет "Forward to " в почтовом ящике пользователя
# This emulates the V6/V7/System-V forwarding mechanism which uses a
# line of forward addresses stored at the beginning of user mailbox files
# prefixed with the string "Forward to "
# Если в вашем почтовом ящике записано Forward to name@domain.dom
# то вся приходящая на вас почта будет отправлятся на адрес
# name @domain.dom
forwardto: driver = forwardfile, owner = Postmaster, nobody, sender_okay; # влядельцы file = /var/spool/mail/${lc:user}, # Почтовый ящих пользователя forwardto, # разрешает функцию "Forward to " checkowner, # смотри выше и man smail owners = root, # modemask = 0002, # смотри выше caution = daemon:root # смотри выше

# user - соответствует пользователю на локальном хосте
# которому в его почтовый ящик отправляется почта
user: driver = user; # driver to match usernames transport = local # используется транспорт local

# real_user - match usernames when prefixed with the string "real-"
# Почти аналогично драйверу user
# This is useful for allowing an address which explicitly delivers to a
# user's mailbox file. For example, errors in a .forward file expansion
# could be delivered here, or forwarding loops between multiple machines
# can be resolved by using a real-username address. Also, users that
# wish to use mail as a means of transferring data to a machine that
# is not their "home" machine can mail to real-login-name@remote.host.
real_user: driver = user; transport = local, prefix = "real-" # for example, match real-root
# lists - расширяет листы рассылки записаные в каталоге list
# Лист рассылки mail-list может быть просто создан как файл mail-list
# в каталоге /usr/lib/smail/lists
# Ниже смотрите примеры моих листов рассылки.

lists: driver = forwardfile, caution, # flag all addresses with caution nobody, # and then associate the nobody user owner = owner-$user; # system V sites may wish to use # o-$user, as owner-$user may be # too long for a 14-char filename. # имя листа рассылк в нижнем регистре file = lists/${lc:user} # в каталоге lists # относительно $smail_lib_dir # $smail_lib_dir - определяет место расположения smail # в каталоге list так же должны быть каталоги # owner и request , в которых должны находится файлы # с таким же именем как и лист рассылки , в которых должны # быть записаны владелец и адрес по которому обращатся за листом # рассылки соответственно . # Описание смотрите ниже :)
#+++++++++++++++++++++++++++++++ cut here +++++++++++++++++++++++++++
# Мой лист рассылки для поинтов !
#
Maksim.Zhilin@p2.f69.n5054.z2.fidonet,
Serg.Shevkov@p3.f69.n5054.z2.fidonet,
Aleksandr.Tarhanov@p5.f69.n5054.z2.fidonet,
Ura.Kozlov@p6.f69.n5054.z2.fidonet,
Denis.Kolosov@p7.f69.n5054.z2.fidonet,
Kosta.Kudrin@p6969.f69.n5054.z2.fidonet
#
#++++++++++++++++++++++++++++++++ end cut ++++++++++++++++++++++++++++

# owners - expand mailing lists stored in a list owner directory
# Владелецы листа рассылки mail-list должны быть прописаны в файле mail-list
# в каталоге /usr/lib/smail/lists/owner
# Все ошибки встреченые при обработке листа рассылки будут направлены на
# адрес его владелцев. Имя файла владельца листа рассылки должно быть
# таким же как и имя файла листа рассылки.
owners: driver = forwardfile, caution, # flag all addresses with caution nobody, # and then associate the nobody user owner = postmaster; # system V sites may wish to use # o-$user, as owner-$user may be # too long for a 14-char filename. # map the name of the mailing list to lower case prefix = "owner-", file = lists/owner/${lc:user} # lists is under $smail_lib_dir

# Это просто мне лень описывать ! :(
# Поймете сами ?? :))
# Короче все запросы о листе рассылке mail_list необходимо
# отсылать на адрес mail_list-request
# Влядельцы прописываются в файле с именем листа рассылки mail_list
# который должен находится в каталоге /list/request
# Для большего читайте man

request: driver = forwardfile, caution, # flag all addresses with caution nobody, # and then associate the nobody user owner = postmaster; # system V sites may wish to use # o-$user, as owner-$user may be # too long for a 14-char filename. # map the name of the mailing list to lower case suffix = "-request", file = lists/request/${lc:user} # lists is under $smail_lib_dir

#
# У драйвера smartuser можно апределить адрес
# на который будут валится все письма с неизветсными адресами. :)
#
smartuser: driver = smartuser;


Файл routers - отвечает за доставку почты на удаленные адреса то есть на адреса не на localhost

#
# match-inet-hosts - соответствует хостам в TCP/IP network database
# Обычно , это имена машин ,которые находятся на лакальной машине
# в файле etc/hosts
# The /etc/hosts file is assumed to be for hosts in
# the local subdomain only. :(
# на tcsb.perm.su все хосты в моей сети прописаны в /etc/hosts
# Этот драйвер отдает почту на server.tcsb.perm.su
# Скорее всего при установке DNS придется придумывать что то новое
# Что ? Пока не знаю ! :(
#

match-inet-hosts: driver=gethostbyname, # Ищет хост по имени с использованием # системного вызова gethostbyname(3) transport=smtp; # Использовать транспорт smtp domain = tcsb.perm.su, # наш домен only_local_domain #

#
# Маршрутизатор для всех uucp систем исключая cclearn
#
# Этот драйвер отдает почту на cola.tcsb.perm.su,
# bank.perm.su , а может так же на любые
# близь лежащие внутренние системы
# в будет добавлены новые системы
# mike.tcsb.perm.su - Начальник отдела маркетинга из дома
# Может быть кто-нибудь еще !;)
# Все делается очень просто в файле methods/table прописывается
# соответствие хостов и транспортов к ним и все!

#
# Вот мой файл methods/table
#
#+++++++++++++++++++++++ cut here +++++++++++++++++++++++++++++++++
# This file names the transports that are to be used in delivering
# to specific hosts from your system
# examples from /usr/lib/smail/samples/bigsite/bargw/methods/table:
# host transport
# - bank uux
cola uux
* uux # Вот это должно быть последним :)
#+++++++++++++++++++++++++++ end cut ++++++++++++++++++++++++++++
# Ну еще в файле path = file_name
# надо указать UUCP путь ,который указывает
# по какому пути отправлять почту !
# Мой файл file = maps/sb.path,
# Приведен ниже
#
#++++++++++++++++++++++++++++ cut here ++++++++++++++++++++++++++
.cola.tcsb.perm.su cola!%s
.bank.perm.su bank!%s
#++++++++++++++++++++++++++++ end cut +++++++++++++++++++++++++++
# Краткие объяснения :
# вся почта , которая должна идти на .cola.tcsb.perm.su
# будет отправлятся на систему cola (в UUCP'шном варианте)
# а то что должно идти на .bank.perm.su будет идти
# на систему bank
# Дома у себя на cola.tcsb.perm.su
# я могу явно указать путь
# .bank.perm.su vbank!tcsb%s
# То есть принудительно заставляю почту идти через
# tcsb на bank !
# Если не понятно читайте ман на smail и uucp :))
#

sb: transport = uux, # использовать транспорт uux driver = pathalias, # method = table; # Определяет файл
# в котором записано соответствие хостов и транспортов для них file = maps/sb.path, # Файл в котором праписан путь для # доставки почты proto = bsearch, # в отсортированном порядке # для быстрой работы !;) domain = uucp, # strip trailing uucp reopen # Не держать файл открытым # а через определенные ппрормежутки времены # вновь перечитывать ! смотри man smail ;)
#
# Это маршрутизатор для ФИДО
#
ifmail: driver=pathalias, transport=ifmail; # Использовать транспорт # ifmail file=maps/ftn.paths, # аналогично sb.path
# ftn.paths приведен ниже
#
#++++++++++++++++++++++++++++ cut here +++++++++++++++++++++++
# Роутинг для фидо
## На ПОИНТОВ Моего узла /69
## на /69.6969
#.p6969.f69.n5054.z2.fidonet.org .p6969.f69.n5054.z2.fidonet.org!%s
.p6969.f69.n5054.z2.fidonet .p6969.f69.n5054.z2.fidonet.org!%s
## на /69.2
#.p2.f69.n5054.z2.fidonet.org .p2.f69.n5054.z2.fidonet.org!%s
.p2.f69.n5054.z2.fidonet .p2.f69.n5054.z2.fidonet.org!%s
## на /69.3
#.p3.f69.n5054.z2.fidonet.org .p3.f69.n5054.z2.fidonet.org!%s
.p3.f69.n5054.z2.fidonet .p3.f69.n5054.z2.fidonet.org!%s
## на /69.5
#.p5.f69.n5054.z2.fidonet.org .p5.f69.n5054.z2.fidonet.org!%s
.p5.f69.n5054.z2.fidonet .p5.f69.n5054.z2.fidonet.org!%s
## на /69.6
#.p6.f69.n5054.z2.fidonet.org .p6.f69.n5054.z2.fidonet.org!%s
.p6.f69.n5054.z2.fidonet .p6.f69.n5054.z2.fidonet.org!%s
## на /69.7
#.p7.f69.n5054.z2.fidonet.org .p7.f69.n5054.z2.fidonet.org!%s
.p7.f69.n5054.z2.fidonet .p7.f69.n5054.z2.fidonet.org!%s
# -#
# Роутинг Эх и мыла на /2
#
#.f2.n5054.z2.fidonet.org f2.n5054.z2.fidonet.org!%s
.f2.n5054.z2.fidonet f2.n5054.z2.fidonet.org!%s
##
# Роутинг Эх на и мыла на /9
#
#.f9.n5054.z2.fidonet.org f9.n5054.z2.fidonet.org!%s
.f9.n5054.z2.fidonet f9.n5054.z2.fidonet.org!%s
##
# Роутинг Эх на и мыла на /4
#
#.f4.n5054.z2.fidonet.org f4.n5054.z2.fidonet.org!%s
.f4.n5054.z2.fidonet f4.n5054.z2.fidonet.org!%s
##
# Все остальное мыло идет через /9 сорри ,но так будел лучше
# Если будет необходимость , то переделать на /2
#
#.fidonet.org f9.n5054.z2.fidonet.org!%s
.fidonet f9.n5054.z2.fidonet.org!%s
#
# Конец!
#++++++++++++++++++++++++++++ end cut ++++++++++++++++++++++++
# Примечание вторая строчка прописана для подстраховки :)
# proto=lsearch # Линейныйф поиск ,можно сделать и # bsearch -двоичный , отсортировав # файл с помощью sort (1)
# можно так же добавть строку
# только нге забудде после lsearch поставить запятую :)))
# domain = fidonet.org, # strip trailing uucp
# reopen # Не держать файл открытым
#

#
# Должен быть последним.
#
# для smarthost использовать транспорт uux и
# все отправлять на систему ccleran
#
smarthost: driver=smarthost,transport=uux; path=cclearn

- Файл transports Описывает транспорты , которые используются для доставки почты

Е мое !!!! Лень !! ;)

#
# Используется для доставки к локальным адресам (то есть адресам
# на localhost)
#
local: driver=appendfile, # Добавить в файл return_path, # Писать поле return_path local, from, # Не забывайте ставить # то elm,mail и т.д. будут ругаться # unix_from_hack; # Вставлять ">" :)) смотри man file=/var/spool/mail/${lc:user}, # почтовый ящик пользователя group=mail, # В какая группа ! смотри man mode=0600, # режим доступа suffix="\n" # Каждое сообщене с новой строки
#
# Используется для того , что бы можно было
# вместо адресов подставлять переназначение в комманды :)
#
pipe: driver=pipe, # return_path, # см. выше local, from, # см. выше unix_from_hack; # см. выше cmd="/bin/sh -c $user", # кого запускать шелом parent_env, # Адрес брать вначале из переменных окружения # а после ужесам адрес см. man :)) pipe_as_user, # Если не дан group опция , то UID GID # для дочернего процесса ставиться из setuid(2) # setgid(2) umask=0022, # Маска доступа. -log_output, # Лог не нужен. ignore_status, # если установлен , то статус завершения # порожденного процесса игнорируется :) ignore_write_errors # Если установлен ,то все ошибки записи игнорируются #
#
# Используется для того , что бы можно было
# почту кидать в файл ;))
#

file: driver=appendfile, return_path,local,from,unix_from_hack; # см. выше file=$user, # см. man :)) append_as_user, # см. man check_path, # см. man expand_user, # см. man suffix="\n", # см. man mode=0644 # см. man ;))
#
# Simple Mail Transfere Protocol ;)
# Понятно ??
#
smtp: driver=smtp, -max_addrs, # см. man :) -max_chars, # см. man :)

# uux - маршрутизатор для удаленных UUCP сайтов ,
# которые выполняют rmail :))
# Вся почта ставиться в очередь !
# As many as five recipient addresses will be delivered to the remote
# host in one UUCP transaction. ;)
uux: driver = pipe, uucp, # использовать UUCP-стиль дресации ;) from, # см. выше max_addrs = 5, # 5 адресов за раз max_chars = 200; # at most 200 chars of addresses см.man :) # the -r flag prevents immediate delivery, parentheses around the # $user variable prevent special interpretation by uux. cmd = "/usr/bin/uux - -r -g$grade $host!rmail $((${strip:user})$)", umask = 0022, # pipe_as_sender # см.man :)

# uux_one_addr - deliver mail over UUCP to a remote host that can take
# one address at a time.
# This is often necessary when delivering to a site running an unmodified
# version of 4.1BSD.
#
# Так же как uux !:)
# Но один адрес за раз !
uux_one_addr: driver = pipe, uucp, # use UUCP-style addressing forms from; # supply a From_ envelope line # the -r flag prevents immediate delivery cmd = "/usr/bin/uux - -r -g$grade $host!rmail (${strip:user})", umask = 0022, pipe_as_sender

# demand - deliver to a remote rmail program, polling on demand
# так же как uux , но будет использоваться немедленная доставка
# данных на удаленную систему см.man :)
#
demand: driver = pipe, uucp, from, max_addrs = 5, max_chars = 200; # with no -r flag, try to contact remote site immediately cmd = "/usr/bin/uux - -g$grade $host!rmail $(($user)$)", umask = 0022, pipe_as_sender
#
# А вот эта гадость для FIDO ;))
#
ifmail: from, # см.man :) received, # см.man :) max_addrs=5, # см.man :) max_chars=200, # см.man :) driver=pipe; # см.man :) pipe_as_sender, # см.man :) cmd="/usr/lib/ifmail/ifmail -r$host $((${strip:user})$)" # ;))

#
#

Файл retry
Описывает назначеный домен , минимальный интервал между попытками
доставить почту и итервал в течении которого эти попытки осуществляются

-# Мой файл retry
#
#++++++++++++++++++++++++++++ cut here +++++++++++++++++++++++++
* 30m/5d
#+++++++++++++++++++++++++++++ end cut ++++++++++++++++++++++++++
#
# На все хосты пытаться доставить почту !
# Попытки осуществлять через 30 минут в течении 5 дней ! :)

======================================================================
======================================================================

Файл конфигурации config для smail 1.3.29 на сервере
server.tcsb.perm.su

-# smail configuration for server.tcsb.perm.su
# (see smail(5) man page for details and other options)
#
spool_mode=400 # Режим доступа к спулл файлам
max_message_size=200k # максимальный размер сообщения
visible_domain=tcsb.perm.su
visible_name=tcsb.perm.su # Это служит для того что бы # в исходящих сообщениях # путь отправителя был не server.tcsb.perm.su # а tcsb.perm.su :) Ну хочется мне так :)

smart_path=tcsb.perm.su # Всю почту отправлять на tcsb.perm.su # А там разберуться что куда . ;)
smart_transport=smtp # При этом использовать транспорт smtp
#smart_user=cola # Вот эта вот гадость для того что бы # если узер не существует , то отправлять почту # на адрес пользователя smart_user
+error_copy_postmaster # Все ошибки постмастеру
postmaster_address=cola@.server.tcsb.perm.su # Имя постмастера
smtp_banner="$primary_name Linux Smail$version # $compile_num ready at $date"
+smtp_debug # для Отладки

Все остальные файлы кроме routers почти едентичны с tcsb.perm.su

Файл routers для server.tcsb.perm.su

# Для адресов в /etc/hosts
inet_host: driver=gethostbyname, transport=smtp; -domain, -only_local_domain
# domain=tcsb.perm.su,
# only_local_domain
#
# Для всех остальных
smarthost: driver=smarthost,

Unix   Теги:

Читать IT-новости в Telegram
Информационные технологии
Мы в соцсетях ✉