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 saaja aadress ebakorrektselt vormistatud.
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, 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.
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, 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. 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 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 uue või lugemata kirja saab avada sisestades p (print) - nool nimekirja ees tähistab valitud kirja, 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 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. 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).
Kasulikke linke
- Send and Receive Mail / GNU Mailutils manual
- mail - Unix, Linux Command, TutorialsPoint
- Linux / Unix Command: mail, About.com Linux
Koostaja
Oliver Tiks - AK21 (2015/2016)
Viited
- ↑ 5 Ways to Send Email From Linux Command Line, TecAdmin.net
- ↑ Linux mail command examples – send mails from command line, BinaryTides
- ↑ How to send email from the Linux command line, SimpleHelp