Uploaded by pogem48203

Лекция 8 wt

advertisement
Дәріс 8
Электрондық пошта. Хабарлама форматы. SMTP протоколы.

8.1 Электрондық пошта.
Электрондық қызмет пошта - хабарламалармен (хаттармен) алмасуға арналған.
Клиент (MS Outlook, The bat ...) дайындайды ("буып-түйеді") және серверге жібереді (пошта
бөлімшесі) хабарламалар, хабарламаларды қабылдайды және қарайды.
Электрондық пошта сервері (Sendmail, MS Exchange ...) хабарламаларды өңдейді (сұрыптайды) және
жергілікті адресатқа немесе қашықтағы серверге (пошта бөлімшесіне) жібереді.
Электрондық пошта көптеген жолдармен кәдімгі электрондық пошта қызметіне ұқсайды.
Поштаны жіберу және қабылдау
Негізгі :
 SMTP (Simple Mail Transfer Protocol) - поштаны жіберудің қарапайым хаттамасы, келесі мақсаттарда
қолданылады жөнелтімдер клиент серверге де, сервер басқа серверге де пошта арқылы.
 POP3 (Пошта бөлімшесінің хаттамасы) - үшін қолданылады қабылдау серверден клиентпен пошта
арқылы.
 IMAP 4 (Internet Message Access Protocol)  UUCP (Unix-Unix-CoPy) - үшін қолданылады жөнелту және қабылдау клиент серверге(лерге) де,
сервер басқа серверге де пошта арқылы. Қазіргі уақытта ол дерлік қолданылмайды, сондықтан біз оны
қарастырмаймыз.
8.2 Форматы хабарламалар.
Бірінші стандарт - RFC0724 (Proposed official standard for the format of ARPA Network messages D.
Crocker, K.T. Pogran, J. Vittal, D.A. Henderson May-12-1977).
Соңғысы нұсқа - RFC2822 (Internet Message Format P. Resnick, Ed. April 2001).
Мәтіндік (ASCII) ақпарат сол күйінде берілуі мүмкін.
Қалған ақпарат кодталуы керек, өйткені бастапқыда оны беру көзделмеген. Протокол кеңейтімін
пайдаланған кезде SMTP - ESMTP (Enhaced SMTP) 8 биттік түрде кодтауға болады. Мұның бәрін пошта
бағдарламасы орындайды.
Кодтау түрлері:
base64 - кодтайды туралы орнатылды 00-FFжылы ASCII, бойынша беруге болатындай етіп SMTP
(екілік файлдарды кодтау).
7bit - кодтамайды, кодтың екенін көрсетеді ASCII.
8bit - таңбалар ғана емес екенін көрсетеді ASCII.
quoted-printable - ұлттық тілдерді, кестенің екінші бөлігінің таңбаларын кодтау үшін қолданылады ("А"
- "=3D").
Хабарлама мыналардан тұрады:
 хабарлама конверті (хабарламаны жеткізуге және өңдеуге арналған ақпарат)
 хабарлама денелері (жіберушінің деректері)
Қарапайым жағдайда конверт тек тақырыптан тұрады, ол денеден бос жолмен бөлінеді.
Хабарламалардың мысалдары:
From: <vasy@list.ru> // жіберушінің мекенжайы
To: <pety@kfti.knc.ru> // алушының мекенжайы
Subject: Жаңа жылмен! // хабарлама тақырыбы
Mime-Version: 1.0 // инициализация Mime
X-Mailer: mPOP Web-Mail 2.19 // клиенттік пошта бағдарламасының түрі мен нұсқасы
Date: Fri, 19 Sep 2003 08:37:43 +0400 // хабарламаның жіберілген күні
Reply-To: <vasy@list.ru> // жауап беруге арналған мекенжай
Content-Type: text/plain; charset=koi8-r // түрі және кіші түрі MIME
Content-Transfer-Encoding: 8bit // кодтау түрінің сәйкестендіргіші
Message-Id: <E1A0D1b-000AnC-00.vasy-list-ru@f15.mail.ru> // хабарламаның бірегей сәйкестендіргіші
Жаңа жылмен Петя!
//Хабарламаның негізгі бөлігі
Қарапайым хабарламаның мысалы
Received: by dionis.kfti.knc.ru with SMTP; Thu, 10 Oct 2002 16:00:49 +0400 (MSK)
Message-ID: <005f01c27055$b0be7c80$6df155c2@kfti.knc.ru>
From: "Katia" <katia@dionis.kfti.knc.ru>
To: <gena@dionis.kfti.knc.ru>
Cc: "Dima" <dima@kfti.knc.ru>,"Lena" <lena@kfti.knc.ru>
Subject: Жаңа жылмен!
Date: Thu, 10 Oct 2002 16:08:05 +0400
Organization: KPhTI
MIME-Version: 1.0
Content-Type: text/plain; charset="koi8-r"
Content-Transfer-Encoding: 8bit
X-Priority: 3
X-MSMail-Priority: Normal
X-Mailer: Microsoft Outlook Express 5.00.2615.200
X-MimeOLE: Produced By Microsoft MimeOLE V5.00.2615.200
Бірнеше пайдаланушыларға жіберілетін хабарлама тақырыбының мысалы (өріс Cc:)
From: dima@dionis.kfti.knc.ru
To: igor@dionis.kfti.knc.ru
Subject: Жаңа жылмен!
Received: by nmc.tatarstan.ru; Fri, 06 Dec 2002 13:53:32 +0300 (msk)
Received: by kabmin.kazan.su; Fri, 06 Dec 2002 13:48:16 +0400 (MSK)
Received: by nmc.tatarstan.ru; Thu, 05 Dec 2002 18:47:11 +0300 (msk)
Received: from spider.ts by nmc.tatarstan.ru with SMTP; Thu, 05 Dec 2002 18:37:26 +0300 (msk)
Received: (qmail 3541 invoked from network); 5 Dec 2002 15:38:24 -0000
Received: from unknown (HELO mvv) (192.168.103.44) by spider.ts with SMTP; 5 Dec 2002 15:38:21 -0000
Organization: Techoserv A/S
X-Priority: 3
X-MSMail-Priority: Normal
X-Mailer: Dipost Crypto (v2.50C)
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2600.0000
X-Copy-From: gena@kabmin.tatarstan.ru
Mime-Version: 1.0
Content-Type: multipart/mixed; boundary="---Factor Dimail---"
Аралық серверлері бар хабарлама тақырыбының мысалы (өріс - Received:)
X-DIONIS-Forwarded: by <library@dionis.kfti.knc.ru> to <bogomolov@dionis.kfti.knc.ru> at Tue, 22 Feb 2000
14:42:05 +0300 (MSK)
Received: by nmc.tatarstan.ru; Tue, 22 Feb 2000 14:41:51 +0400 (msk)
Received: from ben.irex.ru by nmc.tatarstan.ru with SMTP; Tue, 22 Feb 2000 14:34:01 +0400 (msk)
Received: from unknown ([195.178.196.156])
by ben.irex.ru (8.9.3/8.9.1) with SMTP id NAA25654;
Tue, 22 Feb 2000 13:29:41 +0300
Message-ID: <014801bf7d20$1a388380$9cc4b2c3@ben.irex.ru>
From: "Jakubson Olga" <springer@ben.irex.ru>
To: <bob@bionet.nsc.ru>
Cc: <orlov@iephb.ru>, <sln@ipae.uran.ru>, <nov@ieie.nsc.ru>,
<rita@ief.uran.ru>, <library@ineos.ac.ru>, <bibl@ISEM.SEI.IRK.RU>,
<pbl@ibrae.ac.ru>, <alekhina@omrb.pnpi.spb.ru>,
<library@dionis.kfti.kcn.ru>, <ieshko@krc.karelia.ru>,
<igourevi@ccas.ru>, <cnb@post.krascience.rssi.ru>, <root@ksc.komi.ru>,
<beht@kti.nsc.ru>, <lib@tdi.nsk.su>, <ognev@nfi.kiae.su>,
<liogn@geocities.com>, <semenov@min.mus.msk.ru>, <root@omega.laser.ru>,
<ldisk@fo.gpi.ac.ru>
Subject: Acedemic Press
Date: Tue, 22 Feb 2000 13:30:48 +0300
X-Priority: 3
X-MSMail-Priority: Normal
X-Mailer: Microsoft Outlook Express 5.00.2014.211
X-Mimeole: Produced By Microsoft MimeOLE V5.00.2014.211
FileName: 001.html, APPEAL Schedule I.doc, Russia Trial Add.2000 jede Institution.doc
Файлдары тіркелген хабарлама тақырыбының мысалы (FileName).
Received: by nmc.tatarstan.ru; Tue, 28 Dec 1999 12:21:13 +0400 (msk)
Message-Id: <adn_1110_0_@nmc.tatarstan.ru>
X-DIONIS-Forwarded: by <webmaster@nmc.tatarstan.ru> to <bogomolov@dionis.kfti.kcn.ru> at Tue, 28 Dec
1999 12:18:25 +0400 (msk)
Received: from oracle.m9.am.ru by nmc.tatarstan.ru with SMTP; Tue, 28 Dec 1999 12:00:56 +0400 (msk)
Received: (from ar@localhost)
by oracle.m9.am.ru (8.8.8/8.8.8) id MAA01876
for webmaster@if.kazan.ru; Tue, 28 Dec 1999 12:01:51 +0300
Date: Tue, 28 Dec 1999 12:01:51 +0300
Message-Id: <199912280901.MAA01876@oracle.m9.am.ru>
From: InterReklama Administrator <support@bizlink.ru>
To: Влад <webmaster@if.kazan.ru>
Reply-to: InterReklama Administrator <support@bizlink.ru>
Subject: HTML-коды
Mime-Version: 1.0
Content-Type: multipart/mixed;
boundary="BANNERBANK_280830843726477"
--BANNERBANK_280830843726477
Content-Type: text/plain; charset=koi8-r
Content-Transfer-Encoding: 8bit
Cәлеметсіз бе!
Жіберемін файл wget.tgz
--BANNERBANK_280830843726477
Content-Type: application/octet-stream; name="wget.tgz"
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
filename="wget.tgz"
H4sICHc5pzYAA3dnZXQxNTMudGFyAOw8a1PbyLL7NfoVfSC1GAoZm+eGbLYg
PBJXwFDYSTZ1zqlkLI3tucga7WiE8X44v/1290iybCBx2GzOrbpxbYwlzXT3
9Lt7RjseSOs36zv1rY2f/q4PbDf2dnYA/+41t/fwL36am+6v+zQAdncbzZ3G
...
...
...
vUav0Wv0Gr1Gr9Fr9Hr61/8PvGbSyABoGgA=
--BANNERBANK_280830843726477-Файл тіркелген хабарлама тақырыбының мысалы
Кейбір тақырып өрістері:
From - жіберушілердің мекенжайлары.
Sender - нақты жіберушінің мекенжайы.
Мысал:
From: vasy@mail.ru
pety@mail.ru
Sender: misha@mail.ru
To - алушының мекенжайы.
Cc - хабарламалардың көшірмелерін алушылардың мекенжайлары.
Мысал:
To: vasy@mail.ru
pety@mail.ru
Cc: misha@mail.ru, katy@mail.ru
Date - хабарламаның жіберілген күні.
Subject - хабарлама тақырыбы.
Message-ID - хабарламаның бірегей идентификаторы.
Reply-To - жауап беруге арналған мекенжай.
Received - аралық сервердің мекен-жайлары мен хабарламаны өңдеу уақыты.
X-Mailer - клиенттің пошта бағдарламасының түрі мен нұсқасы.
Comments - пікірлер.
Priority - басымдылық. - басымдылық.
Organization - жіберуші ұйымның атауы
MIME-Version - стандартты сәйкестендіруге арналған өріс MIME, сондықтан хат қолданады MIME.
Content-Type - түрі және кіші түр MIME (text/html,audio/midi).
Content-Transfer-Encoding - сәйкестендіргіш типті кодтамалар (base64, quoted-printable, 7bit, 8bit,
binary және т.д.).
base64 - кодтайды туралы орнатылды 00-FFжылы ASCII, бойынша беруге болатындай етіп SMTP
(екілік файлдарды кодтау).
7bit - кодтамайды, кодтың не екенін көрсетеді ASCII.
8bit - таңбалар ғана емес екенін көрсетеді ASCII.
quoted-printable - ұлттық тілдерді, кестенің екінші бөлігінің таңбаларын кодтау үшін қолданылады ("А" "=3D").
8.3 Хаттама SMTP
Бірінші стандарт - RFC0788 (Simple Mail Transfer Protocol J. Postel Nov-01-1981).
Соңғысы нұсқа - RFC2821 (Simple Mail Transfer Protocol J. Klensin, Ed. April 2001).
Simple Mail Transfer Protocol - жоғары деңгейлі хаттама (атап айтқанда, қолданбалы деңгей), үшін
қолданылады жөнелтімдер клиент серверге де, сервер басқа серверге де пошта арқылы.
Әдепкі порт - 25. Әдепкі порт - 25.
Хаттаманың негізгі кемшілігі аутентификацияның болмауы және "айдау" (сияқты FTP, HTTP)
хабарламалар, яғни. егер сіз үлкен хат жіберсеңіз (10 мБ), онда байланыс үзілген жағдайда сіздің
хабарламаңыз қайтадан жіберілуі керек, мүмкін бұл шексіздікке дейін. Сондықтан үлкен әріптерді бөліктерге
бөлу керек.
Хаттама моделі
Жұмыстағы оқиғалар SMTP хаттамалар:
 Клиент серверге қосылуды бастайды
 Тұтынушы қызмет көрсету сұрауларын жібереді
 Сервер бұл сұрауларға жауап береді
Хаттама моделі SMTP
Командалардың реттілігі SMTP
SMTP протоколы SMTP пәрмендерінің ретін қарастырады
Мысалды қарастырайық:
Белгілі бір Vasy сервер абоненті kstu.ru, сервердің үш абонентіне хат жібереді kazan.ru (Pety, Koly,
Dima) бір хат.
Серверді тасымалдау тізімін қарастырыңыз kstu.rсерверге u kazan.ru:
R - сервер (receive)
S - клиент (send)
R 220 kazan.ru Simple Mail Transfer Service Ready // жауап коды 220 (байланыс орнатылды), сервер kstu.ru,
хаттама SMTP
S HELO kstu.ru // Байланыс орнатылды, "Мен kstu.ru", сәйкестендіру бойынша жүргізіледі kstu.ru
R 250 kazan.ru // команда қабылданды және өңделді, сәйкестендіру өтті
S MAIL FROM: <Vasy@kstu.ru> // Пошталық транзакцияның басталуы, қайтару мекенжайы
Vasy@kstu.ru.
R 250 OK // Сервер хабарламаны қабылдауға келіседі Vasy@kstu.ru
S RCPT TO:<Pety@kazan.ru> // Хатты кімге жіберу керек, Pety@kazan.ru
R 250 OK // Сервер хабарламаны қабылдауға келіседі Pety@kazan.ru
S RCPT TO:<Koly@kazan.ru> // Хатты тағы кімге жіберу керек, Koly@kazan.ru
R 550 No such user here // Сервер 550 қатесін жіберіп, ондай пайдаланушы жоқ деп хабарлайды
S RCPT TO:<Dima@kazan.ru> // Хатты тағы кімге жіберу керек, Dima@kazan.ru
R 250 OK // Сервер хабарламаны қабылдауға келіседі Dima@kazan.ru
S DATA // Деректерді беруге сұрау салу
R 354 Start mail input; end with <CRLF>.<CRLF> // Деректерді тасымалдауға рұқсат, соңғы жолда "нүкте"
болуы керек
S From: <vasy@list.ru>
//Хабарлама мәтіні (тақырыпты қоса)...
S To: <pety@kfti.knc.ru>
S Subject: Бастап жаңа жылмен!
S Mime-Version: 1.0
S X-Mailer: mPOP Web-Mail 2.19
S Date: Fri, 19 Sep 2003 08:37:43 +0400
S Reply-To: <vasy@list.ru>
S Content-Type: text/plain; charset=koi8-r
S Content-Transfer-Encoding: 8bit
S Message-Id: <E1A0D1b-000AnC-00.vasy-list-ru@f15.mail.ru>
S
S Бастап жаңа жылмен Петр!
S.
// Хабарламаның соңы, клиент нүктені жіберді
R 250 OK // Сервер деректерді алды
S QUIT // Клиент қосылымды жабу туралы сұрау салады
R 221 kazan.ru Service closing transmission channel // Сервер қосылымды жабады
Кейбір командалар SMTP
Міндетті командалар (командалар олар әрқашан болуы керек)
HELO - Байланыс сеансын ашу (hello).
MAIL - Деректерді бір немесе бірнеше пошта жәшіктеріне тасымалдаумен аяқталатын пошта
транзакциясын бастайды (mail).
RCPT - Пошта хабарламасын алушыны анықтайды (recipient).
Міндетті емес командалар
DATA - Осы пәрменнен кейінгі жолдарды алушы пошта хабарламасының деректері ретінде
қарастырады. SMTP жағдайында пошта хабарламасы таңбалардың тіркесімімен аяқталады: CRLF-нүктеCRLF.
RSET - Ағымдағы пошталық транзакцияны тоқтатады (reset).
NOOP - Алушыдан ешқандай шара қолданбауды, тек OK жауабын беруді талап етеді. Негізінен
мыналар үшін қолданылады тестілеуді ұйымдастыру.(No operation).
QUIT - Байланыс сеансын жабу.
VRFY - Ресиверден оның аргументі жарамды пайдаланушы аты екенін растауды талап етеді.
SEND - Деректерді бір немесе бірнеше терминалдарға (пошта жәшігіне емес) жеткізетін пошта
транзакциясын бастайды.
SOML - Деректерді бір немесе бірнеше терминалдарға немесе пошта жәшіктеріне жеткізетін MAIL
немесе SEND транзакциясын бастайды.
SAML - Деректерді бір немесе бірнеше терминалдарға және пошта жәшіктеріне жеткізетін MAIL және
SEND операцияларын бастайды.
EXPN - SMTP қабылдағышына аргументтің шын мәнінде пошталық мекенжай екенін растау пәрмені
және олай болса, хабарлама алушының мекенжайын қайтарыңыз (expand).
HELP - SMTP қабылдағышына оның командалары туралы хабарлама-анықтаманы қайтару туралы
бұйрық.
TURN - SMTP қабылдағышына OK деп айтуды және рөлдерді ауыстыруды, яғни STMP таратқышы
болуды немесе бас тарту туралы хабарлама жіберуді және SMTP қабылдағышы ретінде қалуды бұйырыңыз.
Кейбір командалардың синтаксисі SMTP
Командалар, MAIL, SEND, SOML және SAML, синтаксисі бірдей:
MAIL <бос орын> FROM:<reverse-path> <carriage-return line-feed>
қайда:
<reverse path> (кері мекенжайы) көрсетеді қате болған жағдайда хабарлама жіберетін серверге.
<carriage-return line-feed> (CRLF) қайтару арбалар.
Ескерту: SEND, SOML және SAML пәрмендері бірін-бірі толықтырады және сирек қолданылады.
Синтаксис RCPT ПОШТА командасының синтаксисіне ұқсас:
RCPT <бос орын> TO:<forward-path> <CRLF>
Дегенмен, MAIL-тен айырмашылығы, RCPT
аргументі
сөзден
басталады
<ОНДА:>.
Кейбір SMTP жауап кодтары
Жауап кодындағы әрбір цифрдың белгілі бір мағынасы бар. Бірінші цифр команданың орындалуы сәтті
болғанын (2), сәтсіз болғанын (5) немесе әлі аяқталмағанын білдіреді (3). RFC 821 құжатының Е
қосымшасында көрсетілгендей, қарапайым SMTP клиенті сервер жауабындағы бірінші цифрды ғана талдай
алады және оның негізінде өз әрекеттерін жалғастыра алады. Жауап кодының екінші және үшінші цифрлары
біріншісінің мағынасын түсіндіреді. Егер сіз SMTP қосымшасын жасап жатсаңыз, барлық SMTP жауап
кодтарының дизайнын міндетті түрде оқып шығыңыз.
211 Жүйенің күйі туралы жауап немесе көмек
214 Хабарлама-нұсқау (көмек)
220 <домен_аты> қызмет жұмысқа дайын
221 <домен_аты> қызмет байланыс арнасын жабады
250 Сұралған пошталық транзакция әрекеті сәтті аяқталды
251 Осы адресат жергілікті болып табылмайды; хабарлама < бағыты бойынша берілетін болады.forwardpath>
354 Хабарды жіберуді бастаңыз. Хабарлама CRLF-нүкте-CRLF тіркесімімен аяқталады
421 <домен_аты> қызмет қолжетімді емес; қосылым жабылады
450 Сұралған пошта транзакциясы пәрмені орындалмады, себебі пошта жәшігі қолжетімді емес
451 Сұралған пәрмендер орындалмады; хабарды өңдеу кезінде жергілікті қате орын алды
452 Сұралған пәрмен орындалмады; жүйеде ресурстар жеткіліксіз болды
500 Пәрмен мәтініндегі синтаксистік қате; команда анықталмады
Аргументтердегі немесе пәрмен параметрлеріндегі 501 синтаксистік қателер
502 Бұл команда орындалмаған
503 Пәрмендердің реттілігі дұрыс емес
504 Берілген команданың аргументтері болуы мүмкін емес
550 Сұралған пәрмен орындалмады, себебі пошта жәшігі қолжетімді емес
551 Бұл адресат жергілікті емес; < бағыты бойынша хабарлама жіберуге тырысыңызforward-path>
552 Сұралған пошталық транзакция пәрмені үзілді; жүйеге қолжетімді дискілік кеңістік толып кетті
553 Сұралған пәрмен орындалмады; жарамсыз пошта жәшігінің атауы көрсетілген
554 Транзакция орындалмады
Хабарларды ретрансляциялау
Аралық серверлерді поштаны алушыға жеткізу үшін пайдалануға болады.
Мысал:
хабарламаны келесіден жіберейік Vasy@ksu.ru хосттар арқылы @kstu.ru, @mail.ru алушыға
Koly@kazan.ru
Ретрансляция механизмі:
 хабарлама хостқа жіберіледі @kstu.ru
S MAIL FROM:<Vasy@ksu.ru>
S RCPT TO:<@kstu.ru, @mail.ru, Koly@kazan.ru>
 хабарлама хостқа жіберіледі @mail.ru
S MAIL FROM:<@kstu.ru>
S RCPT TO:<@mail.ru, Koly@kazan.ru>
 қарым-қатынас хостқа беріледі kazan.ru
S MAIL FROM:<@mail.ru>
S RCPT TO:<Koly@kazan.ru>
Бұл ретте параметрлер To, From және Cc өзгеріссіз қалады.
Резервтік пошта серверлері (relay)
Егер серверге негіз болмаса, пошта MX (DNS) жазбаларында орнатылған резервтік көшірмеге
жіберілуі мүмкін. Резервтік сервер поштаны сақтайды (клиент оны ала алмайды) негізгі сервер жұмыс
істемейінше, негізгі сервер жұмыс істей салысымен, резервтік сервер барлық жинақталған хаттарды жібереді.
Резервтік серверлер өте көп болуы мүмкін. Ереже бойынша, бірнеше әртүрлі серверлер бір-біріне қатысты
сақтық көшірме болып табылады.
Негізгі сервер қолжетімсіз болғанда, пошта сақтық көшірмеге жіберіледі, негізгі сервер қолжетімді
болғанда, сақтық көшірме поштаны негізгіге жібереді.
Download