25843-1 (Программное обеспечение почтового обмена), страница 3
Описание файла
Документ из архива "Программное обеспечение почтового обмена", который расположен в категории "". Всё это находится в предмете "информатика" из , которые можно найти в файловом архиве . Не смотря на прямую связь этого архива с , его также можно найти и в других разделах. Архив можно найти в разделе "рефераты, доклады и презентации", в предмете "информатика, программирование" в общих файлах.
Онлайн просмотр документа "25843-1"
Текст 3 страницы из документа "25843-1"
### Ruleset 0 - Parse Address ###
######################################
S0
R $#local $: <> special case error msgs
R$* : $* ; $#error $@ USAGE $: "list:; syntax illegal for recipient addresses"
R $#error $@ USAGE $: "user address required"
R $#error $@ USAGE $: "colon illegal in host name part"
# handle numeric address spec
R$* $* $: $>98 $1 $3 numeric internet spec
R$* $* $#smtp $@ [$2] $: $1 $3 still numeric: send
# now delete the local info -- note $=O to find characters that cause forwarding
R$* $* $@ $>97 $1 user@ => user
R : $* $@ $>97 $2 @here:... -> ...
R$* $=O $* $@ $>97 $1 $2 $3 ...@here -> ...
# handle local hacks
R$* $: $>98 $1
# short circuit local delivery so forwarded email works
R$+ $: $1 first try hub
R$+ $#local $: $1 yep ....
R$+ $#local $: @ $1 nope, local address
# resolve remotely connected UUCP links (if any)
# resolve fake top level domains by forwarding to other hosts
R$*$* $: $>95 $1 $3 user@host.BITNET
# forward non-local UUCP traffic to our UUCP relay
R$*$* $: $>95 $1 $3 uucp mail
# pass names that still have a host to a smarthost (if defined)
R$* $* $: $>95 $1 $3 glue on smarthost name
# deal with other remote names
R$* $* $#smtp $@ $2 $: $1 $3 user@host.domain
# if this is quoted, strip the quotes and try again
R$+ $: $(dequote $1 $) strip quotes
R$+ $=O $+ $@ $>97 $1 $2 $3 try again
# handle locally delivered names
R$=L $#local $: @ $1 special local names
R$+ $#local $: $1 regular local names
###########################################################################
### Ruleset 5 - special rewriting after aliases have been expanded ###
### (new sendmail only) ###
###########################################################################
S5
# see if we have a relay or a hub
R$+ $: $1 try relay
R $+ $: $1 try hub
R $+ $@ $1 nope, give up
R $+ $: $>95 $3
R $+ $@ $>95 $2
###################################################################
### Ruleset 95 - canonify mailer:host syntax to triple ###
###################################################################
S95
R $* $@ $1 strip off null relay
R $* $# $1 $@ $2 $: $3 try qualified mailer
R $* $@ $2 delete local host
R $* $#relay $@ $1 $: $2 use unqualified mailer
###################################################################
### Ruleset 98 - local part of ruleset zero (can be null) ###
###################################################################
S98
За секцией преобразования адресов следует секция определения программ рассылки почты. В ней определяется локальная программа рассылки (mail), программа рассылки для выполнения (sh) и программа рассылки по SMTP.
##################################################
### Local and Program Mailer specification ###
##################################################
Mlocal, P=/usr/libexec/mail.local, F=lsDFMrmn, S=10, R=20/40,
A=mail -d $u
Mprog, P=/bin/sh, F=lsDFMeu, S=10, R=20/40, D=$z:/,
A=sh -c $u
S10
R $n errors to mailer-daemon
R$+ $: $>40 $1
S20
R$+ $: $1 strip host part
S40
#####################################
### SMTP Mailer specification ###
#####################################
Msmtp, P=[IPC], F=mDFMuX, S=11/31, R=21, E=\r\n,
L=990, A=IPC $h
Mesmtp, P=[IPC], F=mDFMuXa, S=11/31, R=21, E=\r\n,
L=990, A=IPC $h
Mrelay, P=[IPC], F=mDFMuXa, S=11/31, R=61, E=\r\n,
L=2040, A=IPC $h
Затем идут правила определения локального преобразования адресов для конкретных программ рассылки, в частности набор правил S11.
# envelope sender and masquerading recipient rewriting
#
S11
R$+ $: $>51 $1 sender/recipient common
R$* :; $@ $1:; list:; special case
R$* $@ $>61 $1 qualify unqual'ed names
В секции программ рассылки мы в нашем примере не указали еще одну важную возможность - рассылку по протоколу UUCP:
Мuucp, P=/usr/bin/uux, F=DFMhuU, S=13, R=23, M=100000,
A=uux - -r -z -a$f -gC $h!rmail
Естественно, что правила преобразования адресов S13 и R23 должны быть описаны в файле настроек sendmail.
Тестирование обслуживания по протоколу SMTP
Для проверки сервиса SMTP применяют программу telnet, запущенную по порту 25:
citmgu> telnet server.citmgu.ru 25
В этом случае система отвечает строкой приглашения протокола SMTP, после чего можно вводить команды SMTP и проверять реакцию системы на них:
# telnet citmgu.ru 25
Trying 194.85.135.66...
Connected to citmgu.ru.
Escape character is '^]'.
220 cit-u.citmgu.ru ESMTP Sendmail 8.8.5/8.8.5; Mon, 30 Jun 1997 09:45:55 GMT
help
214-This is Sendmail version 8.8.5
214-Topics:
214- HELO EHLO MAIL RCPT DATA
214- RSET NOOP QUIT HELP VRFY
214- EXPN VERB ETRN DSN
214-For more info use "HELP ".
214-To report bugs in the implementation send email to
214- sendmail-bugs@sendmail.org.
214-For local information send email to Postmaster at your site.
214 End of HELP info
MAIL FROM: paul
250 paul... Sender ok
RCPT TO: paul
250 paul... Recipient ok
DATA
354 Enter mail, end with "." on a line by itself
This is a test message
.
250 JAA24836 Message accepted for delivery
quit
221 cit-u.citmgu.ru closing connection
Connection closed by foreign host.
You have new mail.
#
В приведенном здесь сеансе сначала пользователь выдал команду help и получил список команд, которые можно использовать при взаимодействии по протоколу SMTP. Затем пользователь выдал команду MAIL FROM: для указания адреса отправителя почтового сообщения. После этого выдана команда RCPT TO:, и указан адрес получателя почтового сообщения. Команда DATA открывает возможность ввода почтового сообщения, т.е. клиент из режима командной строки переходит в режим редактирования сообщения. Редактировать можно только в пределах одной строки путем затирания символом забоя предварительно набитых символов. Вернуться на строку выше нельзя. Конец режима редактирования обозначается символом "." в первой позиции строки. После этого клиент возвращается в режим командной строки, а сообщение отсылается. Совершенно очевидно: что за один сеанс можно отправить несколько сообщений как одному и тому же адресату, так и разным адресатам на одном и том же компьютере. Посылать сообщения можно через другую машину, если в качестве адреса получателя указать что-либо подобное ниже приведенному:
paul%quest.polyn.kiae.su@citmgu.ru
В этом случае сообщение отправляется на citmgu.ru, а затем оно будет переправлено на quest.polyn.kiae.su.
Тестирование по протоколу POP3
ормально, взаимодействие по протоколу POP3 можно разделить на две фазы: фазу аутентификации и фазу обмена данными. В фазе аутентификации пользователь должен сообщить свой идентификатор и пароль. Если аутентификация была произведена успешно, то система позволяет работать с домашним ящиком пользователя. Сам протокол POP3 очень похож на SMTP с той только разницей, что сообщения можно принимать но нельзя отправлять.
Приведем пример взаимодействия по протоколу POP3:
quest> telnet quest.net.kiae.su
Trying 144.206.130.138...
Connected to quest.net.kiae.su.
Escape character is '^]'.
+OK QPOP (version 2.2) at quest.net.kiae.su starting.
user paul
+OK Password required for paul.
pass Kukuru23432
+OK paul has 6 messages (12576 octets).
stat
+OK 6 12576
list
+OK 6 messages (12576 octets)
1 1447
2 2640
3 2296
4 1100
5 3025
6 2068
.
noop
+OK
last
+OK 4 is the last read message.
retr 4
+OK 1100 octets
Received: from mail1.relcom.ru (mail1.relcom.ru [193.125.152.4]) by
quest.net.kiae.su (8.7.5/8.7.3) with ESMTP id CAA09628 for
; Wed, 2
Jul 1997 02:51:43 +0400 (MSD)
Received: from thevni (uucp@localhost) by mail1.relcom.ru
(8.7.5.R.ML.S/Relcom-2A) with UUCP
id BAA03544 for paul;Wed, 2 Jul 1997 01:34:45 +0400 (MSD)
Received: by Relay1.relcom.ru (UUMAIL/2.0); Wed, 2 Jul 97 01:34:44 +0300
Received: by theor.vniinm.msk.su (UUPC/@ v5.06gamma, 07Feb93);
Wed, 2 Jul 1997 01:24:57 +0400
To: paul@kiae.su
References:
Message-Id:
Organization: A.A. Bochvar Institute for Inorganic Materials, Theoret
From: "Alexander Z. Solontsov"
Date: Wed, 2 Jul 97 01:24:56 +0400
X-Mailer: BML [MS/DOS Beauty Mail v.1.36]
Subject: life
Lines: 9
X-UIDL: 2313051b98ef908dceefe8b801d9e60d
Status: RO
To: N.M.Sergeeva
Dear H.M.,
I am still alive, publishing a lot, and this year applied to RAN.
Would be pleased to hear from you in a more derect way.
Alexander
.
dele 4
+OK Message 4 has been deleted.
rset 4
-ERR Too many arguments for the rset command.
rset
+OK Maildrop has 6 messages (12576 octets)
list
+OK 6 messages (12576 octets)
1 1447
2 2640
3 2296
4 1100
5 3025
6 2068
.
quit
+OK Pop server at quest.net.kiae.su signing off.
Connection closed by foreign host.
В данном примере используется все тот же прием доступа к серверу через программу Telnet по 110 порту TCP. В начале выдаются команды фазы аутентификации user и pass. Затем выдается команда stat, которя сообщает статус почтового ящика пользователя paul. По команде list система сообщает число сообщений и их размер в байтах. По команде retr можно получить текст сообщения. По команде dele пометить сообщение к удалению. Удаляются сообщения только в момент окончания сеанса, а во время сеанса они только помечаются как удаленные, поэтому по команде rset эти пометки можно снять. Команда Quit завершает сеанс работы с сервером.
Протокол IMAP
Другим протоколом разбора почты является протокол IMAP (Interactive Mail Access Protocol), который по своим возможностям очень похож на POP3, но был разработан как более надежная альтернатива последнего и к тому же обладает более широкими возможностями по управлению процессом обмена с сервером.
Работа протокола осуществляется по 143 потру TCP. Главным отличием от POP является возможность поиска нужного сообщения и разбор заголовков сообщения.
Ниже приведен пример взаимодействия по протоколу IMAP
OK IMAP2 Server Ready
A001 LOGIN Fred Secret
A001 OK User Fred logged in
A002 SELECT INBOX
* FLAGS (Meeting Notice \Answered \Flagged \Deleted \Seen)
* 19 Exists
* 2 Recent
* A002 OK Select compete
A003 FETCH 1:19 ALL
* 1 Fetch ( .....
* 19 Fetch (....
A003 OK Fetch complete
A004 LOGOUT
* Bye IMAP2 server quitting
A004 OK Logout complete
Для поиска информации используются команды FIND с различными аргументами.
Тестирование отправки почты программой Sendmail - флаг "-v"
Для того чтобы убедится, что почта уходит туда куда вы предполагаете можно, запустить sendmail из командной строки в так называемом verbowse режиме, т.е. когда диалог между транспортными агентами (двумя программами sendmail) трассируется на экране монитора или записывается в файл. Некоторые грубые ошибки в настройке sendmail можно таким образом установить, например зацикливание при локальной рассылке.
% sendmail -v paul@citmgu.ru
Test
.
paul@citmgu.ru... Connecting to local...
paul@citmgu.ru... Sent
% sendmail -v paul@quest.net.kiae.su
Test
.
paul@quest.net.kiae.su... Connecting to quest.net.kiae.su. via esmtp...
220 quest.net.kiae.su ESMTP Sendmail 8.7.5/8.7.3; Mon, 30 Jun 1997 11:36:31 +040
0 (MSD)
>>> EHLO cit-u.citmgu.ru
250-quest.net.kiae.su Hello [194.85.135.66], pleased to meet you
250-EXPN
250-8BITMIME
250-SIZE
250-DSN
250-VERB
250-ONEX
250 HELP
>>> MAIL From: SIZE=5
250 ... Sender ok
>>> RCPT To:
250 Recipient ok