V zaΦiatkoch elektronickej poÜty sa na prenos sprßv pou₧φval, a dodnes sa pou₧φva, protokol UUCP (Unix-to-Unix Copy Protokol). Nesk⌠r na bßze TCP/IP vznikol nov² poÜtov² protokol - SMTP (Simple Mail Transfer Protokol). P⌠vodnß verzia tohto protokolu je definovanß v dokumentoch RFC 821 [11] a RFC 822 [12]. SMTP definuje sp⌠sob, ak²m si jednotlivΘ MTA (Mail Transfer Agent) vymie≥aj· sprßvy. Nedefinuje sp⌠sob a miesto uchovßvania jednotliv²ch sprßv.
╚asto sa stßva, ₧e elektronickou poÜtou posielame aj binßrne s·bory (napr. s·bory s koncovkou *.zip, *.jpeg, *.gif a pod.). Tieto s·bory nie je obvykle mo₧nΘ posla¥ priamo. Z toho d⌠vodu musφ by¥ pou₧it² algoritmus, ktor² zak≤duje binßrne dßta do krßtkych riadkov 7-bitovΘho ASCII k≤du. RFC 1521 obsahuje tieto algoritmy k≤dovania:
- HELO (HELO)
Tento prφkaz sa pou₧φva na nadviazanie spojenia medzi procesmi "sender-SMTP" a "receiver-SMTP". Argument po╛a obsahuje meno hostite╛a "sender-SMTP".
- MAIL (MAIL)
Prφkaz sa pou₧φva na inicializßciu poÜtovej transakcie, pri ktorej s· poÜtovΘ dßta doruΦenΘ do jednej alebo viacer²ch poÜtov²ch schrßnok. Argument po╛a obsahuje spiatoΦn· cestu.
- RECIPIENT (RCPT)
Tento prφkaz je pou₧φvan² na identifikßciu ÜpecifickΘho prφjemcu poÜtov²ch dßt; viacerφ adresßti m⌠₧u by¥ Üpecifikovanφ viacnßsobn²m pou₧itφm tohto prφkazu.
- DATA (DATA)
Prφkaz umo₧≥uje zasielanie dßt prijφmaj·cej strane, ktorß ich ukladß do poÜtovΘho dßtovΘho buffera. PosielanΘ dßta m⌠₧u obsahova¥ ╛ubovo╛nΘ znaky tabu╛ky ASCII. Ako poslednΘ dßta je odoslanß sekvencia <CRLF>.<CRLF>, ktorß indikuje koniec posielania poÜtov²ch dßt.
- SEND (SEND)
Tento prφkaz sa pou₧φva na inicializßciu poÜtovej transakcie, pri ktorej s· poÜtovΘ dßta doruΦenΘ do jednΘho alebo viacer²ch terminßlov. Argument po╛a obsahuje spiatoΦn· cestu. Prφkaz je ·speÜn², ak je sprßva doruΦenß do terminßlu.
- SEND OR MAIL (SOML)
Prφkaz sa pou₧φva na inicializßciu poÜtovej transakcie, pri ktorej s· poÜtovΘ dßta doruΦenΘ do jednΘho alebo viacer²ch terminßlov alebo poÜtov²ch schrßnok. Ka₧dΘmu prφjemcovi sa sprßva doruΦφ do jeho terminßlu, ak je aktφvny, inak sa ulo₧φ do jeho poÜtovej schrßnky. Argument po╛a obsahuje spiatoΦn· cestu. Prφkaz je ·speÜn², ak je sprßva doruΦenß do terminßlu alebo do poÜtovej schrßnky.
- SEND AND MAIL (SAML)
Prφkaz sa pou₧φva na inicializßciu poÜtovej transakcie, pri ktorej s· poÜtovΘ dßta doruΦenΘ do jednΘho alebo viacer²ch terminßlov alebo poÜtov²ch schrßnok. Ka₧dΘmu prφjemcovi sa sprßva doruΦφ do jeho terminßlu, ak je aktφvny, a aj napriek tomu sa ulo₧φ do jeho poÜtovej schrßnky. Argument po╛a obsahuje spiatoΦn· cestu. Prφkaz je ·speÜn², ak je sprßva doruΦenß do poÜtovej schrßnky.
- RESET (RSET)
Tento prφkaz umo₧≥uje predΦasne ukonΦi¥ aktußlnu poÜtov· transakciu. VÜetky uchovßvanΘ odosielate╛ove i prφjemcove poÜtovΘ dßta musia by¥ vymazanΘ. Zmaza¥ treba aj stavovΘ tabu╛ky a tie₧ dßta umiestnenΘ vo vÜetk²ch pou₧φvan²ch bufferoch. "Receiver-SMTP" musφ posla¥ odpove∩ OK.
- VERIFY (VRFY)
Prφkaz po₧aduje od "receiver-SMTP" potvrdenie toto₧nosti u₧φvate╛a. Ak je parametrom prφkazu meno u₧φvate╛a, odpove∩ou bude plnΘ meno u₧φvate╛a (ak je znßme) a ·plnß Üpecifikßcia poÜtovej schrßnky.Prφklad:
S: VRFY Crispin
R: 250 Mark Crispin <Admin.MRC@SU-SCORE.ARPA>- EXPAND (EXPN)
Tento prφkaz ₧iada prφjemcu, aby potvrdil ·daje v mailovom zozname. Odpove∩ou s· ·plnΘ menß u₧φvate╛ov (ak s· znßme) a ·plnß Üpecifikßcia poÜtov²ch schrßnok jednotliv²ch Φlenov zoznamu.Prφklad:
S: EXPN Interested-Parties
R: 250-Mark Crispin <Admin.MRC@SU-SCORE.ARPA>
R: 250-Fred Fonebone <Fonebone@USC-ISIQ.ARPA>
R: 250-<ABC@MIT-MC.ARPA>
- HELP (HELP)
Prφkaz sp⌠sobφ, ₧e "receiver-SMTP" poÜle "sender-SMTP" informßcie o prφkazoch. Argumentom m⌠₧e by¥ ╛ubovo╛nΘ meno prφkazu; odpove∩ou je viacej informßcii o danom prφkaze.
- NOOP (NOOP)
Tento prφkaz nemß ₧iadnu funkciu, ₧iadne argumenty, pou₧φva sa na otestovanie spojenia "receiver-SMTP" posiela odpove∩ OK.
- QUIT (QUIT)
Prφkaz zatvorφ komunikaΦn² kanßl, "receiver-SMTP" poÜle odpove∩ OK.
- TURN (TURN)
"receiver-SMTP" musφ posla¥ odpove∩ OK a ·lohy sa zmocnφ "sender-SMTP" alebo odmietne posla¥ odpove∩ a ·lohu si ponechß "receiver-SMTP". Ak sa nepodarφ vymeni¥ ·lohy, "receiver-SMTP" poÜle odpove∩ 502.
V ∩alÜom texte budeme pou₧φva¥ oznaΦenie "R:" pre "receiver-SMTP" a "S:" pre "sender-SMTP". Nasleduje nieko╛ko prφkladov komunikßcie medzi "receiver-SMTP" a "sender-SMTP"
R: 220 BBN-UNIX.ARPA Simple Mail Transfer Service Ready
S: HELO USC-ISIF.ARPA
R: 250 BBN-UNIX.ARPA
S: MAIL FROM:<Smith@USC-ISIF.ARPA>
R: 250 OK
S: RCPT TO:<Jones@BBN-UNIX.ARPA>
R: 250 OK
S: RCPT TO:<Green@BBN-UNIX.ARPA>
R: 550 No such user here
S: RCPT TO:<Brown@BBN-UNIX.ARPA>
R: 250 OK
S: DATA
R: 354 Start mail input; end with <CRLF>.<CRLF>
S: Blah blah blah...
S: ...etc. etc. etc.
S: .
R: 250 OK
S: QUIT
R: 221 BBN-UNIX.ARPA Service closing transmission channel
R: 220 MIT-Multics.ARPA Simple Mail Transfer Service Ready
S: HELO ISI-VAXA.ARPA
R: 250 MIT-Multics.ARPA
S: MAIL FROM:<Smith@ISI-VAXA.ARPA>
R: 250 OK
S: RCPT TO:<Jones@MIT-Multics.ARPA>
R: 250 OK
S: RCPT TO:<Green@MIT-Multics.ARPA>
R: 550 No such user here
S: RSET
R: 250 OK
S: QUIT
R: 221 MIT-Multics.ARPA Service closing transmission channel
R: 220 SU-SCORE.ARPA Simple Mail Transfer Service Ready
S: HELO MIT-MC.ARPA
R: 250 SU-SCORE.ARPA
S: VRFY Crispin
R: 250 Mark Crispin <Admin.MRC@SU-SCORE.ARPA>
S: SEND FROM:<EAK@MIT-MC.ARPA>
R: 250 OK
S: RCPT TO:<Admin.MRC@SU-SCORE.ARPA>
R: 250 OK
S: DATA
R: 354 Start mail input; end with <CRLF>.<CRLF>
S: Blah blah blah...
S: ...etc. etc. etc.
S: .
R: 250 OK
S: QUIT
R: 221 SU-SCORE.ARPA Service closing transmission channel
R: 220 USC-ISIF.ARPA Simple Mail Transfer Service Ready
S: HELO LBL-UNIX.ARPA
R: 250 USC-ISIF.ARPA
S: MAIL FROM:<mo@LBL-UNIX.ARPA>
R: 250 OK
S: RCPT TO:<fred@USC-ISIF.ARPA>
R: 251 User not local; will forward to <Jones@USC-ISI.ARPA>
S: DATA
R: 354 Start mail input; end with <CRLF>.<CRLF>
S: Blah blah blah...
S: ...etc. etc. etc.
S: .
R: 250 OK
S: QUIT
R: 221 USC-ISIF.ARPA Service closing transmission channel
(c) 2004 Ing. Peter GaÜparoviΦ - www.pgasparovic.com
Literat·ra
[1] Feiber, W.: Encyklopedie poΦφtaΦov²ch sφtφ. Praha, Computer Press, 1996.
[2] B°ehovsk², P.: Praktick² ·vod TCP/IP. ╚eskΘ Bud∞jovice, KOPP, 1994 .
[3] Mrßzek, L.: Prvnφ kroky INTERNETEM aneb Je to na WWW!. ╚eskΘ Bud∞jovice, KOPP, 1995.
[4] èmrha, P. û Rudolf, V.: Internetworking pomocφ TCP/IP. ╚eskΘ Bud∞jovice, KOPP, 1995.
[5] Hejna, L.: Lokßlnφ poΦφtaΦovΘ sφte. Praha, GRADA, 1994.
[6] Falk, B.: Pr∙vodce sv∞tem Internetu. Praha, Computer Press, 1995.
[7] Lhotka, L.: SERVER v INTERNETU. ╚eskΘ Bud∞jovice, KOPP, 1997.
[8] Peterka, J.: Co je Φφm ... v poΦφtaΦov²ch sφtφch. COMPUTERWORLD, 1994, Φ. 4, 7, 9, 17, 21, 35, 44.
[9] Sterling, B.: Short History of the Internet. The Magazine of Fantasy and Science Fiction, 1993.
[10] Dostßlek, L. - Kabelovß, A.: MIME û Multipurpose Internet Mail Extension. http://info.pvt.net/mime.htm, 1997.
[11] Postel, J. B.: Simple Mail Transfer Protokol. RFC # 821, August 1982.
[12] Crocker, D. H.: Standard For The Format Of Arpa Internet Text Messages. RFC # 822, August 1982.
[13] Borenstein, N. - Freed, N.: MIME (Multipurpose Internet Mail Extension) Part
One: Mechanisms for Specifying and Describing the Format of Internet Message Bodies. RFC # 1521, September 1993.
[14] Borenstein, N. - Freed, N.: Multipurpose Internet Mail Extension (MIME) Part
One: Format of Internet Message Bodies. RFC # 2045, November 1996.
[15] Rose, M.: Post Office Protocol û Version 3. RFC # 1225, May 1991.
[16] Rose, M. - Myers, J.: Post Office Protocol û Version 3. RFC # 1725, November 1994.
[17] Dresslerovß, B. - Veselsk², J. - Gombik, G.: LINUX DokumentaΦnφ projekt. Praha, Computer Press, 1998.
[18] èovΦφk, J.: Login. PC Revue, 1995, Φ. 4 a₧ 8.
[19] Pal·ch, P.: Poznßte LINUX?. PC Revue, 1998, Φ. 2.
[20] Rivest, R.: The MD5 MessageûDigest Algorithm. RFC # 1321, Aprφl 1992.
[21] Dostßlek, L. a kol.: Velk² pr∙vodce protokoly TCP-IP BezpeΦnost. Praha, Computer Press, 2001.