Stefan's Weblog

14Sep/142

Motion mit E-Mail-Versand

Ich habe vor kurzem eine kleine Überwachungskamera mit meinem Pi gebastelt, die auch nach einigen Tagen noch wunderbar funktioniert. Da ich die Bilder aber nur daheim im Netzwerk betrachten kann, habe ich noch zusätzlich einen E-Mail-Versand eingerichtet. Dadurch werden die ertellten Bilder automatisch an eine E-Mail-Adresse gesendet, die ich weltweit abrufen kann.

Für das Vorhaben benötigt ihr neben dem Pi und einer Camera auch eine E-Mail-Adresse bei einem irgendeinem Provider. Ich habe mich hier für Strato entschieden, da ich meine Bilder nicht an ein ausländisches Unternehmen geben möchte.

MTA Postfix

Der E-Mail-Versand fuktioniert bei mir über den Mail Transfer Agent (MTA) Postfix, der in den Repositories enthalten ist und sich einfach und flexibel anpassen lässt.

Ich habe die folgenden Pakete installiert.

sudo aptitude install postfix libsasl2-modules bsd-mailx cyrus-imapd-2.2 cyrus-admin-2.2 sasl2-bin

postfix-Konfiguration

postfix-Konfiguration

postfix-Konfiguration

postfix-Konfiguration

postfix-Konfiguration

postfix-Konfiguration

Damit über Postfix auch Anhänge versendet werden können ist das Paket "heirloom-mailx" unbedingt zu installieren. Fehlt dies, wird nur reiner Text per E-Mail versendet.

sudo aptitude install heirloom-mailx

Nach dem Herunterladen der Pakete werden die Programme installiert. Dabei ist bei Postfix anzugeben, dass ihr eure Mails über einen ISP versenden wollt.

Die Konfiguration von Postfix ist über ein paar Dateien im Verzeichnis /etc/postfix/ vorzunehmen. Die Hauptkonfigurationsdatei ist die main.cf die wir mit dem Editor nano bearbeiten.

sudo nano /etc/postfix/main.cf

Scrollt ganz an das Ende der Datei und fügt dort die folgenden Zeilen ein.

relayhost= smtp.strato.de:587
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_sasl_security_options = noanonymous
smtp_use_tls = yes
smtp_enforce_tls = no
smtp_tls_enforce_peername = no
smtpd_tls_security_level = may


Schließt und Speichert die Datei dann ab.

Sollten beim Versuch des E-Mail-Versands Meldungen zu IPv6 kommen, dann könnt ihr in der main.cf die Zeile

inet_protocols = ipv4


eintragen, um das zu lösen.

ipv6 - Fehlermeldung deaktivieren

ipv6 - Fehlermeldung deaktivieren

Nach der Bearbeitung der main.cf ist eine neue Datei mit dem Namen sasl_passwd im gleichen Verzeichnis anzulegen, worauf wir auch mit dem Eintrag smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd verweisen. Die Datei enthält den Benutzernamen und das Passwort eurer E-Mail-Adresse.

sudo nano /etc/postfix/sasl_passwd


Der Inhalt der Datei setzt sich zusammen aus

E-Mail-Server:Port E-Mail-Adresse:Passwort


An einem Beispiel ist das recht einfach darzustellen:

smtp.strato.de:587 :passwort


Ganz wichtig hierbei ist, dass der E-Mail-Server-Eintrag gleich dem Eintrag der main.cf entspricht. Schließt und speichert die Datei dann ab. Die sasl_passwd ist anschließend noch in eine db-Datei umzuwandeln, bevor Postfix neugestartet werden kann.

sudo postmap /etc/postfix/sasl_passwd
sudo /etc/init.d/postfix restart


Den Status von postfix könnt ihr euch jederzeit mit dem Befehl anzeigen lassen:

sudo service postfix status

Wird euch keine Fehlermeldung ausgegeben, können wir den ersten Versuch zum Versenden einer E-Mail unternehmen. Gebt dazu den folgenden Befehl auf der Konsole ein:

echo "Das Leben ist schön." | mailx -s "Hello World" e-mail-adresse


Wenn alles richtig konfiguriert ist solltet ihr eine Nachricht in eurem Postfach finden. Kommt dort keine Mail an, dann ist die Log-Datei zu analysieren, die sich im Verzeichnis /var/log findet.

cat /var/log/mail.info

Motion an E-Mail-Versand anpassen

Funktioniert der E-Mail-Versand über Postfix, ist Motion noch anzupassen.
Öffnet die Konfigurationsdatei der Applikation mit einem Editor uns sucht dort nach dem Entrag on_picture_save. Ersetzt die Zeile durch:

echo 'webcam alert' | mail -a %f -s "Webcam Alert" e-mail-adresse


Die Nachricht könnt ihr auch noch personalisieren.

  • Betreff = Webcam Alert
  • Body = webcam alert

Ihr müsst beachten, dass bei dieser Konfiguration nur Bilder per E-Mail versendet werden. Standardmäßig erstellt die angepasste motion-Konfiguration (motion.mmalcam.con) jedoch nur Video-Dateien. Da ich die Video zum Anschauen aber angenehm finde, habe ich noch den Eintrag editier:

output_pictures off


wird zu

output_pictures on


Hier gibt es auch mehrere Möglichkeiten, was als Bild gespeichert werden kann. Die Beschreibung aus der Konfig-Datei lautet:
# Output 'normal' pictures when motion is detected (default: on)
# Valid values: on, off, first, best, center
# When set to 'first', only the first picture of an event is saved.
# Picture with most motion of an event is saved when set to 'best'.
# Picture with motion nearest center of picture is saved when set to 'center'.
# Can be used as preview shot for the corresponding movie.

Hat man einen Fehler bei der Konfiguration gemacht, kann man Postfix auf Werkseinstellungen zurücksetzen. Dafür einfach den Befehl auf der Konsole ausführen:

sudo dpkg-reconfigure postfix 

Quellen

Nachtrag Januar 2016

Nachdem seit einigen Wochen Raspbian Jessie zur Verfügung steht, wollte ich wie oben beschrieben Motion installieren. Leider scheinen noch nicht alle benötigten Pakete für Jessie in den Repositories vorhanden zu sein.
Möchte man aber trotzdem Jessie und Motion zusammen verwenden, dann sollte das evtl. mit V4L2-Treiber für das Raspberry Pi-Kameramodul möglich sein. Eine Anleitung gibts hier im Blog ➡ Motion mit UV4L auf dem Raspberry Pi

Bildquelle: raspberrypi.org

hat dir dieser Artikel gefallen?

Dann abonniere doch diesen Blog per RSS Feed!

Kommentare (2) Trackbacks (0)
  1. Hi, dein Tut hat mir sehr weitergeholfen.Interessant wär noch, wenn du erwähnen würdest, wozu die einzelnen Zusatzpakete zu Postfix dienen.Aktuell machen viele Mailhoster Probleme, wenn man etwas, mit einer nicht zum Hoster passenen Domain, über deren SMTP Server schicken will.Nach einigem Googeln habe ich eine schnelle und für mich passende Lösung gefunden.
    Da
    viele Hoster aktuell das Versenden über einen anderen/unbekannten
    Absender verbieten, bekommen wir beim versenden eine Fehlermeldung.
    Postfix
    bietet über folgenden config Eintrag (auch in main.cf) die
    Möglichkeit den Absender umzuschreiben.
    sender_canonical_maps
    = hash:/etc/postfix/sender_canonical
    Danach
    folgende Datei mit mit „nano“ erstellen und den Eintrag zum
    Umschreiben des eigenen Absenders erstellen.

    sudo
    nano /etc/postfix/sender_canonical

    Inhalt:
    1 User wird beim Maiversand durch 2. User ersetzt (User@Hostname
    User@Maildomain):

    pi@raspberrypi
    Username@web.de

    Nun
    muss die Datei noch in ein für Postfix lesbares Datenbankformat
    gebracht werden
    postmap
    /etc/postfix/sender_canonical

    sudo /etc/init.d/postfix restartEine weiter Sache ist mir noch aufgefallen.Man könnte/sollte die Dateien sasl_passwd und sasl_passwd.db nur von root lesbar machen.
    sudo chmod 600 /etc/postfix/sasl_passwdsudo chmod 600 /etc/postfix/sasl_passwd.db

  2. Hi Salzi,

    vielen Dank für den Hinweis.


Leave a comment

Noch keine Trackbacks.

%d Bloggern gefällt das: