GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Verstehen, wie ein E-Mail-System funktioniert

E-Mail ist zu einem äußerst beliebten Kommunikationsmittel geworden. Ein solides Verständnis des E-Mail-Systemkonzepts hilft Systemadministratoren, verschiedene Arten von Problemen mit dem E-Mail-System zu untersuchen.

1. Wie reist eine E-Mail

Das folgende Diagramm zeigt eine typische Abfolge von Ereignissen, die stattfinden, wenn Alice eine Nachricht mit ihrem Mail User Agent (MUA) erstellt. Sie gibt die E-Mail-Adresse ihres Gesprächspartners ein oder wählt sie aus einem Adressbuch aus. Dann sendet sie die E-Mail.

  1. Alice's MUA formatiert die Nachricht im Internet-E-Mail-Format und verwendet das Simple Mail Transfer Protocol (SMTP), um die Nachricht an den lokalen Mail Transfer Agent (MTA) zu senden, in diesem Fall smtp.a.org, betrieben von Alices Internet Service Provider (ISP).
  2. Der MTA sieht sich die im SMTP-Protokoll angegebene Zieladresse an (nicht aus dem Nachrichtenheader), in diesem Fall [email protected]. Eine Internet-E-Mail-Adresse ist eine Zeichenfolge der Form [email protected], die als Fully Qualified Domain Address (FQDA) bezeichnet wird. Der Teil vor dem @-Zeichen ist der lokale Teil der Adresse, häufig der Benutzername des Empfängers, und der Teil nach dem @-Zeichen ist ein Domänenname. Der MTA sucht diesen Domainnamen im Domain Name System, um die Mail-Exchange-Server zu finden, die Nachrichten für diese Domain annehmen.
  3. Der DNS-Server für die Domain b.org, ns.b.org, antwortet mit einem MX-Eintrag, der die Mail-Exchange-Server für diese Domain auflistet, in diesem Fall mx.b.org, ein Server, der von Bobs ISP betrieben wird.
  4. smtp.a.org sendet die Nachricht über SMTP an mx.b.org, das sie an die Mailbox des Benutzers bob.
  5. liefert
  6. Bob drückt die Schaltfläche „E-Mail abrufen“ in seinem MUA, das die Nachricht über das Post Office Protocol (POP3) oder das Internet Message Access Protocol (IMAP) abruft.

2. Standardformat für E-Mail

Eine Nachricht besteht aus Header-Feldern und optional einem Body. Jedes Header-Feld kann als einzelne, logische Zeile aus ASCII-Zeichen betrachtet werden, die einen Feldnamen und einen Field-Body umfasst. Der Field-Body-Teil kann in mehrere aufgeteilt werden Zeilen . Die Struktur von Header-Feldern kann so gesehen werden, dass sie aus einem Feldnamen gefolgt von einem Doppelpunkt besteht („: “), gefolgt von einem Feldkörper und abgeschlossen durch einen Wagenrücklauf/Zeilenvorschub.

Der Feldname muss aus druckbaren ASCII-Zeichen bestehen (d. h. Zeichen mit Werten zwischen 33. und 126. Dezimal, außer Doppelpunkt). Der Feldkörper kann jedes beliebige ASCII-Zeichen außer CR oder LF enthalten. (Während CR und/oder LF im eigentlichen Text vorhanden sein können, werden sie durch die Aktion des Aufklappens des Feldes entfernt.)

Mindestanforderung

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

Beachten Sie, dass das Feld „Bcc“ leer sein kann, während das Feld „An“ mindestens eine Adresse enthalten muss.

Einige allgemeine Felder

1. Erhalten

Es ist ein Spurenfeld. Es ist nützlich für Entwickler und Support. Eine Kopie dieses Felds wird von jedem Transportdienst hinzugefügt, der die Nachricht weiterleitet. Die Informationen im Feld können für die Verfolgung von Transportproblemen sehr nützlich sein.

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. Von

„Von“ ist das Urheberfeld. Dieses Feld enthält die Identität der Person(en), die möchten, dass diese Nachricht gesendet wird. Der Nachrichtenerstellungsprozess sollte dieses Feld standardmäßig auf eine einzelne, authentifizierte Maschinenadresse setzen, die den AGENT (Person, System oder Prozess) angibt, der die Nachricht eingibt. Wenn dies nicht der Fall ist, MUSS das Feld „Absender“ vorhanden sein. Wenn das „Von“-Feld auf diese Weise voreingestellt ist, ist das „Absender“-Feld optional und mit dem „Von“-Feld redundant. Adressen im „Von“-Feld müssen in jedem Fall maschinenlesbar sein (adr-specs) und dürfen keine benannten Listen (Gruppen) enthalten.

From: Alice [[email protected]]

3. An

„An“ ist ein Empfängerfeld. Dieses Feld enthält die Identität der primären Empfänger der Nachricht.

To: [[email protected]]

4. Nachrichten-ID

„MESSAGE-ID“ ist ein Referenzfeld. Dieses Feld enthält eine eindeutige Kennung (die Adresseinheit des lokalen Teils), die sich auf DIESE Version DIESER Nachricht bezieht. Die Eindeutigkeit der Nachrichtenkennung wird durch den Host garantiert, der sie generiert. Diese Kennung soll maschinenlesbar und für Menschen nicht unbedingt aussagekräftig sein. Eine Nachrichtenkennung gehört zu genau einer Instanziierung einer bestimmten Nachricht; Nachfolgende Überarbeitungen der Nachricht sollten jeweils neue Nachrichtenkennungen erhalten.

Message-ID: [[email protected]]

5. Betreff

Dies soll eine Zusammenfassung liefern oder die Art der Nachricht angeben.

Subject: Hello

Körper

Ein Content-Type-Header-Feld kann verwendet werden, um den Typ und Untertyp von Daten im Text einer Nachricht anzugeben und um die native Darstellung (Codierung) solcher Daten vollständig anzugeben.

1. Text

Der Körper ist einfach eine Folge von Zeilen, die ASCII-Zeichen enthalten. Es wird von den Kopfzeilen durch eine Null-Zeile getrennt (d. h. eine Zeile, in der dem CRLF nichts vorangeht).

Content-Type: text/plain

2. MIME – Mehrzweck-Internet-Mail-Erweiterungen

MIME wurde sorgfältig als erweiterbarer Mechanismus entworfen. Es beschreibt das MIME-Version-Header-Feld, das Content-Type-Header-Feld, das Content-Transfer-Encoding-Header-Feld. Zum Beispiel:

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), ein Protokoll, das für den Austausch von E-Mail zwischen Punkten im Internet verwendet wird. Das Ziel des Simple Mail Transfer Protocol (SMTP) ist die zuverlässige und effiziente Übertragung von E-Mails.

das SMTP-Modell

Das SMTP-Design basiert auf dem folgenden Kommunikationsmodell:Als Ergebnis einer Benutzer-E-Mail-Anfrage baut das Sender-SMTP einen bidirektionalen Übertragungskanal zu einem Empfänger-SMTP auf. Das Empfänger-SMTP kann entweder das endgültige Ziel oder ein Zwischenziel sein. SMTP-Befehle werden vom Sender-SMTP generiert und an das Empfänger-SMTP gesendet. SMTP-Antworten werden als Antwort auf die Befehle vom Empfänger-SMTP zum Sender-SMTP gesendet.

Beispiel für eine SMTP-Mail-Transaktion

SMTP-E-Mail-Transaktionen bestehen aus drei Schritten. Die Transaktion wird mit einem MAIL-Befehl gestartet, der die Absenderidentifikation angibt. Es folgt eine Reihe von einem oder mehreren RCPT-Befehlen, die dem Empfänger Informationen geben. Dann gibt ein DATA-Befehl die Maildaten aus. Und schließlich bestätigt der Datenendindikator die Transaktion.

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 Version 3

POP3 wird zum Lesen von E-Mails verwendet. Mit POP3 wird Ihre E-Mail für Sie in einem einzigen Postfach auf dem Server gespeichert. Wenn Sie Ihre E-Mail lesen, wird sie sofort auf Ihren Computer heruntergeladen und, sofern nicht anders vereinbart, nicht länger auf dem Server gespeichert.

Zunächst startet der Serverhost den POP3-Dienst, indem er TCP-Port 110 abhört. Wenn ein Client den Dienst nutzen möchte, stellt er eine TCP-Verbindung mit dem Server her. Beim Verbindungsaufbau sendet der POP3-Server eine Begrüßung. Der Client und der POP3-Server tauschen dann Befehle bzw. Antworten aus, bis die Verbindung geschlossen oder abgebrochen wird.

Das POP3-Protokoll wird verwendet, damit eine Arbeitsstation E-Mails abrufen kann, die der Server für sie bereithält.

POP3-Sitzungsbeispiel

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) ist ein Standardprotokoll für den Zugriff auf E-Mails von Ihrem lokalen Server. IMAP ist ein Client/Server-Protokoll, bei dem E-Mails von Ihrem Internet-Server empfangen und für Sie gespeichert werden. Sie (oder Ihr E-Mail-Client) können nur die Überschrift und den Absender des Briefes anzeigen und dann entscheiden, ob Sie die E-Mail herunterladen möchten. Sie können auch mehrere Ordner oder Postfächer auf dem Server erstellen und bearbeiten, Nachrichten löschen oder nach bestimmten Teilen oder einer ganzen Notiz suchen. IMAP erfordert ständigen Zugriff auf den Server, während Sie mit Ihren E-Mails arbeiten.

IMAP kann als Remote-Dateiserver betrachtet werden. POP3 kann man sich als „Speichern und Weiterleiten“ vorstellen ”Dienst.

ein kurzer Vergleich von POP3 und IMAP

Vorteile des POP3-Protokolls

  • Einfacheres Protokoll; einfacher umzusetzen.
  • Weitere Client-Software derzeit verfügbar.

Vorteile des IMAP-Protokolls

  • Kann permanente Nachrichtenstatus-Flags manipulieren.
  • Kann Nachrichten speichern und abrufen.
  • Kann auf mehrere Postfächer zugreifen und diese verwalten.
  • Kann gleichzeitige Updates und Zugriff auf freigegebene Postfächer unterstützen.
  • Geeignet für den Zugriff auf Nicht-E-Mail-Daten; B. NetNews, Dokumente.
  • Kann auch Offline-Paradigma verwenden, für minimale Verbindungszeit und Festplattennutzung.
  • Companion Protocol definiert für User Configuration Management (IMSP).
  • Konstrukte zur Optimierung der Online-Leistung, insbesondere über Verbindungen mit niedriger Geschwindigkeit.

Beispiel für eine IMAP4-Verbindung

Das Folgende ist eine Abschrift einer IMAP4rev1-Verbindung. Eine lange Linie in diesem Beispiel ist aus redaktionellen Gründen unterbrochen.

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. Wie Hexdump funktioniert

  2. So ändern Sie den Hostnamen unter Linux

  3. Wie passe ich ein Systemgebietsschema an?

  4. Grundlegendes zu rsyslog-Vorlagen

  5. Wie drucke ich eine Nachricht an stderr in Go?

So richten Sie Atlantic.Net E-Mail ein

So installieren Sie Cockpit unter Debian 10

So aktualisieren Sie Ubuntu 18.04 auf Ubuntu 20.04

So installieren Sie Nginx unter CentOS 8

So nehmen Sie Audio in Ubuntu 20.04 auf

So mounten Sie NFS unter Debian 11