Objavljeno:

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.

Kategorije: Informacijska tehnologija, Odprta koda
Ključne besede: Raspberry Pi