E-Mail abfragen und weiterleiten

  • Hallo,


    ich möchte auf meinem Server verschiedene E-Mail Konten abfragen und dieses dann am iPhone anzeigen lassen.


    Das senden von Pushnachrichten habe ich schon hinbekommen nach dieser Anleitung:Prowl


    Ich kann also vom Server aus mit folgender Zeile eine Nachricht senden:
    ./prowl.sh "Text"
    Dort kann ich noch weitere Sachen anhängen.
    z.B.
    ./prowl.sh "Text1" "Text2" "Text3" usw.


    Ich stelle mir das so vor:
    Mein Server fragt jede Minute verschiedene Konten ab und wenn eine E-Mail auf Konto3 ist, dann soll der Server mir folgendes senden:
    ./prowl.sh "Neue E-Mail" "Konto3" "Betreff"




    Womit kann ich die E-Mail Konten abfragen und den Betreff z.B. als Parameter an Prowl übergeben?

    Vice President Logistics and Materials Handling of the first 40" TFT Sammelbestellung and Atmolight I + II + III

  • Hi,


    klassischerweise läuft sowas z.B. per folgenden Programmen :


    fetchmail => Abholen der Mail
    procmail => Verarbeiten der Mail
    exim/postfix => weiterleiten bzw. lokale Auslieferung der Mail
    dovecot => eigener IMAP/POP3 Server


    Dein Ansatz erfordert mindestens fetchmail + procmail


    http://www.google.com/search?q=prowl+procmail


    Wobei kann das eiPhone kein IMAP-Idle, was auch ein Push von neuen Mails von Hause aus macht.

  • So - habe jetzt getmail und prowl am laufen.


    Wenn ich jetzt eine Mail mit einem bestimmten Betreff bekomme, startet ein Script mit dem Namen prowl.sh und sendet mir einen vordefinierten Text an mein iPhone.


    Wie kann ich jetzt den Betreff an das Script übergeben?

    Vice President Logistics and Materials Handling of the first 40" TFT Sammelbestellung and Atmolight I + II + III

  • In der habe ich dies hier drin:

    Code
    :0
    * ^Subject:.*testbetreff
    | /home/daniel/prowl.sh "blah"


    und prowl sendet mir blah an mein iPhone


    Wie kann ich jetzt den Betreff "testbetreff" als Paramter/Variable übergeben?

    Vice President Logistics and Materials Handling of the first 40" TFT Sammelbestellung and Atmolight I + II + III

  • Super - das klappt schonmal sehr gut.


    Habe die Sache in per Cron am laufen und nun kommt das nächste Problem.


    Ich frage die ganze Sache so ab:


    Jetzt bekomme ich jede Minute eine Pushmitteilung, da die Mail ja immer da ist.
    Wie und wo kann ich das /dev/null einfügen, das er mit diese eine bestimmte Mail auch vom Mailserver löscht und nicht mehr abgefragt wird.
    Ich brauche die nicht mehr, die kann also sofort weg.
    Mir reicht es, wenn ich verschiede Mails und Betreffs abfrage und dort dann verschiedene Scripte starten kann.

    Vice President Logistics and Materials Handling of the first 40" TFT Sammelbestellung and Atmolight I + II + III

  • Momentan kann ich deinen Workflow (noch) nicht direkt nachvollziehen.
    Falls getmail verwendet wird muss ich passen.


    Mein "Mailserver" tut folgendes,
    1. per fetchmail die Mail vom Server holen und lokal zustellen und auf dem Server löschen (fetchall)
    2. beim lokaler Zustellung wird direkt in ~/.procmailrc nach geschaut wie die Mail zu handeln ist
    3. alle anderen Mail unter $HOME/.mail/INBOX ablegen, falls kein Muster aus procmailrc passt


    Sprich procmail ist erst der zweite Schritt, es wird immer jede Mail behandeln die reingereicht wird.
    Du solltest also schauen wie die Mails abgeholt werden, damit sie nicht doppelt geholt werden.


    zu 1.)
    fetchmail läuft hier direkt als daemon, ohne cron, und holt alle 15min neun Mails.
    /etc/fetchmailrc :

    Code
    set postmaster "accountX"
    set no bouncemail
    set properties ""
    set daemon 900
    set invisible
    set syslog
    
    
    poll mail.xxxxxxxx.de with proto POP3
           user XXXXXXXXXXXXX there with password XXXXXXXXXXXXX is accountX here warnings 3600 fetchall


    zu 2.)
    Ich mache per procmail eine Vorsortierung in ein paar Unterverzeichnisse.
    $home/.procmailrc

  • Wenn es das ist was er/du braucht/st dann in der "getmailrc" unter [options] ein "delete = true"


    So sieht meine aus :


    getmailrc


    Abholen passiert ueber folgendes Script , kann man gut mit der prowl.sh verschmelzen,
    dann kann da auch nix doppelt gesendet werden:
    get_mails.sh

    Bash
    #!/bin/sh
    
    
    for getfile in $( find /home -name getmailrc -print )
    do
    #echo $getfile
    /usr/bin/getmail --rcfile $getfile --all --verbose
    done
    exit 0



    Da gibt es noch mehr Erlaeuterungen:
    http://pyropus.ca/software/getmail/getmailrc-examples
    http://www.zeroathome.de/wordp…tfix-dovecot-und-getmail/

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!