GNU/Linux >> Znalost Linux >  >> Linux

Pochopení toho, jak funguje e-mailový systém

E-mail se stal velmi oblíbeným komunikačním nástrojem. Důkladné porozumění konceptu e-mailového systému pomáhá správcům systému prozkoumat různé druhy problémů s e-mailovým systémem.

1. Jak e-mail cestuje

Níže uvedený diagram ukazuje typickou sekvenci událostí, ke kterým dochází, když Alice píše zprávu pomocí svého poštovního uživatelského agenta (MUA). Zadá nebo vybere z adresáře e-mailovou adresu svého korespondenta. Poté odešle e-mail.

  1. Alice's MUA formátuje zprávu ve formátu internetového e-mailu a používá protokol SMTP (Simple Mail Transfer Protocol) k odeslání zprávy místnímu agentovi pro přenos pošty (MTA), v tomto případě smtp.a.org, provozovanému Alice's Internet Service Provider (ISP).
  2. MTA se dívá na cílovou adresu uvedenou v protokolu SMTP (ne v záhlaví zprávy), v tomto případě [email protected]. Internetová e-mailová adresa je řetězec ve tvaru [email protected], který je známý jako Fully Qualified Domain Address (FQDA). Část před znakem @ je místní částí adresy, často uživatelské jméno příjemce, a část za znakem @ je název domény. MTA vyhledá tento název domény v systému názvů domén, aby našel servery pro výměnu pošty přijímající zprávy pro danou doménu.
  3. Server DNS pro doménu b.org, ns.b.org, odpoví záznamem MX se seznamem serverů pro výměnu pošty pro danou doménu, v tomto případě mx.b.org, server provozovaný Bobovým ISP.
  4. smtp.a.org odešle zprávu na mx.b.org pomocí SMTP, která ji doručí do poštovní schránky uživatele bob.
  5. Bob stiskne tlačítko „získat poštu“ ve svém MUA, čímž zprávu vyzvedne pomocí protokolu POP3 (Post Office Protocol) nebo pomocí protokolu IMAP (Internet Message Access Protocol).

2. Standardní formát e-mailu

Zpráva se skládá z polí záhlaví a volitelně těla. Každé pole záhlaví lze zobrazit jako jeden logický řádek znaků ASCII obsahující název pole a tělo pole. Část těla pole lze rozdělit na více řádky . Strukturu polí záhlaví lze považovat za složenou z názvu pole následovaného dvojtečkou („: “), následované tělem pole a ukončeným návratem vozíku/řádkem.

Název pole se musí skládat z tisknutelných znaků ASCII (tj. znaků, které mají hodnoty mezi 33 a 126, desetinné číslo, kromě dvojtečky). Tělo pole může obsahovat jakýkoli znak ASCII, kromě CR nebo LF. (I když CR a/nebo LF mohou být přítomny ve skutečném textu, jsou odstraněny rozbalením pole.)

Požadované minimum

Date: 26 Aug 76 1429 EDT       Date: 26 Aug 76 1429 EDT
From: [email protected]    or   From: [email protected]
Bcc:                             To: [email protected]

Upozorňujeme, že pole „Skrytá kopie“ může být prázdné, zatímco pole „Komu“ musí obsahovat alespoň jednu adresu.

Některá společná pole

1. Přijato

Je to pole stopy. Je to užitečné pro vývojáře a podporu. Kopii tohoto pole přidá každá transportní služba, která zprávu přenáší. Informace v terénu mohou být docela užitečné pro sledování dopravních problémů.

Received: from agminet03.b.org (agminet03.b.org [192.168.10.1])
	by gw2.b.org(Switch-3.2.0/Switch-3.2.0) with ESMTP id m3A7ZtIj030617
	for [[email protected]]; Thu, 10 Apr 2008 01:35:55 -0600

2. Od

„Od“ je pole původce. Toto pole obsahuje identitu osoby (osob), které chtějí tuto zprávu odeslat. Proces vytváření zprávy by měl toto pole standardně obsahovat jako jediná ověřená adresa stroje, která označuje AGENTU (osobu, systém nebo proces), který zprávu zadává. Pokud tak neučiníte, MUSÍ být přítomno pole „Sender“. Pokud je pole „Od“ nastaveno tímto způsobem, pole „Odesilatel“ je nepovinné a je nadbytečné s polem „Od“. Ve všech případech musí být adresy v poli „Od“ strojově použitelné (specifikace addr) a nesmí obsahovat pojmenované seznamy (skupiny).

From: Alice [[email protected]]

3. Komu

„To“ je pole přijímače. Toto pole obsahuje identitu primárních příjemců zprávy.

To: [[email protected]]

4. ID zprávy

„ID MESSAGE-ID“ je referenční pole. Toto pole obsahuje jedinečný identifikátor (jednotka adresy místní části), který odkazuje na TUTO verzi TÉTO zprávy. Jedinečnost identifikátoru zprávy je zaručena hostitelem, který jej generuje. Tento identifikátor má být strojově čitelný a nemusí být nutně smysluplný pro lidi. Identifikátor zprávy se týká právě jedné instance konkrétní zprávy; následující revize zprávy by měly obdržet nové identifikátory zprávy.

Message-ID: [[email protected]]

5. Předmět

Toto je určeno k poskytnutí shrnutí nebo označení povahy zprávy.

Subject: Hello

Tělo

Pole záhlaví Content-Type lze použít k určení typu a podtypu dat v těle zprávy a k úplnému určení nativní reprezentace (kódování) takových dat.

1. Text

Tělo je jednoduše posloupnost řádků obsahujících znaky ASCII. Od záhlaví je oddělena prázdným řádkem (tj. řádkem, který před CRLF nic nepředchází).

Content-Type: text/plain

2. MIME – Multipurpose Internet Mail Extensions

MIME byl pečlivě navržen jako rozšiřitelný mechanismus. Popisuje pole záhlaví MIME verze, pole záhlaví Content-Type a pole záhlaví Content-Transfer-Encoding. Například:

Content-Type: multipart/mixed;
boundary="------------040406000905020906030306"
--_77c1a01c-9699-4678-a620-eccfaf27c4c8_
Content-Type: text/plain
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="file.txt"

3. SMTP – Simple Mail Transfer Protocol

Simple Mail Transfer Protocol (SMTP), protokol používaný pro výměnu e-mailů mezi body na internetu. Cílem protokolu SMTP (Simple Mail Transfer Protocol) je přenášet poštu spolehlivě a efektivně.

model SMTP

Návrh SMTP je založen na následujícím modelu komunikace:jako výsledek uživatelského mailového požadavku vytvoří odesílatel-SMTP obousměrný přenosový kanál k příjemci-SMTP. Přijímač-SMTP může být buď konečným cílem, nebo prostředníkem. Příkazy SMTP jsou generovány odesílatelem SMTP a odesílány příjemci SMTP. Odpovědi SMTP jsou odesílány od příjemce-SMTP k odesílateli-SMTP jako odpověď na příkazy.

Příklad poštovní transakce SMTP

Existují tři kroky k poštovním transakcím SMTP. Transakce je zahájena příkazem MAIL, který udává identifikaci odesílatele. Následuje řada jednoho nebo více příkazů RCPT, které poskytují informace přijímači. Poté příkaz DATA poskytne data pošty. A konečně indikátor konce dat pošty potvrzuje transakci.

C: #telnet smtp.a.org 25
C: Trying 192.168.**.**...
C: Connected to bigip-adc-mail-10g.a.org (192.168.**.**).
Escape character is '^]'.
C: 220 server ready. Unauthorized Access Prohibited.
S: EHLO test1.a.org
S: 250-bigip-adc-mail-10g.a.org Hello test1.a.org, pleased to meet you
S: 250-8BITMIME
S: 250-SIZE 15728640
S: 250-DSN
S: 250-ENHANCEDSTATUSCODES
S: 250-STARTTLS
S: 250-XAUTH
S: 250 HELP
C: MAIL FROM:
S: 250 2.1.0 Sender OK
C: RCPT TO:
S: 250 2.1.5 Recipient ok
C: DATA
S: 354 Enter mail, end with "." on a line by itself
C: Subject: email title ..content
C: ....
C: . 

S: 250 2.6.0 Message accepted for delivery
C: quit
S: 221 2.0.0  bigip-adc-mail-10g.a.org Closing connection
S: Connection closed by foreign host.

4. POP3 – Post Office Protocol verze 3

POP3 se používá ke čtení e-mailů. S POP3 se vaše pošta ukládá do jediné poštovní schránky na serveru. Když čtete svou poštu, je okamžitě stažena do vašeho počítače a kromě případů, kdy jste to předtím uspořádali, již není udržována na serveru.

Zpočátku hostitel serveru spustí službu POP3 nasloucháním na TCP portu 110. Když si klient přeje službu využít, naváže TCP spojení se serverem. Po navázání spojení server POP3 odešle pozdrav. Klient a POP3 server si pak vyměňují příkazy a odpovědi (v tomto pořadí), dokud není spojení uzavřeno nebo přerušeno.

Protokol POP3 se používá k tomu, aby pracovní stanice mohla získávat poštu, kterou pro ni server drží.

Příklad relace POP3

S: [wait for connection on TCP port 110]
C: [open connection]
S:    +OK POP3 server ready [[email protected]]
C: USER Alice
S: +OK Alice is a real hoopy frood
C: PASS secret
S: +OK Alice's maildrop has 2 messages (320 octets)
C:    STAT
S:    +OK 2 320
C:    LIST
S:    +OK 2 messages (320 octets)
S:    1 120
S:    2 200
S:    .
C:    RETR 1
S:    +OK 120 octets
S:    [the POP3 server sends message 1]
S:    .
C:    DELE 1
S:    +OK message 1 deleted
C:    RETR 2
S:    +OK 200 octets
S:    [the POP3 server sends message 2]
S:    .
C:    DELE 2
S:    +OK message 2 deleted
C:    QUIT
S:    +OK dewey POP3 server signing off (maildrop empty)
C:  [close connection]
S:  [wait for next connection]

5. IMAP – Internet Message Access Protocol

IMAP (Internet Message Access Protocol) je standardní protokol pro přístup k e-mailu z vašeho místního serveru. IMAP je protokol klient/server, ve kterém váš internetový server přijímá a uchovává e-maily. Vy (nebo váš e-mailový klient) můžete zobrazit pouze záhlaví a odesílatele dopisu a poté se rozhodnout, zda si poštu stáhnout. Můžete také vytvářet a manipulovat s více složkami nebo poštovními schránkami na serveru, mazat zprávy nebo hledat určité části nebo celou poznámku. IMAP vyžaduje nepřetržitý přístup k serveru během doby, kdy pracujete se svou poštou.

IMAP lze považovat za vzdálený souborový server. POP3 lze chápat jako „store-and-forward “.

stručné srovnání POP3 a IMAP

Výhody protokolu POP3

  • Jednodušší protokol; jednodušší na implementaci.
  • V současné době je k dispozici více klientského softwaru.

Výhody protokolu IMAP

  • Může manipulovat s příznaky trvalého stavu zpráv.
  • Může ukládat zprávy a také je načítat.
  • Může přistupovat a spravovat více poštovních schránek.
  • Může podporovat souběžné aktualizace a přístup ke sdíleným poštovním schránkám.
  • Vhodné pro přístup k jiným než e-mailovým datům; např. NetNews, dokumenty.
  • Lze také použít off-line paradigma pro minimální dobu připojení a využití disku.
  • Doprovodný protokol definovaný pro správu konfigurace uživatele (IMSP).
  • Konstrukce umožňující optimalizaci výkonu online, zejména u nízkorychlostních připojení.

Ukázkové připojení IMAP4

Následuje přepis připojení IMAP4rev1. Dlouhá čára v této ukázce je pro přehlednost redakce přerušena.

C: telnet imap.a.org 143
S: Trying 192.168.***.***...
S: Connected to imap.a.org (192.168.***.***).
Escape character is '^]'.
S:   * OK IMAP4rev1 Service Ready
C:   a001 login mrc secret
S:   a001 OK LOGIN completed
C:   a002 select inbox
S:   * 18 EXISTS
S:   * FLAGS (\Answered \Flagged \Deleted \Seen \Draft)
S:   * 2 RECENT
S:   * OK [UNSEEN 17] Message 17 is the first unseen message
S:   * OK [UIDVALIDITY 3857529045] UIDs valid

S:   a002 OK [READ-WRITE] SELECT completed
C:   a003 fetch 12 full
S:   * 12 FETCH (FLAGS (\Seen) INTERNALDATE "17-Jul-1996 02:44:25 -0700"
      RFC822.SIZE 4286 ENVELOPE ("Wed, 17 Jul 1996 02:23:25 -0700 (PDT)"
      "IMAP4rev1 WG mtg summary and minutes"
      (("Terry Gray" NIL "gray" "cac.washington.edu"))
      (("Terry Gray" NIL "gray" "cac.washington.edu"))
      (("Terry Gray" NIL "gray" "cac.washington.edu"))
      ((NIL NIL "imap" "cac.washington.edu"))
      ((NIL NIL "minutes" "CNRI.Reston.VA.US")
      ("John Klensin" NIL "KLENSIN" "INFOODS.MIT.EDU")) NIL NIL
      "[[email protected]]")
       BODY ("TEXT" "PLAIN" ("CHARSET" "US-ASCII") NIL NIL "7BIT" 3028 92))
S:    a003 OK FETCH completed
C:    a004 fetch 12 body[header]
S:    * 12 FETCH (BODY[HEADER] {350}
S:    Date: Wed, 17 Jul 1996 02:23:25 -0700 (PDT)
S:    From: Terry Gray [[email protected]]
S:    Subject: IMAP4rev1 WG mtg summary and minutes
S:    To: [email protected]
S:    cc: [email protected], John Klensin [[email protected]]
S:    Message-Id: [[email protected]]
S:    MIME-Version: 1.0
S:    Content-Type: TEXT/PLAIN; CHARSET=US-ASCII
S:
S:    )
S:    a004 OK FETCH completed
C:    a005 store 12 +flags \deleted
S:    * 12 FETCH (FLAGS (\Seen \Deleted))
S:    a005 OK +FLAGS completed
C:    a006 logout
S:    * BYE IMAP4rev1 server terminating connection
S:    a006 OK LOGOUT completed


Linux
  1. Jak Hexdump funguje

  2. Jak přizpůsobit národní prostředí systému?

  3. Pochopení šablon rsyslog

  1. Jak vytisknu zprávu na stderr v Go?

  2. Jak zkontrolovat, zda funguje proxy server Socks5

  3. Jak seřadit tento výstup 1,10,11..2

  1. Jak aktualizovat AlmaLinux

  2. Jak zkontrolovat verzi Linuxu

  3. Jak změnit název hostitele v systému Linux