OpenWrt - wysyłanie wiadomości e-mail
Konfiguracja OpenWrt do wysyłania mejli
Ostatnia zmiana: 2013-11-26 18:42

1. msmtp
 1.1. Instalacja
 1.2. Wysyłanie wiadomości
2. ssmtp
 2.1. Instalacja
 2.2. Wysyłanie wiadomości


Do czego można użyć mejli wysyłanych z rutera z OpenWrt? Można wysyłać powiadomienia np. o zakończeniu pobierania torrentów, statystyki dzienne, informacje o kończącym się miejscu na dysku lub przekroczeniu transferu przez jednego z użytkowników. Zastosowań może być wiele.

Obecnie większość serwerów pocztowych wymaga uwierzytelniania w celu wysłania poczty (wykorzystujemy serwer jako pośrednik, nie wysyłamy mejla bezpośrednio). Ten warunek spełnia m.im program msmtp. Dostępne są także inne programy, ale ten ma dość szerokie możliwości konfiguracyjne. Przykładowe rozwiązane zaprezentowano dla konta gmail, w innych przypadkach mogą różnić się ustawienia serwera.
msmtp

Instalacja

    # opkg update
    # opkg install msmtp

Jeżeli konto pocztowe nie wymaga używania SSL/TLS można zainstalować pakiet msmtp-nossl bez zależności libopenssl i zlib. Pozwoli to na znaczne zaoszczędzenie pamięci flash.
Następnie należy wyedytować plik /etc/msmtprc i podać dane dla określonego konta. Dla gmail może to być np. coś takiego

    account default
    host smtp.gmail.com
    port 587
    auth on
    user XXX@gmail.com
    password YYY
    auto_from off
    from XXX@gmail.com
    tls on
    tls_starttls on
    tls_certcheck off
    logfile
    syslog LOG_MAIL

Zamiast XXX/YYY należy podać nazwę konta i hasło do niego.
Wysyłanie wiadomości
Tworzymy wiadomość w pliku o następującej zawartości:

    To: cezary@eko.one.pl
    Subject: Wiadomosc testowa
    
    To dziala!

I wysyłamy mejla poleceniem

    # cat plik.txt | sendmail -t

Jeżeli wszystko jest poprawnie na konsoli nie powinien pojawić się żaden komunikat, natomiast w logach (logread) powinna być dostępna informacja o poprawnym wysłaniu mejla (exitcode=EX_OK)

    Jan  1 00:21:08 OpenWrt mail.info msmtp: host=smtp.gmail.com tls=on auth=on user=XXX@gmail.com from=XXX@gmail.com recipients=cezary@eko.one.pl mailsize=91 smtpstatus=250 smtpmsg='250 2.0.0 OK 1247301648 10sm4436033eyz.11' exitcode=EX_OK

Jeżeli jest tam błąd (errormsg) należy w pierwszej kolejności sprawdzić ustawienia konta pocztowego.

ssmtp
sSMTP jest mniejszy objętościowo i także może działać jako przekaźnik poczty.
Instalacja

    # opkg update
    # opkg install ssmtp

Następnie należy wyedytować plik /etc/ssmtp/ssmtp.conf i podać dane dla określonego konta. Dla gmail może to być np. coś takiego

    root=XXX@gmail.com
    mailhub=smtp.gmail.com:587
    rewriteDomain= 
    UseSTARTTLS=YES                     
    AuthUser=XXX@gmail.com
    AuthPass=YYY
    FromLineOverride=YES

Zamiast XXX/YYY należy podać nazwę konta i hasło do niego.
Wysyłanie wiadomości
Tworzymy wiadomość w pliku o następującej zawartości:

    To: cezary@eko.one.pl
    Subject: Wiadomosc testowa
    
    To dziala!

I wysyłamy mejla poleceniem

    # cat plik.txt | sendmail -t

Jeżeli wszystko jest poprawnie na konsoli nie powinien pojawić się żaden komunikat, natomiast w logach (logread) powinna być dostępna informacja o poprawnym wysłaniu mejla

    Jan  1 00:21:09 OpenWrt mail.info sSMTP[2252]: Sent mail for XXX@gmail.com (221 2.0.0 closing connection j3sm21818009wiw.1) uid=0 username=root outbytes=413

Jeżeli pojawi się błąd należy w pierwszej kolejności sprawdzić ustawienia konta pocztowego.