Vytvoření zprávy. K tomu slouží MUA (Mail User Agent), např. Eudora, Outlook, Firebird, …
Zpráva se předá odesílacímu programu MSP - (Message Submission Program), např. /usr/sbin/sendmail, který se stará o její odeslání. Je to program, který předá poštu dále. Výhoda je v tom, že uživatelský program nemusí vědět nic o poštovních protokolech a stará se pouze o interakci s uživatelem. Navíc se o konfiguraci a správu odchozí pošty stará správce systému.
MSP předává poštu dále programu pro přenos pošty MTA (Mail Transport Agent), typicky zase sendmail, případně qmail, exim, postfix... V dobách izolovaných sítí procházela pošta přes více MTA, než byla doručena. Dnes se většinou omezuje na jeden server (tzv. SMTP server) - místo, kde se pošta přechovává před doručením (Relay).
Mnoho MUA ovšem používá systém „vše v jednom“, kdy se MSP obchází a pošta se předává rovnou vzdálenému SMTP serveru. Platí se však za to nutností konfigurace odchozí pošty pro každého uživatele zvlášť a nutností odesílat poštu v době připojení a aktualizovat nastavení všem uživatelům při každé změně SMTP serveru. Zvlášť nepříjemné to je tehdy, používáme-li k vyřizování pošty více takových programů. Naštěstí lze naprostou většinu programů „vše v jednom“ přimět, aby spolupracovaly s místním MTA, a tím problémy s obcházením MSP odpadnou.
MTA komunikuje s cílovým serverem (nebo dalšími MTA), aby doručil poštu pro příjemce. Na cílovém serveru předá dalšímu článku štafety - doručovacímu programu MDA (Mail Delivery Agent), obvykle je to procmail. MDA může poštu ještě dále třídit a filtrovat (např. od nevyžádané pošty) a naložit s ní podle uživatelem zadaných pravidel - nejčastěji putuje do přidělené schránky. Pak již pošta čeká jen na to, až si ji uživatel vyzvedne. Schránka může být i na pracovním počítači, ale většinou je to nepraktické - pokud by nebyl připojen v době, kdy nám dojde nová pošta, snadno by se mohlo stát, že se vrátí odesílateli jako nedoručitelná. Na cílovém serveru však pošta počká, dokud si ji nevyzvedneme.
Veškerá dosud popsaná komunikace, probíhá v protokolu SMTP (Simple Mail Transport Protocol), jemuž je vyhrazen TCP port 25, nebo jeho rozšířenou verzí ESMTP (mimo jiné s podporou osmibitového přenosu).
Ke konečnému doručení z poštovního serveru do našeho počítače se již používají jiné protokoly: POP (Post Office Protocol; nejčastěji se lze setkat s verzí POP3), protokol, jehož úkolem je stáhnout poštu do pracovního počítače, nebo IMAP (Internet Mail Access Protocol, dnes ve verzi IMAP4), který je navržen nejen ke stahování pošty, ale i pro dálkovou práci s ní. Na straně poštovního serveru k tomu samozřejmě musí běžet příslušný démon, který v těchto protokolech komunikuje (např. pro IMAP Courier imap, Cyrus imap, …, pro POP3 Qpopper, POPular, ...)
Ke stažení pošty lze použít specializované programy (například fetchmail) nebo opět řešení „vše v jednom“. Teprve pak se pošta objeví v poštovním programu příjemce.
Formát zprávy definuje dokument RFC 2822. Podle definice se emailová zpráva skládá z obálky a vlastní zprávy. Vlastní zpráva se navíc dělí na hlavičku a tělo zprávy.
Obálka obsahuje informace důležité pro doručení zprávy. Obsahuje nejméně adresu odesílatele a adresáta zprávy. Doručení zprávy probíhá podle informací v obálce, ne v hlavičce. Tedy skutečný příjemce je ten, kdo je uveden v obálce.
Hlavička obsahuje řídící informace zprávy. Ty jsou zapsány na řádcích podle schématu <klíč>: <paramtery>. Může zde být zapsán například původce zprávy, adresát zprávy, identifikace zprávy, datové a časové razítko (označující okamžik zpracování zprávy emailovým serverem), předmět, klíčová slova, nestandardní hlavičky apod. Hlavička je navíc aktualizována každým emailovým serverem, přes který email prochází - přidává se řádek Received: adresa MTA serveru plus další jeho informace.
Tělo zprávy obsahuje vlastní text zprávy.
MIME rozšiřuje tělo zprávy z původního texového obsahu definovaného v RFC 822 na několik typů. Každý ze základních typů má další podtypy. Standard MIME umožňuje rekurzi, takže zpráva ve standardu MIME může ve svém těle obsahovat další zprávu, také typu MIME. MIME se kóduje do sedmi bitového ASCII (např. pomocí Base 64). Tím se zajistí bezproblémový průchod dat.
Typy zpráv MIME:
TEXT: Tento typ slouží k přenosu vlastního těla zprávy (textového sdělení). Podtyp PLAIN (prostý text) je implicitní a odpovídá obsahu podle RFC 822. Další podtypy jsou např. RTF (Rich Text Format)
IMAGE: Slouží pro přenos obrazu.
AUDIO: Slouží pro přenos zvuku.
VIDEO: Slouží pro přenos videa.
APPLICATION: Slouží pro přenos jiného typu dat. Typicky se jedná o neinterpretovaná binární data.
STRUCTURED: Někdy se nazývá vícedílný (multipart). Ve strukturovaném typu se nepřenášejí data jako taková, ale určitá kombinace již uvedených typů.
MESSAGE: Slouží pro přenos vlastní zprávy. Definuje podtypy RFC
822 (běžná zpráva), Partial (zpráva je částí
celku, takto se odesílají zprávy .delší
než 64kB) a External Body (představuje odkaz na soubor, který
je vůči emailové zprávě externí).
Protokol SMTP se používá pro přenos e-mailových zpráv od klienta na server, dále pro výměnu e-mailů mezi servery. SMTP servery i klienti směrují emaily na základě záznamů MX v DNS (Domain Name Service). Pokud MX záznam neexistuje, použije se A záznam. Minimální implementace protokolu musí být schopna odpovědět na tyto příkazy: HELO, MAIL, RCPT, DATA, RSET, NOOP a QUIT.
HELO: Identifikace počítače. Např.: HELO thoe-alpha.
EHLO: pokud server komunikuje pomocí ESMTP vypíše přípustné příkazy, pokud umí jen SMTP, odpoví „500 Command unrecognized“ a klient pokračuje zadáním HELLO.
MAIL FROM: <odesilatel> Zahájení odesílání zprávy, identifikace odesílatele zprávy.
RCPT TO: <prijemce> Identifikují se adresáti zprávy.
DATA: Používá se pro zaslání obsahu zprávy na server.
RSET: Přeruší probíhající emailovou transakci.
NOOP: Prázdná operace – neprovede se nic.
HELP: Nápověda o příkazech (volitelným parametrem je jméno příkazu).
QUIT: Ukončení spojení se SMTP serverem.
EXPN mail_list: Získání jednotlivých emailových adres z hromadného emailového seznamu.
VRFY uživatel: Ověří existenci uživatele. Možné odpovědi: 250 plne_jmeno <emailova adresa>, 251 Uživatel není lokální, přesměrování na <emailová adresa>, 550 Řetězec se neshoduje s žádnou adresou, 551 Uživatel není lokální, prosím piště na <emailová adresa>, 553 uživatel zadán nejednoznačně.
Příklad konverzace se SMTP serverem s autentizací uživatele (jméno a heslo je zakódováno pomocí base64):
# telnet smtp.seznam.cz 25 Trying 212.80.76.43... Connected to smtp.seznam.cz (212.80.76.43). Escape character is '^]'. 220 email.seznam.cz - Email zdarma na cely zivot ESMTP helo nymfe06.fi.muni.cz 250 email.seznam.cz - Email zdarma na cely zivot ehlo nymfe06.fi.muni.cz 250-email.seznam.cz - Email zdarma na cely zivot 250-PIPELINING 250-8BITMIME 250-SIZE 19922944 250 AUTH LOGIN PLAIN CRAM-MD5 auth login 334 VXNlcm5hbWU6 bm92YWsucGVwYQ== 334 UGFzc3dvcmQ6 YWJjZGU= 235 ok, go ahead (#2.0.0) MAIL FROM: novak.pepa@seznam.cz 250 ok RCPT TO: novak.pepa@fi.muni.cz 250 ok data 354 go ahead From: "Pepicek Novak"To: "Sobe" Subject: Test SMTP Date: Tue, 08 Nov 2005 18:50:07 +0200 Tento mail je uplne nanic, slouzi jen k demonstraci SMTP konverzace. Doporucuji ho ihned smazat Pepa . 250 ok 1131473025 qp 16339 quit 221 email.seznam.cz - Email zdarma na cely zivot Connection closed by foreign host.
Protokol POP3 slouží k přenosu e-mailových zpráv, doručených do schránky na serveru, na klientský počítač. Uživatel, který chce s poštou pracovat si ji tedy stáhne tímto protokolem na svůj počítač. Stažené zprávy jsou ze serveru smazány (pokud není řečeno jinak). Uživatel tedy s poštou pracuje bez nutnosti připojení na server.
Příkazy protokolu
USER uživatel
PASS heslo_uživatele
STAT: Slouží k získání informací o schránce, vrací počet zpráv ve schránce a jejich velikost v bajtech.
LIST: Vypíše unikátních identifikátory všech zpráv a jejich velikosti (pokud je zadán parametr, tak se vypisují pouze informace o zprávě identifikované pomocí ID zprávy)
RETR číslo_zprávy: Načtení obsahu zprávy ze serveru.
DELE číslo_zprávy: Označení zprávy jako smazané
NOOP: Neprovede se nic. Server musí vrátit OK.
RSET: Odznačení zpráv, které jsou označeny jako smazané. Odznačit lze pouze všechny zprávy najednou.
QUIT: Ukončení spojení s POP3 serverem.
Příklad konverzace se serverem pomocí POP3 protokolu:
# telnet mail.popserver.com 110 Trying 192.168.0.100 Connected to mail.popserver.com. Escape character is '^]'. +OK <21860.1076718099@mail.popserver.net> user USERNAME +OK pass PASSWORD +OK list 1 3713 2 83815 3 6180 4 3813 5 2177 6 4134 7 7168 8 18234 . retr 1 +OK ???? octets [[message]] . dele 1 +OK quit +OK Connection closed by foreign host.
Protokol IMAP, slouží obdobně jako protokol POP3, k načítání zpráv elektronické pošty ze serveru na stranu klientské aplikace. Nejdůležitější rozdíl od POP je možnost práce se zprávami na straně serveru. Klient může zprávy přesouvat mezi schránkami, editovat zprávy, ukládat, načítat. To je výhodné, pokud přistupujeme k poště z více počítačů.
NOOP: Neprovede nic. Je možné pro aktualizaci stavu poštovní schránky.
CAPABILITY: Server oznámí svoje možnosti.
LOGOUT: Ukončení relace.
AUTHENTICATE: Klient příkazem AUTHENTICATE specifikuje použitý autentizační mechanismus. Pokud server podporuje zvolený autentizační mechanismus, provede výměnu autentizačních informací a autentizuje uživatele.
LOGIN: Identifikace vůči uživatelskému jménu a heslu. Informace jsou odeslány v otevřené podobě.
CREATE jméno_složky: Vytvoří se složka zadaného jména.
DELETE jméno_složky: Trvale se odstraní složka zadaného jména.
SELECT jméno_složky: Vybere se složka, se kterou se bude pracovat.
EXAMINE jméno_složky: Stejná funkce, jako SELECT, ale pouze pro čtení.
RENAME jméno1 jméno2: Přejmenuje složku.
SUBSCRIBE jméno_složky: Přidá se složka do seznamu aktivních nebo odebíraných schránek, které vrací příkaz LSUB.
UNSUBSCRIBE jméno_složky: Odebere se poštovní složka ze seznamu aktivních nebo odebíraných schránek.
LIST jméno_schránky: vrátí podmnožinu jmen z množiny všech dostupných jmen složek uživatele. Místo znaku * se používá %.
LSUB: Shodný s příkazem LIST ale zobrazí pouze složky přihlášené příkazem SUBSCRIBE.
FETCH: Načte obsah příslušné zprávy podle zadaných položek zprávy.
EXPUNGE: Vymaže všechny zprávy označené pro odstranění.
SEARCH: Vyhledá ve schránce zprávy, které odpovídají zadaným kritériím.
Více informací lze nalézt na http://www.imap.org/ nebo přehledněji na http://www.cs.vsb.cz/grygarek/kotasek/indexima.htm.
S rozšiřováním popularity Interentu a elektronické pošty se zvyšuje i množství nevyžádané pošty - spamu. Denně dostávají miliony lidí do své emailové schránky spousty reklamních zpráv, hoaxů, nabídek, ... Získat miliony adres pro spam není složité. Stačí prohledat internetové stránky, tipnout si uživatele velkých mailových serverů atd.
Obran proti spamu je více:
whitelisty/blacklisty - seznamy povolených/zakázaných emailových adres nebo domén
challenge-response - (automatický) požadavek na potvrzení (prvního) emailu a následné zanesení do whitelistu/blacklistu
tagged message delivery (metody označkované adresy) - použití adresy se speciální značkou, na základě níž je určena legitimnost emailu (Značky mohou záviset na čase, odesílateli, klíčovém slově, …)
rozpoznávání obsahu - rozpoznání obsahu zprávy (nabídka Viagry, softwaru, atd)
bayes filtry - Na základě slov ze vzorku normálních a nevyžádaných emailů se tvoří databáze pravděpodobností, že email obsahující toto slovo je spam. Příchozí email se rozdělí na slova a na základě těchto slov se určí, zdali je email spam či ne. Tato informace poslouží následně ke korekci pravděpodobností v databázi. Vzhledem k tomu, že tato metoda se nezaměřuje pouze na analýzu špatných slov, ale i těch dobrých, dosahuje výborných výsledků i na poli falešných poplachů. (např. spamassasin, mozilla)
databáze spamu - hash příchozího mailu je porovnán s databází spamů na Internetu (např. nástroj razor)
blokace smtp serverů - databáze open-relay serverů (anonymní odesílání), ze kterých se pošta nepřeposílá
SpamAssassin je program na filtrování mailů na základě textové analýzi zprávy, Bayes filtrování, DNS blocklistu a spolupráce s databází. Slouží k filtrování (třídění), nikoliv mazání nebo směrování spamů. SpamAssassin dokáže rozpoznat 95% - 100% spamů v závislosti na druhu příchozí pošty. Falešně zprávu označí v cca 0,1%.
Nastavení filtrace příchozí pošty pomocí SpamAssassinu si každý uživatel může nastavit přidáním řádku
| spamassassin -P |maildir ./Maildir/do souboru .qmail (případně ekvivalent pro jiný poštovní server) ve svém domovském adresáři.
Autorem qmailu je Daniel Bernstein (DJB), profesor na Chicagské univerzitě. Aktuální verzí qmailu již několik let zůstává 1.03. Existují desítky uživatelských patchů a rozšíření, na které jsou uživatelé odkázáni, když od MTA očekávají trochu víc. Celý program je tvořen řadou modulů tvořících řetězec, kterým prostupuje každá zpráva. Díky této vlastnosti se qmail stal jedním z nejbezpečnějších MTA programů vůbec.
Před tím, než se pustíte do instalace qmailu, je dobré odinstalovat Sendmail (případně jiný MTA) a další programy (např. Imap-2000), které nejsou s qmailem kompatibilní.
Před samotnou instalací je potřeba vytvořit adresářovou strukturu a speciální uživatele pro qmail démony:
# mkdir /var/qmail # groupadd nofiles # useradd -g nofiles -d /var/qmail/alias alias # useradd -g nofiles -d /var/qmail qmaild # useradd -g nofiles -d /var/qmail qmaill # useradd -g nofiles -d /var/qmail qmailp # groupadd qmail # useradd -g qmail -d /var/qmail qmailq # useradd -g qmail -d /var/qmail qmailr # useradd -g qmail -d /var/qmail qmails
Qmail je nejlepší stáhnout v balíku netqmail, který obsahuje qmail a patche. Stáhnou si ho můžete např na http://qmail.kn.vutbr.cz/netqmail-1.05.tar.gz
Netqmail je potřeba rozbalit a příkazem "./collate.sh" aplikovat na qmail patche. Poté je možné qmail nainstalovat příkazem "make setup check".
Dále musíte nastavit jméno počítače:
#./config-fast thoe-beta.lab.fi.muni.cz
Chceme-li qmail zkonfigurovat na přijímání pošty pro naši doménu, musíme ji zapsat do souborů rcpthosts i locals:
# echo "thoe.lab.fi.muni.cz" >> /var/qmail/control/locals # cp /var/qmail/control/locals /var/qmail/control/rcpthosts
qmail úplně ignoruje soubor /etc/hosts nebo jiná tradiční linuxová nastavení, a všechna kanonická jména, se kterými se při své práci setká, resolvuje výhradně skrze DNS. Proto je kritickou podmínkou mít při provozování qmailu v pořádku DNS.
Protože qmail nedoručuje poštu do speciálních systémových účtů, je nutné vytvořit aliasy, kterými případné zprávy přesměrujeme regulernímu uživateli:
# cd ~alias # echo "root@thoe-beta.lab.fi.muni.cz" > .qmail-root # cp .qmail-{root,mailer-daemon} # cp .qmail-{root,postmaster} # cp .qmail-{root,hostmaster} # cp .qmail-{root,abuse} # chmod 644 ~alias/.qmail*Adresář ~alias (resp. /var/qmail/alias) obsahuje aliasy uživatelských účtů. Soubory .qmail* jsou alternativou sendmailovských souborů .forward. Pokud například přijde mail na adresu postmaster@thoe-beta.lab.fi.muni.cz a soubor .qmail-postmaster obsahuje &00420602xxxxxx@sms.eurotel.cz, pak se mail přepošle(&) na mobil (resp. emailovou adresu).
Dále si každý uživatel musí vytvořit svoji mailovou schránku:
# /var/qmail/bin/maildirmake ~/Maildirnebo je root vytvoří pomocí příkazu:
# cd /home && \ > for user in * > do > su -l "$user" -c "/var/qmail/bin/maildirmake Maildir" > ls -ld "$user"/Maildir > done
Aby mohli programy předávat poštu i ve formátu pro sendmail, musíme vytvořit symlinky:
# ln -s /var/qmail/bin/sendmail /usr/lib/sendmail # ln -s /var/qmail/bin/sendmail /usr/sbin/sendmailNakonec si zvolíme typ schránek (mbox/maildir), které chceme používat pro doručování pošty:
# echo ./Maildir >/var/qmail/control/defaultdelivery
Start samotného qmailu provedeme příkazem:
# exec env - PATH="/var/qmail/bin:$PATH" qmail-start "`cat /var/qmail/control/defaultdelivery`" &
Start SMTP a POP3 démona:
Kromě vlastního procesu qmail, který se zabývá zpracováváním fronty zpráv a doručováním do mailboxů uživatelů, je nutné nainstalovat také qmail-smtpd, což je síťový modul qmailu, zajišťující vlastní služby SMTP. Ten se nespouští přímo, ale pomocí superserveru (tcpserver/inetd/xinetd). Autor doporučuje využít jeho vlastní (tedy tcpserver), který je rychlejší.
tcpserver je možné si stáhnou na adrese http://cr.yp.to/ucspi-tcp/ucspi-tcp-0.88.tar.gz. Po rozbalení aplikujte patch z netqmailu a spusťte instalaci:
# patch < /root/install/netqmail-1.05/other-patches/ucspi-tcp-0.88.errno.patch # make setup check
SMTP demon (qmail-smtpd) spustíte tcpserver-em pomocí příkazu (dejte si ho do start skriptu, za QMDUID a QMDGID dosadíme UID, resp. GID uživatele qmaild):
# tcpserver -v -u QMDUID -g QMDGID 0 smtp /var/qmail/bin/qmail-smtpd &
POP3 demon (qmail-pop3d) spustíte tcpserver-em pomocí příkazu (opět dát do skriptu):
# tcpserver 0 110 /var/qmail/bin/qmail-popup thoe-beta.lab.fi.muni.cz /bin/checkpassword /var/qmail/bin/qmail-pop3d Maildir 2>&1 &
Pro spouštění SMTP démona (qmail-smtpd) pomocí xinetd je nutné do adresáře /etc/xinetd.d přidejte skript "smtp", který může vypadat takto:
# default: on # description: The smtp qmail server service smtp { socket_type = stream wait = no flags = REUSE NAMEINARGS protocol = tcp user = qmaild server = /usr/sbin/tcpd server_args = /var/qmail/bin/tcp-env -R /var/qmail/bin/qmail-smtpd disable = no # only_from = 192.168.1.0/24 192.168.5.0/24 192.168.10.17 }
Pro spouštění POP3 démona (qmail-pop3d) ppřidejte do adresáře /etc/xinetd.d skript "pop3", který může vypadat takto:
# default: on # description: The POP3 service allows remote users to access their mail using an POP3 client. service pop3 { socket_type = stream wait = no flags = REUSE NAMEINARGS protocol = tcp user = qmaild server = /usr/sbin/tcpd server_args = /var/qmail/bin/tcp-env -R /var/qmail/bin/qmail-pop3d instances = 150 cps = 70 30 disable = no # only_from = 192.168.1.0/24 192.168.5.0/24 192.168.10.17 }
K ověřování uživatelsých hesel slouží program checkpassword, který si můžete stáhnout na adrese: http://cr.yp.to/checkpwd/checkpassword-0.90.tar.gz
Instalace je opět jednoduchá:
# tar xvpf checkpassword-0.90.tar.gz # cd checkpassword-0.90 # patch < /root/install/netqmail-1.05/other-patches/checkpassword-0.90.errno.patch # make # make setup check
Správné fungování checkpassword si můžete ověřit například takto:
# /var/qmail/bin/qmail-popup blah /bin/checkpassword pwd +OK <...@blah> user Frodo +OK pass Friend -ERR authorization failed
# /var/qmail/bin/qmail-popup thoe-beta.lab.fi.muni.cz /bin/checkpassword pwd +OK <...@thoe-beta.lab.fi.muni.cz> user root +OK pass heslo /root
Control | Default | Used by | Purpose |
badmailfrom | none | qmail-smtpd | blacklisted From addresses |
bouncefrom | MAILER-DAEMON | qmail-send | username of bounce sender |
bouncehost | me | qmail-send | hostname of bounce sender |
concurrencyincoming | none | /service/qmail-smtpd/run | max simultaneous incoming SMTP connections |
concurrencylocal | 10 | qmail-send | max simultaneous local deliveries |
concurrencyremote | 20 | qmail-send | max simultaneous remote deliveries |
defaultdelivery | none | /var/qmail/rc | default .qmail file |
defaultdomain | me | qmail-inject | default domain name |
defaulthost | me | qmail-inject | default host name |
databytes | 0 | qmail-smtpd | max number of bytes in message (0=no limit) |
doublebouncehost | me | qmail-send | host name of double bounce sender |
doublebounceto | postmaster | qmail-send | user to receive double bounces |
envnoathost | me | qmail-send | default domain for addresses without "@" |
helohost | me | qmail-remote | host name used in SMTP HELO command |
idhost | me | qmail-inject | host name for Message-ID's |
localiphost | me | qmail-smtpd | name substituted for local IP address |
locals | me | qmail-send | domains that we deliver locally |
me | FQDN of system | various | default for many control files |
morercpthosts | none | qmail-smtpd | secondary rcpthosts database |
percenthack | none | qmail-send | domains that can use "%"-style relaying |
plusdomain | me | qmail-inject | domain substituted for trailing "+" |
qmqpservers | none | qmail-qmqpc | IP addresses of QMQP servers |
queuelifetime | 604800 | qmail-send | seconds a message can remain in queue |
rcpthosts | none | qmail-smtpd | domains that we accept mail for |
smtpgreeting | me | qmail-smtpd | SMTP greeting message |
smtproutes | none | qmail-remote | artificial SMTP routes |
timeoutconnect | 60 | qmail-remote | how long, in seconds, to wait for SMTP connection |
timeoutremote | 1200 | qmail-remote | how long, in seconds, to wait for remote server |
timeoutsmtpd | 1200 | qmail-smtpd | how long, in seconds, to wait for SMTP client |
virtualdomains | none | qmail-send | virtual domains and users |
Pokud je qmail nainstalován standardním posupem, je relaying automaticky vypnut a pošta je doručována jen na domény uvedené v souboru /var/qmail/control/rcpthosts. Pokud chceme povolit doručování pošty pro nějaké uživatele, musíme pomocí tcpserveru nastavit proměnné prostředí RELAYCLIENT, které pak má u qmail-smtpd přednost před nastavením v rcpthosts. Do souboru /etc/tcp.smtp se musí přidat řádky typu:
127.0.0.1:allow,RELAYCLIENT="" 192.168.1.:allow,RELAYCLIENT="" :allowPrvní řádek říká, že povolujeme připojení na SMTP z loclahostu a že má tcpserver nastavit RELAYCLIENT. Poslední řádek říká, že spojení na SMTP je povoleno odkudkoliv, ale nenastaví se RELAYCLIENT.
qmailctl cdbnebo
tcprules /etc/tcp.smtp.cdb /etc/tcp.smtp.tmp < /etc/tcp.smtp chmod 644 /etc/tcp.smtp*
Provoz virtuální domény a doménového koše se v qmailu realizuje připsáním řadku do souboru /var/qmail/control/virtualdomains v tomto tvaru:
user@domain:prependPoložka user je nepovinná. Toto způsobí při příchodu pošty na user@domain převední adresy na prepend-user@domain a zpráva se doručí lokálně.
Vytváření aliasů je v qmailu velice jednoduché. Pokud si chce uživatel pepa vytvořit alias xxxxx, pak stačí vytvořit soubor /var/qmail/alias/.qmail-xxxxx. Do něj přidá adresy skutečných příjemců pošty, např řádek "pepa@thoe-beta.lab.fi.muni.cz".
Pro provoz virtuálních domén a virtuálních účtů můžeme s výhodou použít vpopmail (http://www.inter7.com/vpopmail/). Pokud budeme pro správu účtů používat pouze programy vpopmailu, nemusíme se v souvislosti s mailboxy zabývat ničím dalším (vpopmail za nás sám vytváří a maže uživatelské maildiry, sám zajistí modifikaci souborů v /var/qmail/control apod.). Nespornou výhodou vpopmailu je také možnost práce s účty přes www rozhraní, které je možné využít díky programu http://mail.inter7.com/qmailadmin. Jeho instalace je velmi jednoduchá. Vyzkoušet si jej můžete na stránce http://mail.inter7.com/cgi-bin/qmailadmin (účet: postmaster, doména: test.com, heslo: test).
Postfix je, stejně jako Qmail, alternativa sendmailu. Lze jej získat na http://www.postfix.org/. Instalace se spustí klasicky příkazem "make && make install. " Při instalaci se automaticky vytvoří skupina postdrop a uživatel a skupina postfix. Během instalace nám instalátor položí několik otázek na umístění souborů apod. Většinou se dá spokojit s defaultním nastavením. Dále je nutné upravit soubor /etc/postfix/aliases. Do něj uvedeme mailové aliasy, které potřebujeme. Formát souboru je jednoduchý a dá se v něm zorientovat na první pohled. Poté vygenerujeme z textového souboru hash databázi příkazem postalias: "postalias /etc/postfix/aliases". Také je potřeba upravit konfigurační soubor /etc/postfix/main.cf. Minimálně upravíme parametry mydomain, myhostname, myorigin, mydestination a mynetworks. Soubor je dobře okomentován, kompletní seznam parametrů a jejich voleb je na manuálové stránce postconf(5).
Parametry:
myhostname: Plně kvalifikované jméno počítače. Např. thoe-alpha.lab.fi.muni.cz.
mydomain: Doména. Např. lab.fi.muni.cz.
myorigin: Specifikuje doménu, kterou má napsánu v adrese lokálně poslaný e-mail. Obvykle je buď myorigin = $myhostname nebo myorigin = $mydomain.
mydestination: Specifikuje seznam domén, pro které je tento stroj cílová stanice. Například mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain, mail.$mydomain, www.$mydomain, ftp.$mydomain.
mynetworks: Seznam důvěryhodných SMTP klientů. Důvěryhodný klient smí doručovat poštu přes tento stroj. Obvykle (nastavením mynetworks_style = subnet) se za důvěryhodné považují ti klienti, kteří jsou ve stejné podsíti jako lokální stroj. Případně se dá nastavit mynetworks ručně: například mynetworks = 10.0.30.2, 127.0.0.1.
relay_domains: Standardně Postfix doručuje poštu od důvěryhodných klientů (IP adresa souhlasí s $mynetworks) do jakéhokoliv cíle. Od nedůvěryhodných klientů pouze do místa určeného $relay_domains.
Nakonec můžeme server spustit: "/usr/sbin/postfix start".
http://www.root.cz/clanky/posta-pro-kazdeho/
http://www.root.cz/clanky/stavime-mailserver/
http://tomclegg.net/qmail-linux
http://www.lifewithqmail.org/lwq.html
http://www.linuxfocus.org/English/November2000/article175.shtml
http://www.cs.vsb.cz/grygarek/kotasek/pop02.htm