Pošta

Celoobrazový klienti

Program pine

SYNOPSIS

pine [prijemce]

Program pine (nebo alpine) je celoobrazový klient pro čtení a posílání zpráv v konzoli. Po spuštění uvidíte v dolní časti seznam zkratek, kterými se pine ovládá, takže k němu asi není třeba moc dalšího psát. (Znak ^ znamená CTRL).

Pro začátek jen napovím, že pro ukončení programu je někdy třeba přejít do hlavního menu, případně do seznamu zpráv (pokud čtete zprávy), no prostě používejte klávesu < než se dostanete k Q - quit.

Příloha se zadává (při psaní zprávy) na řádku Attchmnt:. Najeďte kurzorem na tuto řádku a stiskněte CTRL+t pro procházení souborového systému.

A ještě jeden tip: při čtení zprávy můžete používat zkratky pro pohyb ve zprávě jako v emacsu (CTRL+n pro "next" řádku, CTRL+p pro "previous" řádku atp.)

Program mutt

Další celoobrazový klient do konzole. Nepoužívám, neznám ….

Program mail

Program mailx je novější verze původního programu mail. Většinou je v linuxu mail jen symbolickým odkazem na mailx. Protože je mail kratší, budu nadále používat toto jméno.

V distribuci Debian Wheezy jsem musel nainstalovat balíček heirloom-mailx, protože defaultní verze mailu je ta stará, která toho moc neumí.

Pokud spustíte mail bez argumentů, vypíše se seznam zpráv a spustí se jeho příkazová řádka. V té můžete zadávat příkazy na zobrazení seznamu správ, přečtení zprávy, mazání atd. (Příkazy budou popsány dále).

Pokud spustíte mail se adresou příjemce (pro uživatele na vašem PC stačí jeho login, jinak se zadává běžná emailová adresa), mail se vás zeptá na předmět a pak píšete tělo zprávy (řádek po řádku, podobně jako v editoru ed). Psaní zprávy ukončíte napsáním tečky na samostatném řádku. Mail se pak ihned odešle.

SYNOPSIS

mail [-s predmet] [-r odesilatel] prijemce [prijemce ...]
mail [-f [soubor]] [-H]
mail -u usrid

OPTIONS

-s predmet
Předmět zprávy. Pokud není zadán jako argument, mail se na něj zeptá.
-r odesilatel
Nastaví odesílatele (from)
-f [soubor]
Čte zprávy ze zadaného souboru. Pokud není soubor zadán, čte zprávy z ~/mbox (do tohoto souboru se ukládají už přečtené zprávy. Takže pro čtení starých zpráv je potřeba spustit program s tímto argumentem).
Volba -f se může použít na čtení pošty na vzdáleném počítači pomocí pop3 nebo imap:
mail -f "pop3://mylogin@pop3.centrum.cz"
-H
Vypíše hlavičky zpráv a ukončí se
-u userid
Čte zprávy uživatele zadaného id. (musíte na to mít přístupová práva)

Psaní zprávy (vkládací režim)

Psaní zprávy začnete buď tak, že spustíte mail se seznamem příjemců, nebo v příkazovém režimu zadáte příkaz mail.

Příkaz ~

Je-li na začátku řádku uveden znak ~, slouží pro přechod z vkládacího do příkazového režimu. Za znakem ~ následuje příkaz (další znak), viz následující seznam:

~?
vypíše nápovědu
~:
nyni lze zadat normalni prikaz pro mailx (napr ~:sh spustí shell)
~p
vyslat zpravu, ktera se prave pise
~h
vyžádat si předmět (zadává se řádek po řádku to, cc, bcc, předmět …)
~t to
přidat uživatele do seznamu příjemců
~s predmet
definovat předmět
~c uzivatel
přidat uživatele do seznamu cc (komu se pošle kopie)
~b uzivatel
přidat uživatele do seznamu bcc (komu se pošle slepá kopie, tj. kopie o které nikdo, krom příjemce, neví)
~v
zprávu editovat editorem vim
~p
Vytiskne text zprávy na obrazovku
~@ [soubor]
Bez jména souboru umožňuje editovat seznam příloh a přidat další. Se zadaným jménem souboru, přidá soubor do příloh (pokud je v názvu souboru mezera, tak lze přidat jen prvním způsobem (spuštěním ~@ bez jména souboru …)
~r file
Vloží obsah souboru do těla zprávy
~! prikaz
provede jeden příkaz shellu a pak se vrátí zpět k editaci těla zprávy

Zpracování došlé pošty (příkazový režim)

Po spuštění programu bez zadání příjemce zprávy se vypíšou hlavičky zpráv a spustí se příkazový krežim.

$ mail
"/home/petr/mbox": 3 messages
$ mail
Heirloom mailx version 12.5 7/5/10.  Type ? for help.
"/var/mail/petr": 1 message 1 new
 O  1 petr@linux-0eqy.si Fri Jul  5 16:11   25/639   ahoooj
 O  2 petr@linux-0eqy.si Fri Jul  5 16:33   21/621   ssssssss
>N  3 petr@edge.site     Fri Jul  5 18:04   18/523   Test

První sloupec ukazuje, která zpráva je aktivní (na tu se budou vztahovat příkazy, pokud neurčíte pořadové číslo zprávy). Druhý sloupec je pořadové číslo zprávy, pak email, datum atd.

Výběr zprávy pro příkaz

Většina příkazů umožňuje zadat číslo zprávy, se kterou má příkaz pracovat. Je možné zadávat i rozsah zpráv (od - do):

Vyzkoušet si to můžete s příkazem print, který tiskne obsah emailů na obrazovku. Pokud zadáte p 3, vytiskne se třetí zpráva. Dokonce stačí zadat jen 3 a vypíše se třetí zpráva (print je defaultní akce).

3
mail číslo 3.
2-5
maily 2 až 5 včetně
2 5
zprávy 2 a 5.
*
přečíst všechny zprávy
$
poslední zrpáva
^
první
.
aktuální
:d
všechny zrušené zprávy
:n
nové
:o
staré
:r
již čtené
:u
ještě nečtené
/retezec
obsahující řetězec
userid
zprávy daného uživatele

Příkazy

?
Nápověda
l
(malé L) vypíše všechny příkazy, bez nápovědy
h [+-$]
vypíše se záhlaví všech zpráv. Pokud se všechny nevejdou na obrazovku, vypíše se jich jen několik. h+ vypíše další v řadě, h- vypíše předchozí, h$ vypíše poslední
f n
vypíše se znovu záhlaví n-té zprávy
fi soubor
přečíst zprávu z daného souboru (/home/user/mbox)
ho n…
uvedené zprávy podržet v poštovní schránce
s 3 soubor
vyzvedne zprávu 3 z poštovní schránky a přesune ji do pracovního adresáře do souboru. Pokud soubor není uveden, uloží se do souboru mbox. (Maily se do mbox uloží po přečtení automaticky, takže se příkaz s hodí jen pro ukládání do jiného souboru.)
w
totéž co s, ale bez úschovy záhlaví
c
totéž co s, ale bez označení zpráv jako uložených
folder soubor
Připojí se do daného souboru. Je možné se připojit i na vzdálený počítač pomocí pop3 nebo imap:
folder "pop3://mylogin@pop3.centrum.cz"
si
vypíše délku mailu (size)
=
vypíše číslo aktuální zprávy
!prikaz
vyvolá se subshell, v jeho rámci se provede příkaz a řízení se opět předá programu mail.
sh
vyvolá se shell a po ukončení (Ctrl+d) se vrátí zpět do mailu
m [prijemce]
zpráva se odešle na příjemce. Pokud parametr příjemce není uveden, pošta se pošle zpět odesílateli aktivní zprávy. (mail)
r
odpovědět odesílateli a dalším příjemcům zprávy
R
odpovědět pouze odesílateli
fwd
Přepošle aktivní zprávu (zpráva se stane aktivní například jejím vypsáním)
n
vyvolá zobrazení další zprávy v poště (next). (Pak stačí mačkat Enter pro další a další zprávu)
p
zobrazí se znovu poslední zobrazená zpráva (nebo zprávy zadané číslem …)
v n
n-tá zpráva se zobrazí pomocí editoru (vim).
q
ukončení práce s mailem (CTRL+d)
save
uloží přečtené zprávy do mboxu a odstraní je z mailové schránky
x
program zkončí, ale status pošty zůstane nezměněn (vymazané zprávy zůstávají v poště, přečtené zprávy budou znovu nepřečtené …).
d
vymaže se právě zobrazená zpráva
dp
vymaže se aktuální zpráva, zobrazí se další
u
odvolá zrušení zpráv (undo)
seen n
n-tá zpráva se označí jako přečtená

Zprávy, které nejsou smazány se ukládají do souboru ~/mbox.. Příkazem fi mbox je lze snadno přečíst. Dosud nepřečtené zprávy jsou uloženy v adresáři /var/spool/mail/userid.

Odeslané zprávy, které se nedoručí skončí v souboru ~/dead.letter Stejně tak, pokud program nepozná jméno osoby, které se posílá pošta, nebo pokud se odesílání zprávy přeruší.

Skriptování

Poslat email lze i neinteraktivně (třeba ze skritpu) pomocí programu mail třeba takto:

$ mail emailova_adresa -s "Předmět emailu" <<?php ?><EOF
Prosím, zavolejte mi na linku 830509.
Dekuji, Petr
EOF

Konfigurace

Konfigurace se zapisuje do souboru ~/.mailrc. Příkazy set si můžete vyzkoušet i na příkazové řádce mailu. Například set PAGER=w3m nastaví program na prohlížení obsahu mailu (pager) na w3m (w3m umí zobrazit HTML - mezi textovým a HTML zobrazením se přepíná pomocí \).

Příkazem alias lze vytvořit skupinu emailů, na které se pak může rozesílat email hromadně.

alias nazev_skupiny email [email ...]

Příkazem set password-jmeno@server="heslo" lze nastavit heslo pro jmeno/server. (Takových nastavení můžete mít v ~/.mailrc kolik potřebujete.) Například:

set password-sallyx@pop3.centrum.cz="mojetajneheslo"

Nezapomeňte pak nastavit práva k souboru ~/.mailrc na 600 (aby si nikdo další nemohl vaše hesla číst).

Příkaz shortcut lze použít pro vitvoření aliasu do poštovní schránky. Prefix %: způsobí, že se zprávy po přečetení automaticky uloží do souboru mbox a z poštovní schránky se smažou (musí být nastaveno set nohold).

shortcut sallyx "%:pop3://sallyx@pop3.centrum.cz"

Další možnosti konfigurace

set from="email"
Nastaví odesílatele na email
set smtp-use-starttls
Zapne SSL/TLS šifrování
set smtp="example.com"
Nastaví smtp server pro ochozí poštu
set smtp-auth-user="username"
Nastaví uživatelské jméno pro odchozí poštu
set smtp-auth-password="heslo"
Nastaví heslo pro odchozí poštu
set headline="%>%a%m %25f %24d %5l/%7o %i%s"
Nastavi format hlavicek zprav
Odesílání pošty pomocí smtp často nefunguje, pokud není nastaven správně odesílatel!

Více účtů

Pokud máte více účtů, pak si můžete vytvořit tzv. account pro každý účet a pak se k němu připojovat pomocí -A accountname.

Bohužel mi z nějakého důvodu nefunguje příkaz folder uvnitř accountu, takže musím spolu s volbou -A accountname použít ještě -f folder.

shortcut shortname "%:pop3://admin@example.org"
set password-admin@example.org="heslo"

account accname {
    #folder bohuzel nefunguje, ikdyz by mel :(
    set folder="%:pop3://admin@pop3.example.org"
    set record="~/Mail/EXAMPLE/sent-messages"
    set MBOX="~/Mail/EXAMPLE/inbox.mbox"
    # nastaveni odesilani posty
    set from="admin@example.org"
    set smtp-use-starttls
    set smtp="smtp.example.org"
    set smtp-auth-user="admin@example.org"
    set smtp-auth-password="smtpheslo"
}
$ mail -A accname -f shortname

Poštovní servery (MTA)

V Linuxu existuje několik poštovních serverů. Například exim, sendmail, qmail nebo postfix. Nejstarší z nich je sendmail. Většinou je na Linuxu předinstalován některý z novějších MTA (mail transfer agent). (MTA používá i program mail pro odesílání zpráv.)

Předinstalovaný MTA je nakonfigurovaný na doručování lokální pošty (takže můžete posílat poštu na „login“), ale není připraven na posílání pošty mimo PC. Konfigurace takového MTA není jednoduchá záležitost a pokud vás zajímá, doporučuji si pořídit nějakou dobrou a tlustou knihu …

Dodatek: v OpenSuSE v programu YaST je grafické klikátko pro nastavení MTA, které je poměrně snadno pochopitelné, takže se jej můžete pokusit použít pro nastavení příjmu a odesílání emailů (nevím ale jak tam nastavit stahování pošty od více než jednoho serveru.

Server exim

Konfigurace

/etc/exim/exim.conf je konfigurační soubor.

Například nastavení local_domains = sally:localhost způsobí, že je možné na vlastním počítači posílat poštu uživatelům ve tvaru login@sally nebo login@localhost.

Posílání zpráv na terminál

Dříve bylo běžné posílat si zprávy přímo na terminál. To ovšem vyžaduje, abyste byli připojeni na jednom počítači (nebo jendnom terminálovém „uzlu“). To už dnes není moc běžné, takže následující programy berte jako okénko do historie.

Program write

Program vypíše zprávu přihlášenému uživateli přímo na terminál. Dva uživatelé tak mohou vést dialog za dodržení určítých „pravidel slušnosti“:

  • když přijmeš zprávu "Message from...", oznam připravenost k dialogu prikazem write jmeno
  • čekej, dokud nepřijmeš zprávu se znakem "o" na konci. To znamená, že můžeš odpovídat
  • když chceš dialog ukončit, ukonči zprávu textem "oo".

SYNOPSIS

write uzivatel [terminal]

Terminál se zjistí například příkazem who.

CTRL-d ukončí zadávání zprávy = <EOT> (EOT = End of text).

Zprávu z terminálu smažete pomocí CTRL+l.

Program mesg

Program povoluje / zakazuje příjem zpráv na terminál.

  • mesg n zabrání příjmu zpráv (programem write) - na roota to neplatí :-)
  • mesg y povolí příjem zpráv na terminál
  • mesg zjistí, zda je příjem zpráv povolen či ne

Program wall

Posílá zprávu všem uživatelům jako příkaz write.

Odeslání zprávy pomocí přesměrování výstupu

Zpráva programu write začíná slovy "Message from userid....". Pokud chcete poslat čistě jenom nějaký text, lze to udělat přesměrováním standardního výstupu na terminál (který zjistíte příkazem who). Právo takového vstupu k cizímu terminálu má ovšem pouze root (nebo vy ke svému vlastnímu).

$ echo "Halo, jak se vede?" >/dev/tty01
Komentář Hlášení chyby
Created: 11.9.2005
Last updated: 13.7.2013
Tato stánka používá ke svému běhu cookies, díky kterým je možné monitorovat, co tu provádíte (ne že bych to bez cookies nezvládl). Také vás tu bude špehovat google analytics. Jestli si myslíte, že je to problém, vypněte si cookies ve vašem prohlížeči, nebo odejděte a už se nevracejte :-). Prohlížením tohoto webu souhlasíte s používáním cookies. Dozvědět se více..