From: | uvádí odesilatele. |
---|---|
To: | příjemce. |
Subject: | předmět zprávy. |
Received: | dokumentuje průchod zprávy poštovními systémy až ke schránce uživatele. Každý počítač, přes který zpráva přejde, vloží na začátek novou hlavičku Received. |
X-URL: | Hlavičky začínající X- poštovní systém ignoruje, ale posílá je dále se zprávou. Existuje tedy možnost vytvářet vlastní hlavičky. |
Simple Mail Transport Protocol, tedy jednoduchý protokol pro přenos zpráv. Používá se při komunikaci s MTA.
Jedná se o textový protokol, který je snadno čitelný člověku. Klient posílá několika slovní příkazy na něž server odpovídá kódem doprovázeným stručným textem. Kódy se dělí do několika skupin podle počátečního čísla.
1xx | provedení příkazu odloženo na později |
---|---|
2xx | úspěch |
3xx | inicializace přenosu zprávy |
4xx | dočasná chyba |
5xx | permanentní chyba |
S: 220 smtp.example.com ESMTP Postfix C: HELO relay.example.org S: 250 Hello relay.example.org, I am glad to meet you C: MAIL FROM:S: 250 Ok C: RCPT TO: S: 250 Ok C: DATA S: 354 End data with . C: From: "Bob Example" C: To: Alice Example C: Cc: theboss@example.com C: Date: Tue, 15 Jan 2008 16:02:43 -0500 C: Subject: Test message C: C: Hello Alice. C: This is a test message with 5 headers and 4 lines in the body. C: Your friend, C: Bob C: . S: 250 Ok: queued as 12345 C: MAIL FROM: S: 250 Ok C: RCPT TO: S: 250 Ok C: DATA S: 354 End data with . C: From: "Bob Example" C: To: Alice Example C: Cc: theboss@example.com C: Date: Tue, 15 Jan 2008 16:02:43 -0500 C: Subject: Test message C: C: Hello Alice. C: This is a test message with 5 headers and 4 lines in the body. C: Your friend, C: Bob C: . S: 250 Ok: queued as 12346 C: QUIT S: 221 Bye {The server closes the connection}
MX záznam definuje cíl zprávy, přičemž ve většině případů jej směruje na poštovní ústřednu v organizaci příjemce. Pro počítač může existovat více MX záznamů, kde u každého je určeno preferenční číslo. Při směrování pošty se nejprve zkoušejí počítače od nejnižšího preferenčního čísla. Počítače, které nejsou přímo připojeny k internetu nemohou mít záznam typu A, ale mohou mít MX záznam. Počítač nemusí mít MX záznam, v tom případě je používán A záznam, ale MX záznamy se doporučují ze spousty důvodů.
(Multipurpose Internet Mail Extensions)
Rozšiřuje formát e-mailu o podporu textu ve znakových sadách jiných než US-ASCII, netextových příloh a zpráv o více částech (multi-part message).
Dnes se tento standard rozšířil daleko za hranice e-mailové pošty.
Uvádí několik nových hlaviček, např: MIME-version, Content-type (např. text/plain, application/octet-stream) a Content-Transfer-Encoding.
Ukázka zprávy o více částech:
MIME-version: 1.0 Content-type: multipart/mixed; boundary="frontier" This is a multi-part message in MIME format. --frontier Content-type: text/plain This is the body of the message. --frontier Content-type: application/octet-stream Content-transfer-encoding: base64 PGh0bWw+CiAgPGhlYWQ+CiAgPC9oZWFkPgogIDxib2R5PgogICAgPHA+VGhpcyBpcyB0aGUg Ym9keSBvZiB0aGUgbWVzc2FnZS48L3A+CiAgPC9ib2R5Pgo8L2h0bWw+Cg== --frontier--
(Post Office Protocol version 3)
Protokol sloužící k přenosu pošty ze serveru na uživatelský počítač. Zpráva je ze serveru smazána a uživatel může se zprávou pracovat i bez připojení k síti.
S:C: S: +OK POP3 server ready <1896.697170952@dbc.mtview.ca.us> C: APOP mrose c4c9334bac560ecc979e58001b3e22fb S: +OK mrose'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: S: . C: DELE 1 S: +OK message 1 deleted C: RETR 2 S: +OK 200 octets S: S: . C: DELE 2 S: +OK message 2 deleted C: QUIT S: +OK dewey POP3 server signing off (maildrop empty) C: S:
(Internet Message Access Protocol)
Protokol sloužící k práci s poštou na straně serveru. Pošta se tedy narozdíl od POP3 nestahuje na klientský počítač.
(nevyžádaná e-mailová pošta) Údajně je denně odesláno přes 90 miliard spam zpráv. Spam je v dnešní době největším problémem emailové komunikace. Na obranu proti spamu se vyvinulo spoustu různých více či méně úspěšných technik. Zde je výčet pouze některých:
Dnes nejrozšířenějším SMTP serverem je Sendmail (v roce 2007 instalován na zhruba 30% serverů). Sendmail doplácí při konfiguraci na svou komplexnost - jazyk konfiguračního souboru je z Turingova hlediska kompletní. Proto jsem se raději rozhodl pro Postfix.
Konfigurační soubory Postfixu jsou k nalezení ve většině distribucí v /etc/postfix.
Hlavním konfiguračním souborem serveru je main.cf. Většina voleb je rozumně nastavena a proto stačí provést jen drobné úpravy.
Dalším důležitým souborem je master.cf. Protože Postfix není jednolitým serverem, ale spíše souborem několika v pozadí běžících démonů, určují se v tomto konfiguračním souboru jaké úkony mají být prováděny kterými démony.
Popis některých voleb konfiguračního souboru main.cf.
# hostname systému, na kterém běží server myhostname = proto05-beta.lab.fi.muni.cz # lokální doména mydomain = lab.fi.muni.cz # doména, kterou mají uvedenou zprávy odesílané z tohoto serveru myorigin = $mydomain # pro tyto domény je server cílový (lokální doručení) mydestination = $myhostname, localhost.$mydomain, localhost.localdomain, $mydomain # síťová rozhraní, na kterých je sledován provoz inet_interfaces = all # komu povolit relay: # host - jen z tohoto počítače # subnet - všechny počítače v podsíti # class - všechny počítače ve stejné IP třídě A/B/C mynetworks_style = subnet # mynetworks = 10.0.50.0/24, 127.0.0.0/8 # které doméně povolit relay, pokud neprojde $mynetworks resp. $mynetworks_style relay_domains = $mydestination # kterému počítači zaslat zprávu, jestliže jí nevyhovuje žádný záznam v # tabulce transport relayhost = [proto05-alpha.lab.fi.muni.cz]
Před vytvořením doménového koše musíme určit účet pro posílání zpráv adresovaných neexistujícím uživatelům. Můžeme využít již existující účet nebo vytvořit nový, speciální:
$ useradd -g nogroup -d /no/home -s /bin/false mailbinPři nastavování Postfixu je důležité, aby lokální poštu doručoval podsystém 'local', jinak parametr luser_relay nebude fungovat:
luser_relay = mailbin@$domain # podsystém local sám rozhodne, které účty existuji local_recipient_maps =