RPi E-Mail IP-Adresse?
also ich suche einen weg das mein RPi4 jeden Tag seine aktuelle IP-Adresse zusendet damit ich von überall per Remote Desktop Protokoll auf den RPi zugreifen kann. Am besten wäre es wenn die Lösung auchnoch innerhalb von micrsofts remote desktopverbindung programm sich automatisch aktualisieren würde aber wenn ich die adresse nur per mail bekomme würde es schon reichen
hat jemand eine Idee
4 Antworten
echo $(curl -s http://whatismyip.akamai.com/) | mail -s "IP-Adresse" email@example.com
Das in einem Script, ggf. per Cron-Job täglich getriggert.
email@example.com musst Du schon durch eine gültige Adresse ersetzen.
Ansonsten weiß ich nicht, wo
mail: Adresse „Mail”” kann nicht verarbeitet werden
herkommen soll. Nirgendwo in meinem Code steht "Mail".
reboot tut gut ! erste fehlermeldung ist jetzt weg jetzt gibt es ein neues problem:
mail: Nachricht kann nicht gesendet werden: Prozess wurde mit einem von Null verschiedenen Status beendet
Kann der Pi überhaupt Mails verschicken? Hast Du den MTA mal konfiguriert?
ich hab mehrere anleitungen aus dem internet zum konfigurieren probiert keine hat funktioniert. Ich weiß es ist viel verlangt aber kannst du mir eine anleitung senden wie das geht, (für dumme). einfach des was ich gefragt hab möglichst einfach so das ichs machen kann
Danke schonmal falls dus machst ;-)
Es kommt ja erst mal darauf an, welchen MTA Du überhaupt installiert hast.
Postfix ist jetzt nicht gerade der einfachste MTA. Lese, verstehe und setze um:
https://wiki.ubuntuusers.de/Postfix/#Besondere-Konfigurationen
welches wäre denn deiner meinung nach der einfachste ?
Schau Dir ggf. mal nullmailer an, wenn Du einen 'Smart Host' verwenden kannst. Oder vielleicht ssmtp.
Die sidn recht überschaubar in der Einrichtung.
Ich verwende bsd-mailx zusammen mit ssmtp.
sudo apt remove postfix
sudo apt install bsd-mailx ssmtp
sudo nano /etc/ssmtp/revaliases
root:email@domain.example:smtp.provider.com:465
pi:pi@domain.example:smtp.provider.com:465
sudo nano ssmtp.conf
root=email@domain.example
mailhub=smtp.provider.com:465
rewriteDomain=domain.example
hostname=domain.example
UseTLS=YES
AuthUser=Benutzername
AuthPass=Passwort
FromLineOverride=YES
Sinnentsprechend ersetzen musst Du:
email@example.com -> durch Deine E-Mail-Adresse
smtp.provider.com:456 -> durch die Adresse und Portnummer des SMTP-/Postausgangsservers Deines E-Mail-Providers
domain.example -> Durch Deine Domain, sofern Du eine eigene hast. Ansonsten streiche die komplette Zeile
AutUser und AuthPass -> durch die Zugangsdaten Deines E-Mail-Postfachs
habe jetzt ssmtp genommen und die anleitung aus raspberry-projects.com bekomme aber folgende fehlermeldung
mail: Nachricht kann nicht gesendet werden: Prozess wurde mit einem von Null verschiedenen Status beendet
was kann ich da machen
Was steht denn in /var/log/mail.log? Ggf. gibt es auch noch ein separates Errorlog. Mach mal ein
ls -l /var/log/ | grep mail
Dann siehst Du alle Logfiles, die irgendwas mit mail zu tun haben. Auch in /var/log/daemon.log könnte etwas stehen:
grep mail /var/log/daemon.log
Die Ausgbe des ersten:
-rw-r----- 1 root adm 1162 Feb 13 17:00 mail.err
-rw-r----- 1 root adm 8708 Feb 12 20:59 mail.err.1
-rw-r----- 1 root adm 7372 Feb 13 17:00 mail.info
-rw-r----- 1 root adm 37626 Feb 12 20:59 mail.info.1
-rw-r----- 1 root adm 7372 Feb 13 17:00 mail.log
-rw-r----- 1 root adm 37626 Feb 12 20:59 mail.log.1
-rw-r----- 1 root adm 1521 Feb 13 17:00 mail.warn
-rw-r----- 1 root adm 35958 Feb 12 20:59 mail.warn.1
Ausgabe des zweiten
Feb 13 15:20:03 raspberrypi systemd[1]: Started Nullmailer relay-only MTA.
Feb 13 15:28:01 raspberrypi systemd[1]: Stopping Nullmailer relay-only MTA...
Feb 13 15:28:01 raspberrypi systemd[1]: nullmailer.service: Main process exited, code=killed, status=15/TERM
Feb 13 15:28:01 raspberrypi systemd[1]: nullmailer.service: Succeeded.
Feb 13 15:28:01 raspberrypi systemd[1]: Stopped Nullmailer relay-only MTA.
Du hast doch geschrieben, dass Du ssmtp verwendest? Warum steht da im Log nun Nullmailer?
Warum hast Du die Frage
Was steht denn in /var/log/mail.log?
nicht beantwortet?
Warum bist Du dem Hinweis
Auch in /var/log/daemon.log könnte etwas stehen
nicht nachgegangen?
Das System legt Logfiles nicht nur an, weil es geht. Man findet dort wertvolle Hinweise zur Fehlerbehebung. Deshalb fragte ich danach.
Zudem habe ich Dich nicht gebeten, nach weiteren Logfiles im Zusammenhang mit mail zu schauen, weil ich neugierig bin. Was vermutest Du, könnte in mail.err stehen? Wäre es vielleicht sinnvoll, da hineinzuschauen?
Was steht in /var/log/mail.info, /var/log/mail.warn? Wenn man ein Problem hat, sollte man Logfiles nicht ignorieren. Vor allem nicht dann, wenn man gebeten wird, da mal hineinzuschauen. Wenn man HIlfe erbittet, sollte man die nötigen Informationen liefern. Dies gilt umso mehr, wenn man konkret nach den Informationen gefragt wurde.
Also nullmailer steht da weil ich das davor installiert hatte aber dann deinstalliert. Sry das ich nicht ales geschickt hab kommt jetzt...
Also die logs sagen nach senden der mail folgendes :
mail.log:
Feb 13 17:47:47 raspberrypi sSMTP[5300]: Creating SSL connection to host
Feb 13 17:47:48 raspberrypi sSMTP[5300]: SSL connection using ECDHE_RSA_AES_256$
Feb 13 17:47:48 raspberrypi sSMTP[5300]: (raspberrypi)
deamon.log
keine neuen eintragungen
mail.info:
Feb 13 17:47:47 raspberrypi sSMTP[5300]: Creating SSL connection to host
Feb 13 17:47:48 raspberrypi sSMTP[5300]: SSL connection using ECDHE_RSA_AES_256$
Feb 13 17:47:48 raspberrypi sSMTP[5300]: (raspberrypi)
mail.warn: mail.err zeigt dasselbe an
Feb 13 17:47:48 raspberrypi sSMTP[5300]: (raspberrypi)
mail.err.1 und mail.warn.1 und mail.info.1 ergaben keine weiteren punkte
Sry wenn ich das letzte mal was überlesen hab
Versuche mal bitte
echo "Test" | mail -vs "das ist ein Test" email@example.com
wobei Du email@example.com durch Deine E-Mail-Adresse ersetzt.
Dann verwendet Dein System nicht bsd-mailx. Was ist die Ausgabe von
ls -l /etc/alternatives | grep mail
?
Also des Ding war das bsd-mailx nicht gewählt war. Jetzt ist es ausgewählt und erzeugt folgende Ausgabe mit echo "Test" | mail -vs "das ist ein Test" email@example.com :
[<-] 220 smtp.gmail.com ESMTP u5sm8792824edc.29 - gsmtp
[->] EHLO raspberrypi
[<-] 250 SMTPUTF8
[->] STARTTLS
[<-] 220 2.0.0 Ready to start TLS
[->] EHLO raspberrypi
[<-]
send-mail: (raspberrypi)
Can't send mail: sendmail process failed with error code 1
Mit ls -l /etc/alternatives | grep mail wird folgende ausgabe erzeugt:
lrwxrwxrwx 1 root root 26 Feb 13 15:33 dotlock -> /usr/bin/dotlock.mailutils
lrwxrwxrwx 1 root root 42 Feb 13 15:33 dotlock.1.gz -> /usr/share/man/man1/dotlock.mailutils.1.gz
lrwxrwxrwx 1 root root 22 Feb 13 15:33 frm -> /usr/bin/frm.mailutils
lrwxrwxrwx 1 root root 38 Feb 13 15:33 frm.1.gz -> /usr/share/man/man1/frm.mailutils.1.gz
lrwxrwxrwx 1 root root 23 Feb 13 15:33 from -> /usr/bin/from.mailutils
lrwxrwxrwx 1 root root 39 Feb 13 15:33 from.1.gz -> /usr/share/man/man1/from.mailutils.1.gz
lrwxrwxrwx 1 root root 18 Feb 14 11:28 mail -> /usr/bin/bsd-mailx
lrwxrwxrwx 1 root root 18 Feb 14 11:28 Mail -> /usr/bin/bsd-mailx
lrwxrwxrwx 1 root root 34 Feb 14 11:28 mail.1.gz -> /usr/share/man/man1/bsd-mailx.1.gz
lrwxrwxrwx 1 root root 34 Feb 14 11:28 Mail.1.gz -> /usr/share/man/man1/bsd-mailx.1.gz
lrwxrwxrwx 1 root root 18 Feb 14 11:28 mailx -> /usr/bin/bsd-mailx
lrwxrwxrwx 1 root root 34 Feb 14 11:28 mailx.1.gz -> /usr/share/man/man1/bsd-mailx.1.gz
lrwxrwxrwx 1 root root 27 Feb 13 15:33 messages -> /usr/bin/messages.mailutils
lrwxrwxrwx 1 root root 43 Feb 13 15:33 messages.1.gz -> /usr/share/man/man1/messages.mailutils.1.gz
lrwxrwxrwx 1 root root 27 Feb 13 15:33 movemail -> /usr/bin/movemail.mailutils
lrwxrwxrwx 1 root root 43 Feb 13 15:33 movemail.1.gz -> /usr/share/man/man1/movemail.mailutils.1.gz
lrwxrwxrwx 1 root root 26 Feb 13 15:33 readmsg -> /usr/bin/readmsg.mailutils
lrwxrwxrwx 1 root root 42 Feb 13 15:33 readmsg.1.gz -> /usr/share/man/man1/readmsg.mailutils.1.gz
Du verwendest Gmail. In der /etc/ssmtp/revaliases muss stehen:
benuter:username@gmail.com:smtp.gmail.com:587
"benutzer" und "username" bitte anpassen. Wichtig ist der Port 587.
In der /etc/ssmpt/ssmtp:
UseTLS=Yes
UseSTARTTLS=Yes
AuthMethod=LOGIN
mailhub=smtp.gmail.com:587
Alles andere bleibt wie bisher in dieser Datei. Wenn es immer noch nicht funktioniert, bitte die Ausgabe wie oben und zusätzlich die Datei ssmtp.conf (ohne Benutzername und Passwort).
Hier die dateien und Ausgaben, dinge wie die mailadresse passwort hab ich mit * ersetzt
revaliases:
root:j***k@gmail.com:smtp.gmail.com:587
pi:j***k@gmail.com:smtp.gmail.com:587
smtp:
root=postmaster
mailhub=smtp.gmail.com:587
hostname=raspberrypi
FromLineOverride=YES
AuthUser=j***k@gmail.com
AuthPass=***
FromLineOverride=YES
UseTLS=Yes
UseSTARTTLS=Yes
AuthMethod=LOGIN
mailhub=smtp.gmail.com:587
ls -l /etc/alternatives | grep mail
lrwxrwxrwx 1 root root 26 Feb 13 15:33 dotlock -> /usr/bin/dotlock.mailutils
lrwxrwxrwx 1 root root 42 Feb 13 15:33 dotlock.1.gz -> /usr/share/man/man1/dotlock.mailutils.1.gz
lrwxrwxrwx 1 root root 22 Feb 13 15:33 frm -> /usr/bin/frm.mailutils
lrwxrwxrwx 1 root root 38 Feb 13 15:33 frm.1.gz -> /usr/share/man/man1/frm.mailutils.1.gz
lrwxrwxrwx 1 root root 23 Feb 13 15:33 from -> /usr/bin/from.mailutils
lrwxrwxrwx 1 root root 39 Feb 13 15:33 from.1.gz -> /usr/share/man/man1/from.mailutils.1.gz
lrwxrwxrwx 1 root root 18 Feb 14 11:28 mail -> /usr/bin/bsd-mailx
lrwxrwxrwx 1 root root 18 Feb 14 11:28 Mail -> /usr/bin/bsd-mailx
lrwxrwxrwx 1 root root 34 Feb 14 11:28 mail.1.gz -> /usr/share/man/man1/bsd-mailx.1.gz
lrwxrwxrwx 1 root root 34 Feb 14 11:28 Mail.1.gz -> /usr/share/man/man1/bsd-mailx.1.gz
lrwxrwxrwx 1 root root 18 Feb 14 11:28 mailx -> /usr/bin/bsd-mailx
lrwxrwxrwx 1 root root 34 Feb 14 11:28 mailx.1.gz -> /usr/share/man/man1/bsd-mailx.1.gz
lrwxrwxrwx 1 root root 27 Feb 13 15:33 messages -> /usr/bin/messages.mailutils
lrwxrwxrwx 1 root root 43 Feb 13 15:33 messages.1.gz -> /usr/share/man/man1/messages.mailutils.1.gz
lrwxrwxrwx 1 root root 27 Feb 13 15:33 movemail -> /usr/bin/movemail.mailutils
lrwxrwxrwx 1 root root 43 Feb 13 15:33 movemail.1.gz -> /usr/share/man/man1/movemail.mailutils.1.gz
lrwxrwxrwx 1 root root 26 Feb 13 15:33 readmsg -> /usr/bin/readmsg.mailutils
lrwxrwxrwx 1 root root 42 Feb 13 15:33 readmsg.1.gz -> /usr/share/man/man1/readmsg.mailutils.1.gz
echo "Test" | mail -vs "das ist ein Test" j***k@gmail.com
[<-] 220 smtp.gmail.com ESMTP o13sm26145392wrs.45 - gsmtp
[->] EHLO raspberrypi
[<-] 250 SMTPUTF8
[->] STARTTLS
[<-] 220 2.0.0 Ready to start TLS
[->] EHLO raspberrypi
[<-]
send-mail: (raspberrypi)
Can't send mail: sendmail process failed with error code 1
Ich habe hier mein ssmtp auch mal auf ein Google-Konto umkonfiguriert. Ich bekomme exakt dasselbe Ergebnis wie Du. Ich fand noch, dass hostname auf localhost gesetzt werden muss, das hat bei mir aber auch nichts gebracht. Über einen anderen Provider funktioniert es hier. Ich komme nicht mehr weiter, das Logging ist auch nicht besonders aussagekräftig.
oke dann nehme ich mal eine gmx oder so. Danke für deine ausführliche hilfe. Ich hätte da nurnoch eine frage:
Wie bekomme ich es hin das es meine meine ausführbare datei (ip.sh) jedes mal dann ausführt wenn der rpi sich mit einem Netzwerk LAN/WLAN verbindet ?
Das ist nicht ganz trivial. In /var/log/syslog findest Du Meldungen mit
DHCPACK
Diese Meldung kommt immer, wenn sich das Gerät per DHCP eine IP-Adresse geholt hat oder diese bestätigt hat.
In /var/log/messages findest Du Meldungen mit
associated
Die kommt immer, wenn sich das Gerät mit einem WLAN verbunden hat.
Du könntest jetzt das Programm swatchd verwenden, um eines dieser Logs zu beobachten. Wenn einer der Strings im Log auftaucht, wird das Script getriggert.
Ggf. sind auch noch andere Log-Einträge charakteristisch. Da müsstest Du einfach mal die Logs durchforsten.
Ich würde dir einen DynDNS Anbieter empfehlen. Da bekommst du einen DNS Eintrag der automatisch immer auf deine jeweilige IP Adresse aktualisiert wird. Im Remote desktop Viewer trägst du dann nur die Adresse des DynDNS ein und fertig.
Ich glaube nämlich kaum dass du einen funktionierenden Mailserver betreibst. Ansonsten werden die Mails die mit dem "mail" Command versendet werden nicht ankommen.
Warum nutzt du keinen Dynamischen DNS Service wie z.b. no-ip?
mail -s "RasPI IP address" -- <some email> < $(ip -f inet -j address dev <ifname>)
Setze bei ifname den Name des Interface ein und bei <some mail> die MAiladresse an die geschickt werden soll.
Vorraussetzung: System (insbesondere mail) ist korrekt eingerichtet.
Format ist JSON, sodaß Du es auf Empfängerseite leichter maschinell verarbeiten kannst.
Das ist dann aber die lokale Interface-Adresse des Pi, nicht die externe Adresse.
Ich habe ein Problem beim einrichten von Mail (alle angaben mehrfach überprüft):
mail: Adresse „Mail”” kann nicht verarbeitet werden (beim Expandieren von „Mail””): Baschädigte E-Mail-Adresse.
Was mache ich dagegen und wo liegt der fehler ?
Danke schonmal ;-)