SMTP

SMTP
Polecane artykuły


SMTP (ang. Simple Mail Transfer Protocol) - protokół ten służy do przekazywania wysłanej poczty na wybrany serwer pocztowy (serwer przechowujący i rozprowadzający nasze wiadomości). SMTP udostępnia mechanizm przesyłu poczty e-mail: bezpośrednio od serwera nadawcy do serwera odbiorcy (gdy oba są podłączone do tego samego systemu transportowego) lub przez jeden lub więcej serwerów pośredniczących SMTP kiedy jest inaczej. Po raz pierwszy zdefiniowany w RFC 821 w 1982 roku, został zaktualizowany w 2008 roku o Rozszerzone dodatki SMTP przez RFC 5321, który jest do dziś szeroko rozpowszechnionym protokołem.[1]

Numery portów serwera:

  • SMTP - 25
  • SMTPs - 465

Historia SMTP

Prekursorem SMTP był program SNDMSG (Send Message), wykorzystany w 1971 roku przez Raya Tomlinsona (w połączeniu z jego własnym projektem - CYPNET) do stworzenia aplikacji umożliwiającej przesyłanie poczty elektronicznej w sieci ARPA-NET. Rok później program wykorzystywany w Arpanecie do przesyłania plików - FTP, został poszerzony o polecenia MAIL i MLFL. Pocztę przesyłano za pomocą FTP do 1980 roku - wtedy powstał pierwszy standard protokołu poczty elektronicznej - MTP (Mail Transfer Protocol). MTP kilkukrotnie modyfikowano, a w 1982 roku, Jonathan B. Postel opisał Simple Mail Transfer Protocol.

Używanie

Używany port stosuje się w sieciach podłączonych na stałe. Do pobierania wiadomości z naszego serwera służy protokół POP3. Ale żeby móc wysyłać wiadomości na wybrany serwer musimy używać protokołu SMTP.

Rozszerzenia protokołu SMTP

SPF - Sender Policy Framework

  • Uwierzytelnia tylko adres MAIL FROM
  • Sprawdza, czy email przychodzący danego serwera pocztowego może stosować określoną nazwę domenową w MAUL FROM. Opiera się na infrastrukturze DNS oraz rekordach TXT.

DKIM – DomainKeys Identified Mail

  • Uwierzytelnia treść i niektóre nagłówki wiadomości.
  • Opiera się na cyfrowym podpisywaniu treści wiadomości i części nagłówków oraz infrastrukturze DNS do dystrybucji kluczy publicznych.
  • Powstał z połączenia Yahoo! DomainKeys i Casio Identified Internet Mail.

CSV - Certified Server Validation

  • Uwierzytelnia tylko parametr polecenia Helo/Ehlo
  • Określa poziom zaufania przy połączeniu nadchodzącym z innego MTA na podstawie jednego adresu IP oraz parametru polecenia Helo lub Ehlo. Stosuje infrastrukturę DNS oraz rekordy SRV.

Programy biorące udział w przesyłaniu poczty

W przesyłaniu poczty bierze udział kilka programów. Program stosowany przez użytkownika końcowego, służący do odbioru i wysyłania, a także czytania i pisania listów, nazywany jest MUA - Mail User Agent. Przykładami MUA są:

  • Mozilla Thunderbird
  • Outlook Express
  • PINE
  • Mutt

Część serwera odpowiedzialna za komunikowanie się z użytkownikami (odbiór poczty) oraz wysyłanie i odbieranie poczty od innych serwerów nazywana jest MTA - Mail Transfer Agent. Najpopularniejsze to:

  • Sendmail
  • Gmail
  • Postfix
  • Exim

Część serwera odpowiedzialna za dostarczenie poczty do lokalnego użytkownika nazywana jest MDA - Mail Delivery Agent. Przykłady samodzielnych MDA to:

  • Maildrop
  • Procmail

Większość MTA posiada własne mechanizmy dostarczania poczty lokalnym użytkownikom, więc nie zawsze konieczne jest korzystanie z dodatkowych MDA.

Przykładowa sesja SMTP

Przykład pokazuje jak wiadomość e-mail wysłana przez Smitha na hoście bar.com, do Jonesa, Green i Brown na hoście foo.com. Zakładamy, że host bar.com kontaktuje się bezpośrednio z hostem foo.com. Poczta jest akceptowana przez Jonesa i Browna. Green nie posiada skrzynki pocztowej na hoście foo.com. W przykładzie możemy wyróżnić kolejno operacje:

  • rozpoczęcie połączenia z serwerem (polecenie ehlo),
  • podanie adresu nadawcy (polecenie mail from),
  • podanie adres odbiorcy (polecenie rcpt to),
  • wpisanie wiadomości (polecenie data),
  • zakończenie sesji (polecenie quit).[2]
S: 220 foo.com Simple Mail Transfer Service Ready
C: EHLO bar.com
S: 250-foo.com greets bar.com
S: 250-8BITMIME
S: 250-SIZE
S: 250-DSN
S: 250 HELP
C: MAIL FROM:<Smith@bar.com>
S: 250 OK
C: RCPT TO:<Jones@foo.com>
S: 250 OK
C: RCPT TO:<Green@foo.com>
S: 550 No such user here
C: RCPT TO:<Brown@foo.com>
S: 250 OK
C: DATA
S: 354 Start mail input; end with <CRLF>.<CRLF>
C: Blah blah blah...
C:... etc. etc. etc.
C:. 
S: 250 OK
C: QUIT
S: 221 foo.com Service closing transmission channel [3]

Przypisy

Bibliografia

Autor: Mateusz Woźniak, Karol Madej