25843-1 (Программное обеспечение почтового обмена), страница 2

2016-07-31СтудИзба

Описание файла

Документ из архива "Программное обеспечение почтового обмена", который расположен в категории "". Всё это находится в предмете "информатика" из , которые можно найти в файловом архиве . Не смотря на прямую связь этого архива с , его также можно найти и в других разделах. Архив можно найти в разделе "рефераты, доклады и презентации", в предмете "информатика, программирование" в общих файлах.

Онлайн просмотр документа "25843-1"

Текст 2 страницы из документа "25843-1"

В целом все описанные выше секции решают три основных задачи:

  • определение окружения sendmail,

  • анализ и преобразование адресов электронной почты,

  • рассылка сообщений при помощи программ рассылки.

При редактировании файла следует учитывать некоторые правила, которые используются при написании файла конфигурации: вся информация локального характера сосредоточена в начале файла, команды одного типа собраны в компактные группы, большую часть файла составляют правила преобразования адресов, в конце файла описаны программы рассылки электронной почты.

Все команды, которые используются в файле настроек sendmail можно представить в виде следующей таблицы:

Команда

Синтаксис

Назначение

Define Macro

Dxvalue

Установить значение "x"

Define Class

Ссword1 word2 ...

Установить значение класса "c"

Define Class

Fcfile

загрузить значение класса из файла

Set Option

Oovalue

Установить значение опции "o"

Trusted Users

Tuser1 user2 ...

Определить доверенных пользователей

Set Precedence

Pname=number

Для номера ошибки number установить имя name

Define Mailer

Mname,[field=value]

Определить программу рассылки почты

Define Header

H[?mflag?]name:format

Определить формат поля заголовка

Set Rulset

Sn

Начать определение набора правил преобразования адресов

Define Rule

Rlhs rhs comment

Определить правило преобразования адреса

Формат команды файла настроек sendmail не очень удобен для чтения. В целом его можно определить следующим образом:

Рис. 3.2. Структура команды файла настроек sendmail

Теперь разберем более подробно некоторые команды и секции файла настроек sendmail. Лучше всего это сделать на основе реального файла. Начнем с секции описания локальных параметров:

##################

# local info #

##################

Cwlocalhost

CP.

# UUCP relay host

DYucbvax.Berkeley.EDU

CPUUCP

# BITNET relay host

#DBmailhost.Berkeley.EDU

DBrelay.kiae.su

CPBITNET

# "Smart" relay host (may be null)

DSrelay.kiae.su

# who I send unqualified names to (null means deliver locally)

DR

# who gets all local email traffic ($R has precedence for unqualified names)

DH

# who I masquerade as (null for no masquerading)

DM

# class L: names that should be delivered locally, even if we have a relay

# class E: names that should be exposed as from this host, even if we masquerade

#CLroot

CEroot

# operators that cannot be in local usernames (i.e., network indicators)

CO @ % !

# a class with just dot (for identifying canonical names)

C..

# dequoting map Kdequote dequote

Как видно из этого листинга, в данной секции описаны имя данной машины (Cwlocalhost), а также класс машин-шлюзов в другие почтовые системы (CP....). При этом наращивание класса происходит по мере описания шлюза для каждого из видов почтовых служб. В конце секции описаны символы, которые не могут использоваться в качестве имен пользователей или доменов.

Следующая секция - определение макросов sendmail:

######################

# Special macros #

######################

# SMTP initial login message

De$j Sendmail $v/$Z ready at $b

# UNIX initial From header format

DlFrom $g $d

# my name for error messages

DnMAILER-DAEMON

# delimiter (operator) characters

Do.:%@!^/[]

# format of a total name

Dq$?x$x $|$g$.

# Configuration version number

DZ8.6.6

В данной секции описаны сообщения, которые выдает sendmail при взаимодействии с другими транспортными агентами. Как видно из этого описания, определение макроса это не только присваивание значения, но и выполнение определенных действий. Наиболее интересное предложение из всех - предложение, определяющее значение макроса q:

Dq$?x$x $|$g$.

Здесь описана условная подстановка значения. Все предложение можно описать следующей фразой:

"Если значение переменной x установлено, то: q = значение_x , иначе: q=значение_g".

То же самое можно записать и по-другому:

if(x!=NULL)

{

strcpy(q,x);

strcat(q," <");

strcat(q,g);

strcat(q,">");

{

else

{

strcpy(q,g);

}

В данном случае $? соответствует оператору if, $| - else, а $. - конец условного оператора.

Следующая секция - это определение опций:

###############

# Options #

###############

# strip message body to

7 bits on input?

#O7False

# Insist that the BIND

name server be running to resolve names

OI

# deliver MIME-encapsulated

error messages?

OjTrue

В данном случае приведен только фрагмент этой секции. Большинство параметров общие для всех установок sendmail. Указанные же в листинге параметры являются принципиальными с точки зрения режимов работы sendmail. Первый параметр определяет тот факт, что по почте можно пересылать семибитовую информацию. Согласно RFC-822 информация должна быть семибитовая, но для передачи кириллицы это значит использовать кодирование, что абсолютно не приемлемо. Поэтому данный параметр должен быть закоментарен. В системах, где используется сервер доменных имен, опция I (OI) должна быть установлена, чтобы не было ошибок при идентификации доменов. Последний параметр не является принципиальным, но для целей более понятного представления его следует установить. Если почтовый клиент не поддерживает MIME, то данный параметр следует закоментарить.

Следующие две секции определяют уровень сообщений об ошибках и доверенных пользователей:

###########################

# Message precedence

#

###########################

Pfirst-class=0

Pspecial-delivery=100

Plist=-30

Pbulk=-60

Pjunk=-100

#####################

# Trusted users #

#####################

Troot

Tdaemon

Tuucp

За этими двумя секциями следует секция описания полей заголовка почтового сообщения, который генерируется программой sendmail:

#########################

# Format of headers

#

#########################

H?P?Return-Path: $g

HReceived: $?sfrom $s

$.$?_($?s$|from $.$_) $.by $j ($v/$Z)$?r with $r$. id $i$?u for

$u$.; $b

H?D?Resent-Date: $a

H?D?Date: $a

H?F?Resent-From: $q

H?F?From: $q

H?x?Full-Name: $x

HSubject:

# HPosted-Date: $a

# H?l?Received-Date: $b

H?M?Resent-Message-Id:

H?M?Message-Id:

Формат команд данной секции определяет какие поля включаются в заголовок, а какие не включаются. Данная секция тесно связана с секцией определения программ рассылки почты. Если после H нет знака вопроса, то поле включается в заголовок сообщения для любой программы рассылки, если после H символ "?" присутствует, то в строке аргументов программы рассылки данный флаг должен быть определен для того, чтобы данное поле было включено в заголовок. Как следует из приведенного выше описания, всегда включаются только поля Received и Subject. Все перечисленные поля не являются обязательными полями заголовка.

Следующая секция - правила преобразования адресов. Но прежде чем обсуждать ее содержание следует сказать как и когда sendmail эти адреса преобразовывает.

Прежде всего необходимо рассмотреть схему преобразования (рисунок 3.3).

Рис. 3.3. Правила

При получении почтового сообщения адреса, указанные в полях To, From, Cc, преобразуются в соответствии с правилами преобразования.

######################################################################

######################################################################

#####

##### REWRITING RULES

#####

######################################################################

######################################################################

###########################################

### Rulset 3 - Name Canonicalization ###

###########################################

S3

# handle null input (translate to special case)

R$@ $@

# basic textual canonicalization -- note RFC733 heuristic here

R$*$*$* $2$3$5 strip multiple <> <>

R$*<$*$*>$* $5 2-level <> nesting

R$*<>$* $@ MAIL FROM:<> case

R$*$* $2 basic RFC821/822 parsing

# handle list:; syntax as special case

R$*:;$* $@ $1 :;

# make sure syntax is easy to parse -- undone later

R@ $+ , $+ @ $1 : $2 change all "," to ":"

# localize and dispose of route-based addresses

R@ $+ : $+ $@ $>96 : $2 handle

# find focus for list syntax

R $+ : $* ; @ $+ $@ $>96 $1 : $2 ; list syntax

R $+ : $* ; $@ $1 : $2; list syntax

# find focus for @ syntax addresses

R$+ @ $+ $: $1 focus on domain

R$+ $1 $2 move gaze right

R$+ $@ $>96 $1 already canonical

# do some sanity checking

R$* $* $1 $4 nix colons in addrs

# convert old-style addresses to a domain-based address

R$- ! $+ $@ $>96 $2 resolve uucp names

R$+ . $- ! $+ $@ $>96 $3 domain uucps

R$+ ! $+ $@ $>96 $2 uucp subdomains

# if we have % signs, take the rightmost one

R$* % $* $1 @ $2 First make them all @s.

R$* @ $* @ $* $1 % $2 @ $3 Undo all but the last.

R$* @ $* $@ $>96 $1 Insert and finish

# else we must be a local name

################################################

### Ruleset 96 - bottom half of ruleset 3 ###

################################################

# At this point, everything should be in a "local_partextra" format.

S96

# handle special cases for local names

R$* $* $: $1 $2 no domain at all

R$* $* $: $1 $2 local domain

R$* $* $: $1 $2 .UUCP domain

R$* $* $: $1 $3 mark [a.b.c.d]

R$* $* $: $1 $3 self-literal

R$* $* $@ $1 $3 canon IP addr

# pass UUCP addresses straight through

R$* $* $@ $1 $3

# pass to name server to make hostname canonical

R$* $* $: $1 $4

# local host aliases and pseudo-domains are always canonical

R$* $* $: $1 $3

R$* $* $: $1 $4

R$* $* $1 $3

# if this is the local hostname, make sure we treat is as canonical

R$* $* $: $1 $2

##################################################

### Ruleset 4 - Final Output Post-rewriting ###

##################################################

S4

R$* $@ $1 handle <> and list:;

# strip trailing dot off possibly canonical name

R$* $* $1 $3

# externalize local domain info

R$* $* $1 $2 $3 defocus

R@ $+ : @ $+ : $+ @ $1 , @ $2 : $3 canonical

R@ $* $@ @ $1 ...and exit

# UUCP must always be presented in old form

R$+ @ $- . UUCP $2!$1 u@h.UUCP => h!u

# delete duplicate local names

R$+ % $=w @ $=w $1 @ $j u%host@host => u@host

##############################################################

### Ruleset 97 - recanonicalize and call ruleset zero ###

### (used for recursive calls) ###

##############################################################

S97

R$* $: $>3 $1

R$* $@ $>0 $1

######################################

Свежие статьи
Популярно сейчас
Зачем заказывать выполнение своего задания, если оно уже было выполнено много много раз? Его можно просто купить или даже скачать бесплатно на СтудИзбе. Найдите нужный учебный материал у нас!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
5173
Авторов
на СтудИзбе
436
Средний доход
с одного платного файла
Обучение Подробнее