Pop3 automatisch auf neue Emails prüfen!

alfa

Neuer User
Mitglied seit
3 Jan 2006
Beiträge
43
Punkte für Reaktionen
0
Punkte
0
Hallo, da die Fritzbox Linux hat sollte vieles möglich sein.

Die Fritzbox kann automatisch nach neue Firmware prüfen und Email per "mailer" senden, das funktioniert bei mir ok.

Also Email senden mit "mailer" ist kein Problem.

Jetzt meine Frage:

Wie kann ich mein Postfach POP3 auf neue Emails per Bash prüfen?

Mit PHP ist es einfach: Wie geht es per Basch?

PHP:
$mbox = @imap_open("{".$pophost."/pop3:110}INBOX","$popuser","$poppass");
$headers = imap_headers ($mbox);
if ($headers == false)
echo "";
else
echo "Emails vorhanden";
imap_close ($mbox);

Wie kann ich den PhP Code in Basch umsetzen?
Kennt jemand eine Lösung für Bash?
Habe schon überall gesucht, habe leider nichts gefunden:mad:
 
Zuletzt bearbeitet:
alfa schrieb:
Wie kann ich mein Postfach POP3 auf neue Emails per Bash prüfen?
Bash alleine kann das nicht: Die Shell stellt vor allem Kontrollstrukturen bereit, die eigentliche Arbeit machen andere Programme. Du solltest also vielleicht mal nach einem POP-Client in C suchen und den für die Box übersetzen.

Gruß,
Andreas
 
Hi.
Ich hab was gefunden: http://sourceforge.net/projects/libspopc/
Code:
/var/mod/root # ./poptest2 pop.web.de olistudent XXX
you've got 61 messages !
your pop server holds 4402594 bytes of data.
your biggest message is of 2840342 bytes.
your smallest message is of 1132 bytes.
the smallest message's signature is: 1404002212
/var/mod/root #
Du musst mir nur sagen, welche Ausgabe er wann machen soll. Dann versuch ich's zu ändern.
Und dann musst du dir noch überlegen wie du es auf die Box bekommst...

MfG Oliver
 
Hallo Oliver, zuerst vielen Dank für die Hilfe!!

Ich stelle mir das so vor:


Wenn eine Email vorhanden ist dann
echo 7,2 > /var/led

Wenn keine Email vorhanden ist dann
echo 7,1 > /var/led


Ich habe ein Telnet Zugriff und kann daher per Telnet das Script in die Box hollen.
 
Das ist kein Script, das ist ein Programm in C!
Ich werde mich mal versuchen...

Das Programm läuft übrigens nicht als Dämon, d.h. du bräuchtest noch einen mod mit crond.

MfG Oliver
 
wenn er ein skript mit & am ende startet und dort ein sleep 600 drin hat (endlosschleife), sollte es doch ohne crond auch gehen, oder?
Wenn die Anwendung läuft, schick mir bitte eine Nachricht - möchte das Ding auch probieren. Das könnte man dann auch gleich in die Seite von Traymessage einarbeiten.

Wird Zeit, dass AVM die Dinger mit LCD-Display ausliefert, dann sieht man, wie viele mails da sind *lol*
 
ich bin sehr gespannt!
 
So, bin fertig und gerade am Testen.
Ein kleines Problemchen hab ich noch:
Das Programm muss ja mit den Daten für den Mailaccount gestartet werden und steht dann auch so in der Prozessliste.
Beispiel: ./poptest pop.web.de olistudent passwort 1000

Ist das ein Problem, oder kann ich das irgendwie anders machen?

MfG Oliver
 
olistudent schrieb:
Das Programm muss ja mit den Daten für den Mailaccount gestartet werden und steht dann auch so in der Prozessliste.
Das gleiche passiert im Moment beim 'mailer', wenn man den Push-Service benutzt. Und das Passwort für den Mail-Account ist eh (fast) im Klartext auf der Box gespeichert. (Und übers Netz geht es auch unverschlüsselt; zumindest beim mailer; ich weiß nicht, ob dein poptest SSL kann.) Es ergibt also aus meiner Sicht kaum Sinn, jetzt beim poptest das Passwort weiter zu verschleiern.

kann ich das irgendwie anders machen?
Du könntest das Passwort von stdin oder aus einer Datei lesen; das macht das ganze auf einem System, wo alles mit Root-Rechten läuft, aber auch nicht sicherer.

Viele Grüße,
Andreas
 
Hallo, Oliver!!!

Es ist kein Problem wenn ich das Programm mit "Beispiel: ./poptest pop.web.de olistudent passwort 1000" starte!!!
Hauptsache das Programm prüft die Emails !
 
Ich denke wenn jemand die Prozessliste der Fritzbox auslesen kann ist es eh schon zu spät...
Würde das Ding auch gerne testen ;-)
 
jo is echt n cooles neues spielzeug;) stellste das dann hier rein?
 
Hier kommt die erste Testversion...
Es ist jetzt schon etwas spät, daher weiß ich nicht ob alles so klappt wie ich es gerne hätte.
Als erfahrener C-Programmierer hab ich noch ein Problem mit dem sleep-Intervall. Ich hab das jetzt fest auf 20 Minuten eingestellt.
Ich lese das Intervall mit strcpy aus argv[4] ein und rufe dann sleep((int)intervall) auf. Leider funktioniert das nicht.
Vielleicht hätte ich gleich mal googeln sollen: int atoi ( const char * string );

MfG Oliver
 
Zuletzt bearbeitet:
Ich bekomme beim Starten die Fehlermeldung "can't load library 'libgcc_s.so.1'"


Sonst glaube das es besser währe ohne den festen Sleep Interwall.

Dann könnte jeder das Programm sagen wir mit so eine art von Deamon starten und seine eigene Zeit einfach einbauen.

Z.B. in der /var/flash/debug.cfg ein start.sh einbauen.


start.sh:

#!/bin/sh
#
while [ 0 -eq 0 ]; do
./checkmails server [email protected] password
sleep 900
done
exit 0


Jetzt würde das Prog. jede 900 Sec. auf die Email prüfen.
 
Das ist sehr gut. Ichhab es selber noch nicht eingespielt. Aber danke das ihr euch mühe macht. wenn das funktioniert, kann dann jemand vll einen Screen davon machen und das mal Zeigen wie das danna ussieht. Den soetwas wäre ein super Tool. Danke
 
Es war ja nicht angedacht, dass es ein festes sleep-Intervall gibt. Das hab ich nur so eingestellt, weil ich nicht wußte wie ich es anders mache. Ich werd den Fehler korrigieren und den mit der libgcc_s.so.1 gleich mit.

Edit:
Code:
/var/tmp # ./checkmail
Usage: ./checkmail servername username password intervall(in seconds)
/var/tmp # ./checkmail pop.web.de olistudent passwort 1500
/var/tmp #

Eigentlich könnte ich das Intervall ja auch in Minuten umrechnen. :idea:
Das mach ich dann mit dem nächsten Upload.
Die Mails werden gecheckt und abhängig vom Status der LED und der Anzahl der Mails im Postfach (mails>0) wird die LED geschaltet.
Es wird in den syslog geloggt. Die Logging-Ausgaben werde ich nach erfolgreichen Tests eventuell etwas reduzieren.

MfG Oliver
 

Anhänge

  • checkmail.tar.gz
    7.8 KB · Aufrufe: 311
Zuletzt bearbeitet:
olistudent schrieb:
Es war ja nicht angedacht, dass es ein festes sleep-Intervall gibt. Das hab ich nur so eingestellt, weil ich nicht wußte wie ich es anders mache. Ich werd den Fehler korrigieren und den mit der libgcc_s.so.1 gleich mit.

Edit:
Code:
/var/tmp # ./checkmail
Usage: ./checkmail servername username password intervall(in seconds)
/var/tmp # ./checkmail pop.web.de olistudent passwort 1500
/var/tmp #

Eigentlich könnte ich das Intervall ja auch in Minuten umrechnen. :idea:
Das mach ich dann mit dem nächsten Upload.
Die Mails werden gecheckt und abhängig vom Status der LED und der Anzahl der Mails im Postfach (mails>0) wird die LED geschaltet.
Es wird in den syslog geloggt. Die Logging-Ausgaben werde ich nach erfolgreichen Tests eventuell etwas reduzieren.

MfG Oliver

kann man den anschliesend, das anze im webinterface einstellen, und wie löscht man es wieder? Kann jemand einen Screen davon machen?

Danke
 
Hallo Oliver!

Ich kann es kaum glauben, genau das war mein Traum!!!!
Super, einfach SUPER!!!!
Jetzt sehe ich sobald eine Email da ist ohne den PC einschalten zu müssen.

Es funktioniert und es ist perfekt.
Vielen, vielen Dank für das SUPER Programm.

Ich würde sehr froh wenn ich so ein Programm selbst programieren könnte.
 
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.