E-mail

E-mail je systém pro zasílání ''krátkých textových zpráv'' mezi uživateli počítačové sítě.

Původně mezi sebou zprávy zasílali jednotliví konkrétní uživatelé. Dodnes je to patrné z formátu mailové adresy ''[uživatel]@[počítač/doména]''.

Přijímání a odesílání e-mailu '''jsou od sebe odděleny'''. Velice snadno se lze tedy vydávat za někoho jiného. Je třeba brát zřetel na to, že samotné uvedení e-mailové adresa jako odesílatele mailu není ověřením identity.


K použití e-mailu:


Formát e-mailu

E-mail má část hlaviček a tělo. Odděleno je to dvojitým odřádkováním (tedy prázdným řádkem). Zpráva tedy vypadá zhruba takto:

From: Venda <venda@example.com>
To: pepa@example.com
Subject: Pozdrav
Content-Type: text/plain; charset=UTF-8
Date: Thu, 3 Mar 2011 16:27:38 +0100 (CET)

Nazdar Pepo!

Hlavičky:

Je jich velké množství, podstatné jsou však hlavně:


Prakticky

Na správně konfigurovaném linuxu má každý uživatel svou mailovou složku někde ve filesystému (například ~/Maildir). Pokud někdo napíše na uzivatel@pocitac, program kterému se říká ''mail demon'' danou zprávu uloží do mail složky onoho uživatele.

Prohlédnout si svou složku můžete přímo (ve filesystému), případně vhodně nastaveným programem (v řádce například ''mutt''). Z většiny serverů lze ale zprávy i stahovat pomocí protokolu POP3, nebo IMAP.

POP3

Je starší a jednodušší. Dají se přes něj stahovat nové zprávy. Rovněž se přes něj dá zpráva smazat. Pozor, většina e-mailových klientů je defaultně nastavena, aby po stažení zprávy ze serveru smazala!

IMAP

Je modernější; Celá složka je synchronizována - jakákoliv změna kterou v ní provedete se projeví zpětně i ve složce na serveru. Zprávy se většinou stahují až ve chvíli otevření.
Výhodou je, že všechno zůstává na serveru. Můžete se tedy připojovat z více počítačů, a stále máte svou poštu na dosah.
Nevýhodou je, že všechno zůstává na serveru. Pokud klekne, může se stát, že se ke svým mailům nedostanete. Rovněž práce bez internetového připojení je obtížná.


Přeposílání pomocí ~/.forward

Ve vašem home adresáři může být soubor .forward. Může vypadat asi takto:

ja@example.com
nekde@jinde.xu
"| /home/uzivatel/mailScript.sh"

Je to seznam, kam se obdržený e-mail přeposílá. Jsou zde tři typy adres:

Script může být shellový, a s tím se dá dělat spousta věcí. Například si vytvořit jednoduchý spam filtr. Nebo naopak, zachytávat důležité maily a něco po jejich obdržení udělat (třeba ohňostroj).


Odesílání mailů z řádky

Máme pro to příkaz ''mail''. Za tělo e-mailu bere standardní vstup - takže mu většinou něco posíláme pípou |. Příklad použití:

echo "Ahoj!"|mail -s "Předmět" nekdo@example.com

cat ~/zprava.txt|mail -s "Zpráva" kdosi@example.com


Dá se to samozřejmě zautomatizovat; spousta administrátorů dostává denně stovky až tisíce e-mailů od růzých scriptů a démonů - statusy, hlášení, errory...


Úloha:

Vytvořte script, který vám e-mail přepošle, pokud pochází z adresy ''vip@example.com''


~/preposlani.sh
#!/bin/bash
while read radka
do
sed -n "/^From:/ s/^From://;p" > /tmp/m$$
if grep "vip@adasek.cz" /tmp/m$$
then
echo "Dulezity mail od vip@adasek.cz"|wall
fi
done


~/.forward
#!/bin/bash
uzivatel@adasek.cz #lokální adresa - mail se vždy uloží do schránky
"| ~/preposlani.sh" #poslání do scriptu