Mail

From ICO wiki
Revision as of 21:13, 7 January 2016 by Otiks (talk | contribs)
Jump to navigationJump to search

mail on utiliit, mis võimaldab Linux/Unix süsteemides saata ja lugeda e-kirju käsurealt.

Sissejuhatus

Mail on kõige populaarsem utiliit e-kirjade saatmiseks Linuxi terminalist.[1] Käsurealt e-kirjade saatmise võimalust võib aga vaja minna ka näiteks automaatsete teavituste genereerimiseks skriptist või veebirakendustest.

Allpool on välja toodud mõned peamised mail-utiliidi võimalused, mida on refereeritud veebist leitud juhenditest.[2][3]

Tööpõhimõte

Mail-käsuga käivitatakse binaarfail /usr/sbin/sendmail, mis pöördub kohaliku sõnumiedastusagendi (MTA) poole, et saata kiri sihtkohta. Kohalikuks sõnumiedastusagendiks on lokaalne meiliserver, mis kasutab porti 25.

mail -> /usr/sbin/sendmail -> saatja MTA (SMTP-server) -> vastuvõtja MTA (ja postkast)

Võimalikud vead

E-posti kasutamiseks peab masinas töötama ka SMTP-server, milleks võib paigaldada ja seadistada näiteks Postfix tarkvara, vastasel korral kuvatakse mail-käsu peale terminalis veateade:

"send-mail: Cannot open mail:25"

Kirja saatmise ebaõnnestumise korral on sagedaks veateateks:

"cannot send message: Process exited with a non-zero status mail"

See viitab kas valesti seadistatud meiliserverile või on kirjale jäänud lisamata saaja aadress.

Kui Postfix on valesti seadistatud või katki, võib paigaldada ka vanema meiliedastusprogrammi Sendmail, millega mail-utiliit samuti töötab.

Paigaldamine

Selleks, et e-kirju käsurealt saata, paigalda esmalt tarkvarapakk gnu mailutils, mis on saadaval enamikus Debiani ja Ubuntu süsteemides.

$ sudo apt-get install mailutils

Seejärel peakski mail-utiliit olema töövalmis.

Märkus: mail-utiliidi saab paigaldada ka teiste pakettidega (heirloom-mailx, bsd-mailx), neist igaüks pakub pisut erinevaid võimalusi.

Kirja saatmine

Saada e-kiri aadressile kevad@kuskil.ee, teema määramiseks kasuta võtit -s, saaja aadress lisa rea lõppu. Seejärel vajuta Enter-klahvi. Süsteem pakub ka võimalust lisada koopia saaja, kuid selle rea võib jätta tühjaks ja liikuda edasi.

$ mail -s "Tere, kevad!" kevad@kuskil.ee


Seejärel saab kirjutada valmis sõnumi. Reavahetuseks vajuta Enter-klahvi. Kirjutamine lõpetatakse uue rea alguses klahvikombinatsiooniga 'Ctrl+D'. Selle peale saadetakse sõnum teele.

$ mail -s "Tere, kevad!" kevad@kuskil.ee
Cc: 
Kaugel oled?
Ootan.
Mina
<Ctrl+D>
$


Sõnumi võib lisada kirjale samal käsureal. Seda on hea kasutada süsteemiteadete saatmiseks.

$ echo "Olen katki!" | mail -s "Achtung!" mina@minuonn.ee


Teine viis sõnumi lisamiseks samal real.

$ mail -s "Teema" keegi@kuskil.com <<< 'Sõnumi sisu'


Kirja sisuks oleva sõnumi saab võtta ka failist. Hea kasutada skripti puhul.

$ mail -s "Teema" keegi@kuskil.com < /home/user/minukiri.txt


Koopia (CC) saatmiseks kasuta võtit -c, salakoopia (BCC) saatmiseks võtit -b.

$ mail -s "Teema" keegi@kuskil.com -c temacc@temaonn.com -b minabcc@minuonn.com


Mitmele adressaadile kirja saatmiseks eralda aadressid komaga.

$ mail -s "Teema" keegi@kuskil.com,keegiteine@kuskilmujal.com


Saatja aadressi näitamiseks kirja päises kasuta võtit -a.

# echo "Sõnumi sisu" | mail -s "Teema" keegi@kuskil.com -aFrom:mina@minuonn.com


Saatja nime saab ka lisada päisesse.

$ echo "Sõnumi sisu" | mail -s "Teema" -aFrom:Nimi\<mina@minuonn.com\> keegi@kuskil.com

Märkus: erimärkide < ja > puhul tuleb terminali käsureal kasutada paomärki \.


Manuse lisamist võimaldab samuti võti -a.

$ mail -a /home/user/minufail.txt -s "Teema" keegi@kuskil.com < /dev/null

Märkus: < /dev/null jätab kirja sisu tühjaks.

Kohalikule kasutajale e-kirja saatmiseks piisab kasutajanimest, aadressi pole vaja.

$ mail -s "Teema" kasutajanimi


Kasutajanimele võib lisada ka masina nime kasutades @-märki.

$ mail -s "Teema" kasutajanimi@masinanimi


Meiliserveri testimisel võib olla abiks võti -v (verbose), mida kasutades kuvatakse vea korral täpsem logiinfo.

$ mail -v -s "Test" keegi@kuskil.com <<< 'See on test'


Skripti näide: süsteemiraporti saatmine e-postiga

#!/bin/bash
du -sh | mail -s "disk usage report" mina@minudomeen.com

Kui need kaks rida salvestada faili ja see käivitada, saadetakse e-kiri käsu "du -sh" tulemusega.

Kirjade lugemine

Mail-utiliidiga saab kirju ka lugeda. Kui sisestada käsk 'mail' ilma ühegi võtmeta, kuvatakse süsteemi postkontoris olevad uued kirjad, mis asub kaustas /var/mail/. Igal kasutajal on seal oma postkast.

root@desktop:~# mail
"/var/mail/root": 7 messages 7 new
>N   1 root               N jaan   7 18:27  15/657   Test1
 N   2 root               N jaan   7 18:27  15/657   Test2
 N   3 root               N jaan   7 18:27  15/657   Test3
 N   4 root               N jaan   7 18:28  15/657   Test4
 N   5 root               N jaan   7 18:28  15/657   Test5
 N   6 root               N jaan   7 18:28  15/657   Test6
 N   7 root               N jaan   7 18:28  15/657   Test7
?

Nimekirja lõpus olev ? tähistab seda, et terminal ootab käsku. Iga käsk tuleb kinnitada Enter-klahviga.

Kirja avamiseks sisesta kirja järjekorranumber. Esimese lugemata kirja saab avada sisestades 'p', kirjade vahel saab liikuda + ja - käskudega. Kustutamiseks sisesta 'd', vastamiseks 'r'.

Postkastist väljumiseks sisesta 'q', nimekirja uuesti kuvamiseks 'h' ja sessiooni katkestamiseks 'x'.

Kui postkastist on väljutud (mitte sessiooni katkestatud), liigutatakse vaikimisi kõik loetud kustutamata kirjad kasutaja isiklikku postkasti mbox, mis asub kasutaja kodukaustas. Selle avamiseks tuleb kasutada -f võtit.

root@desktop:~# mail -f
"/root/mbox": 8 messages 6 unread
     1 root               N jaan   7 18:15  18/701   Test
>U   2 root               N jaan   7 18:16  17/667   Test
 U   3 root               N jaan   7 18:28  17/676   Test4
 U   4 root               N jaan   7 18:28  17/676   Test6
     5 root               N jaan   7 18:28  17/677   Test7
 U   6 root               N jaan   7 18:27  18/701   Test1
 U   7 root               N jaan   7 18:27  17/676   Test2
 U   8 root               N jaan   7 18:28  18/701   Test5
?

Kirjade vahel navigeerimine käib siin samamoodi.

Kasulikke linke

Koostaja

Oliver Tiks - AK21 (2015/2016)

Viited