Zpráva se skládá z:
Return-path: <xpulec@fi.muni.cz> Envelope-to: mpulec@localhost Delivery-date: Sat, 07 Nov 2009 19:52:00 +0100 Received: from localhost ([::1] helo=ntb-deb) by ntb-deb with esmtp (Exim 4.69) (envelope-from <xpulec@fi.muni.cz>) id 1N6qOF-0004Gg-KS for mpulec@localhost; Sat, 07 Nov 2009 19:51:59 +0100 Received: from mail.muni.cz [147.251.49.9] by ntb-deb with POP3 (fetchmail-6.3.9-rc2) for <mpulec@localhost> (single-drop); Sat, 07 Nov 2009 19:51:59 +0100 (CET) Received: by receive-deliver@arethusa2.fi.muni.cz PID 11676 for 207871@mail.muni.cz; Sat, 07 Nov 2009 19:51:29 +0100 Delivered-To: 207871@mail.muni.cz Received: from anxur.fi.muni.cz (anxur.fi.muni.cz [147.251.48.3]) by arethusa2.fi.muni.cz (Postfix) with ESMTP id 5F42466C7A7 for <martin.pulec@mail.muni.cz>; Sat, 7 Nov 2009 19:51:29 +0100 (CET) Received: from aisa.fi.muni.cz (aisa.fi.muni.cz [147.251.48.1]) by anxur.fi.muni.cz (Postfix) with ESMTP id 4EA93493730 for <martin.pulec@mail.muni.cz>; Sat, 7 Nov 2009 19:51:29 +0100 (CET) Received: from aisa.fi.muni.cz (localhost [127.0.0.1]) by aisa.fi.muni.cz (8.13.6/8.12.8) with ESMTP id nA7IpRvm120104 for <martin.pulec@mail.muni.cz>; Sat, 7 Nov 2009 19:51:28 +0100 (MET) Received: (from xpulec@localhost) by aisa.fi.muni.cz (8.13.6/8.12.5/Submit) id nA7IpRrs121090 for martin.pulec@mail.muni.cz; Sat, 7 Nov 2009 19:51:27 +0100 (MET) Date: Sat, 7 Nov 2009 19:51:27 +0100 (MET) From: Martin Pulec <xpulec@fi.muni.cz> Message-Id: <200911071851.nA7IpRrs121090@aisa.fi.muni.cz> To: Martin PulecSubject: testovaci e-mail X-Spam: NO X-Spam-Rating: 70 Status: RO Content-Length: 5 Lines: 1 text
MIME standard rozšiřuje základní formát zpráv tím, že umožňuje posílat zprávy v jiném kódování než ASCII, přidávat ke zprávě přílohy a komponovat zprávu z více částí. MIME definují RFC 2045-2047, 2049, 4289 a 4289. Pokud chceme posílat zprávu využívající toto rozšíření, použijeme tyto hlavičky:
MIME-Version: 1.0 Content-Type: text/plain
Hlavička Content-Type specifikuje daný typ. Existují dvě třídy typů:
V případě multipart typů je v záhlaví zprávy je uveden pouze "kořenový" typ, ostatní podtypy jsou uvedeny v těle zprávy. Pro oddělení jednotlivých částí se používá speciální oddělovač:
Content-Type: multipart/mixed; boundary="----=_Part_60551_16194776.1234419145741"
a v těle:
------=_Part_60551_16194776.1234419145741 Content-Type: text/plain; charset="iso-8859-2" Content-Transfer-Encoding: 8bit Hezký den,..
Další z MIME rozšíření je možnost posílat i hlavičky v jiném kódování než ASCII.
Typická souslednost kroků při doručování e-mailu je následující:
odesílatelův MUA --SMTP--> odesílatelův MTA --SMTP--> příjemcův MTA [ --roura--> MDA ] --zápis--> souborový systém -------lokální_síť_nebo_1_počítač----------|Internet |---------------cílový_systém--------------------------------
Termínem MUA se označuje koncový uživatelský klient odesílající maily a přistupující k nim. Mezi běžné MUA patří Mutt, Pine nebo Mozilla Thunderbird, ale i webmail.
MTA je proces (server), jež převezme zprávu od MUA a zajišťuje její doručení. Typicky komunikuje pomocí protokolu SMTP. Běžně používané implementace jsou sendmail, Microsoft Exchange Server, Postfix, Exim nebo qmail.
MDA slouží k manipulaci se zprávou poté, co je doručena pomocí MTA. Obvykle se používá k třídění pošty do (tematických) schránek. Na UNIXových systémech je nejběžnější procmail, existují však i jiné implementace (např. maildrop).
SMTP je protokol pro komunikaci mezi jednotlivými uzly přenášejícími elektronickou poštu. Původně tento protokol specifikovalo RFC 821, které později nahradilo RFC 2821 (rozšíření ESMTP).
Doručování se řídí informacemi uvedenými obálkou. Tu vytváří příkazy MAIL a RCPT. Chybové zprávy se doručují na adresu obálkového odesílatele, samotná zpráva na adresu obálkového příjemce.
Spojení naváže klientský SMTP server vůči (zpravidla) SMTP serveru příjemce:220 smtp.there.example.com ESMTP Exim 4.69 Tue, 03 Nov 2009 17:49:16 +0100 > EHLO relay.here.example.org 250-smtp.there.example.com Hello relay.here.example.org [192.0.32.10] 250-SIZE 52428800 250-PIPELINING 250 HELP > MAIL FROM:<martin@here.example.org> 250 OK > RCPT TO:<someone@there.example.com> 250 Accepted > DATA 354 Enter message, ending with "." on a line by itself > From: Martin Pulec <martin@here.example.org> > To: Someone <someone@there.example.com> > Date: Tue, 03 Nov 2008 17:49:11 +0100 > Subject: Test > > Hi there, > .... > > Best regards, > Martin Pulec. > . 250 OK id=1N5Mab-0002Wh-1C > QUIT 221 smtp.there.example.org closing connection
Příkazy SMTP:
> HELP 214-Commands supported: 214 AUTH HELO EHLO MAIL RCPT DATA NOOP QUIT RSET HELP
Příklad graylistované zprávy:
2009-11-03 18:08:55 1N5MsJ-0002os-22 == martin.pulec@mail.muni.cz R=dnslookup T=remote_smtp defer (-44): SMTP error from remote mail server after RCPT TO:<martin.pulec@mail.muni.cz>: host arethusa.fi.muni.cz [147.251.49.9]: 450 4.7.1 <martin.pulec@mail.muni.cz>: Recipient address rejected: Please_try_again_in_10_minutes_or_so_(g.r_a-y_listed).
Konfigurace Eximu se nachází v adresáři /etc/exim4. Původně se jednalo o jeden soubor exim4.conf, ale je možné nastavení rozdělit do podadresářů /etc/exim4/conf.d/*/ (poddadresáře acl, auth, main, retry, rewrite, router, transport). Makrodefinice některých voleb obsahuje zejména soubor main/01_exim4-config_listmacrosdefs:
# List of domains considered local for exim. Domains not listed here # need to be deliverable remotely. domainlist local_domains = @:localhost:lab.fi.muni.cz # List of recipient domains to relay _to_. Use this list if you're - # for example - fallback MX or mail gateway for domains. domainlist relay_to_domains = empty # List of sender networks (IP addresses) to _unconditionally_ relay # _for_. If you intend to be SMTP AUTH server, you do not need to enter # anything here. hostlist relay_from_hosts = 127.0.0.1 : 10.0.20.0/24 : ::1
Za direktivu local_user (soubor router/900_exim4-config_local_user) umístit následující pravidlo:
catch_all: driver = redirect data = user@domain