Pošiljanje e-pošte in SMS sporočil iz Raspberry Pi
V tokratnem prispevku si bomo pogledali kako iz Raspberry Pi iz ukazne vrstice pošiljamo e-pošto ter SMS sporočila.
Pošiljanje e-pošte iz ukazne vrstice
Za pošiljanje e-pošte moramo najprej namestiti dva programska paketa:
sudo apt-get install ssmtp mailutils
Nato nastavimo sSMTP, da bo znal pravilno pošiljati e-pošto. Pošto bomo pošiljali preko GMail računa. Za ostale SMTP strežnike, so nastavitve podobne:
sudo nano /etc/ssmtp/ssmtp.conf
V datoteko vpišemo (in ustrezno spremenimo) naslednje podatke:
# Config file for sSMTP sendmail hostname=rpi3 root=<uporabnik>@gmail.com rewriteDomain=gmail.com mailhub=smtp.gmail.com:587 AuthUser=<uporabnik>@gmail.com AuthPass=<GESLO> FromLineOverride=YES UseSTARTTLS=YES UseTLS=YES
Sedaj lahko iz ukazne vrstice pošljemo e-sporočilo z naslednjim ukazom:
echo "Tole je vsebina sporocila." | mail -s "Testna zadeva" <e-naslov@domena.si>
Če želimo poslati sporočilo v HTML obliki, uporabimo naslednji ukaz (opomba: echo -e omogoča interpretacijo leve poševnice kot ubežnega znaka (ang. backslash escape)):
echo "Pozdrav,<br>tole je <b>krepko</b>, tole pa <i>posevno</i>." | mail -s "$(echo -e "Testno HTML sporocilo\nContent-Type: text/html")" <e-naslov@domena.si>
Vsebino sporočila lahko tudi shranimo v HTML datoteko (npr. html_posta.html) in sporočilo potem pošljemo takole:
cat html_posta.html | mail -s "$(echo -e "Testno HTML sporocilo\nContent-Type: text/html")" <e-naslov@domena.si>
Če želimo spremeniti naslov pošiljatelja (From: polje), to storimo takole:
echo "Pozdrav!" | mail -s "Testno sporocilo" -aFrom:"Raspberry Pi<uporabnik@gmail.com>" <e-naslov@domena>
Privzeto pošiljanje slovenskih znakov (ČŠŽ) ne deluje, zato je treba v e-sporočilo dodati še dve vzglavji (Content-Type in Content-Transfer-Encoding, ki pa sta veljavni samo za telo sporočila (ne pa tudi za zadevo!). Za navadna tekstovna sporočila:
echo "ČŠŽ" | mail -s "$(echo -e "Testno HTML sporocilo\nContent-Type: text/plain; charset=UTF-8\nContent-Transfer-Encoding: quoted-printable")" <e-naslov@domena>
Pa še primer pošiljanja HTML sporočil s slovenskimi znaki ter spremenjenim naslovom pošiljatelja:
echo "Pozdrav,<br>tole so slovenski znaki: <b>ČŠŽ</b>." | mail -s "$(echo -e "Testno HTML sporocilo\nContent-Type: text/html; charset=UTF-8\nContent-Transfer-Encoding: quoted-printable")" -aFrom:"Raspberry Pi<uporabnik@gmail.com>" <e-naslov@domena>
Pošiljanje priponk iz ukazne vrstice
Za pošiljanje priponk lahko uporabimo stikalo -A. Primer pošiljanja dveh datotek (test.wav in test.jpg):
echo "Posiljam ti datoteke..." | mail -s "Datoteke" -A test.wav -A test.jpg -t <uporabnik@domena.si>
Druga možnost pa je, da uporabimo aplikacijo mpack. Mpack je sicer zelo enostaven za uporabo in zna pravilno prilagati datotečne priponke (z uuencode), vendar pa zna poslati samo eno priponko hkrati (lahko pa več datotek stisnemo v arhiv). Namestimo ga takole:
sudo apt-get install mpack
Sporočilo sedaj pošljemo z ukazom:
mpack -s "Posiljam ti fotografijo" -d fotografija.jpg <e-naslov@domena.si>
Prejeto sporočilo v tem primeru ne vsebuje telesa sporočila, dodamo ga tako, da vsebino napišemo v posebno datoteko (telo_sporocila.txt):
mpack -s "Posiljam ti fotografijo" -d telo_sporocila.txt fotografija.jpg <e-naslov@domena.si>
Naj dodamo, da s trenutno različico mailutils (2.99.98) pošiljanje sporočil s priponkami v HTML obliki in s slovenskimi znaki, ne deluje.
Pošiljanje SMS sporočil iz ukazne vrstice
Za konec si bomo pogledali še kako lahko preko Najdi.si vmesnika pošiljamo brezplačna SMS sporočila. Portal Najdi.si namreč omogoča brezplačno pošiljanje do 40 SMS sporočil na dan, seveda pa je za to potrebna registracija.
Python aplikacijo, ki omogoča pošiljanje SMS sporočil iz ukazne vrstice je razvil Andraž Brodnik aka Brodul, namestitev pa je zelo preprosta:
sudo pip install najdisi-sms
Prav tako je enostavno pošiljanje SMS sporočil, potrebujemo le svoje Najdi.si uporabniško ime in geslo:
najdisi-sms -u <uporabnisko_ime> -p <geslo> 040123456 "Testni SMS iz RPi."
S tem smo svoj Raspberry Pi usposobili za pošiljanje obvestil – tako po e-pošti, kot tudi preko SMS sporočil.
Ključne besede: Raspberry Pi