Mail

From EIK wiki

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. Mail-utiliit töötab nii juur- kui ka tavakasutaja õigustes. Allpool on välja toodud mõned peamised mail-utiliidi võimalused, mida on osaliselt 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 (SMTP).

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

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, kui ei, siis otsi viga.

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

Kasutamine

Mail-utiliidil on päris palju erinevaid võimalusi, mida saab kasutada, täpsustades erinevate võtmete lisamisega põhikäsku. Siin osas välja toodud näited on läbi proovitud Ubuntu terminalis.

Kirja saatmine

Kirja saatmise alustamiseks lisa käsule mail võti -t ja vajuta Enter-klahvi.

mail -t

Edasi sisesta saaja aadress, soovi korral ka koopia aadress ja teema, misjärel saad kirja panna sõnumi sisu.

Reavahetuseks vajuta Enter-klahvi. Kirjutamine lõpetatakse uue rea alguses klahvikombinatsiooniga Ctrl+D. Selle peale saadetakse sõnum teele. Kui järgmisele reale ilmub käsuviip, on kiri saadetud.

Kirja saatmist saab katkestada sisestades ~x või klahvikombinatsiooniga Ctrl+C ning vajutades Enter-klahvi.

Näide käsurealt saadetud kirjast ($ tähistab käsuviipa):

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


Saab ka lühemalt, koondades erinevad päised ühele käsureale (sel juhul pole võtit -t tarvis). Näiteks saada e-kiri aadressile keegi@kuskil.ee, teema määramiseks kasuta võtit -s. Jätkamiseks vajuta Enter-klahvi.

mail -s "Teema" keegi@kuskil.ee

Kui unustasid saaja aadressi või teema esimesel real kirja panna, küsitakse neid eraldi. Ka on võimalus lisada koopia aadress. Seejärel saab kirjutada valmis sõnumi.


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

echo "Olen katki!" | mail -s "Achtung!" admin@domeen.com


Veel üks näide 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, pimekoopia (BCC) saatmiseks võtit -b.

mail -s "Teema" keegi@kuskil.com -c temakoopia@temaonn.com -b minupimekoopia@minuonn.com


Mitmele adressaadile kirja saatmiseks eralda aadressid komaga (toimib ka koopia ja pimekoopia saatmisel).

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


Kirja päisesse täiendava info lisamiseks kasuta võtit -a.

echo "Sõnumi sisu" | mail -s "Teema" keegi@kuskil.com -a "Importance: high"


Manuse lisamist võimaldab 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


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. Selleks on samuti käsk mail.

mail

Kui sisestada käsk mail ilma ühegi võtmeta, kuvatakse nö süsteemi postkontoris olevad uued kirjad, mis asuvad kaustas /var/mail/. Igal kasutajal on seal oma postkasti fail (NB! juurkasutaja saab neid kõiki lugeda).

Näide juurkasutajale saabunud e-kirjadest (root@desktop:~# on käsuviip):

root@desktop:~# mail
"/var/mail/root": 5 messages 3 new 2 unread
 U   1 tudeng             E jaan  11 22:59  18/725   Test from student
 U   2 Kalju Kiilakas     E jaan  11 23:24  17/724   Test from kkaalikas
>N   3 juri@desktop.lab.i E jaan  11 23:27  15/664   Test from Juri
 N   4 kuldnokk@desktop.l E jaan  11 23:31  16/726   Test from kuldnokk
 N   5 root               T jaan  12 00:17  15/678   Testkiri failist
?

Nool nimekirja ees tähistab valitud kirja. U tähistab lugemata kirja, mis eelmisel korral jäi vaatamata. N tähistab uut kirja, mis on saabunud vahepealsel ajal.

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 uue või lugemata kirja (vaikimisi on nool selle ees) saab avada sisestades p (print), kirjade vahel saab liikuda + ja - käskudega. Kustutamiseks sisesta d (delete), vastamiseks r (reply).

Postkastist väljumiseks sisesta q (quit), nimekirja uuesti kuvamiseks h (headers) ja sessiooni katkestamiseks x (exit).

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

mail -f

Näide juurkasutaja postkastist (root@desktop:~# on käsuviip):

root@desktop:~# mail -f
"/root/mbox": 8 messages 3 new 2 unread
     1 root               R jaan   8 00:04  19/707   Test12
     2 Anacron            R jaan   8 01:59  18/887   Anacron job 'cron.daily' 
     3 Anacron            E jaan  11 22:54  18/890   Anacron job 'cron.daily' 
 U   4 tudeng             E jaan  11 22:59  18/725   Test from student
 U   5 Kalju Kiilakas     E jaan  11 23:24  17/724   Test from kkaalikas
>N   6 juri@desktop.lab.i E jaan  11 23:27  15/664   Test from Juri
 N   7 kuldnokk@desktop.l E jaan  11 23:31  16/726   Test from kuldnokk
 N   8 root               T jaan  12 00:17  15/678   Testkiri failist
?

Kirjade vahel navigeerimine käib siin samamoodi. Kirju saab kuvada / kustutada ka mitmekaupa. Selleks tuleb sisestada näiteks p 1 2 (kuvatakse esimesed kaks kirja) või d 2-4 (kustutatakse kirjad 2, 3 ja 4).

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 saaja aadress ebakorrektselt vormistatud (näiteks puudub sootuks).

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

Kokkuvõte

Mail-utiliiti on käsurealt lihtne paigaldada ja kasutada, kuid isiklikuks kirjavahetuseks pole see ehk kõige mugavam ega ka privaatsem viis. Küll aga sobib see utiliit hästi erinevate süsteemiraportite saatmiseks ja teavituste seadistamiseks skriptides.

Sellel käsul on omajagu lisavõimalusi, millest siin on käsitletud vaid väikest osa, mistõttu tasub kindlasti tutvuda ka vastava dokumentatsiooniga.

Kasulikke linke

Autor

Oliver Tiks - AK21 (2015/2016)

Viited