Ergebnis 1 bis 6 von 6
  1. #1
    Golden Noble
    Themenstarter
    Avatar von Bananenbieger
    Registriert
    08.2005
    Ort
    In der Cloud
    Beiträge
    22.722

    PHP-Scripts: Mail2APNS via Prowl oder "Push-Mail für Schotten - Teil II"

    Nachdem schon eine Lösung existiert, mit der mal sich via BeeJiveIM und Jabber über eintreffende Mails benachrichtigen lassen kann, werden wir heute mal das ganze mit dem gerade erschienen Prowl machen.


    Benötigt werden: Prowl, PEAR Mail_Mime, ProwlPHP und natürlich ein Server, welcher a) PHP-CLI hat und b) Mails an ein Script weitergeben kann (ergo auch einen Mailserver).

    ProwlPHP gibt es hier: http://github.com/Fenric/ProwlPHP/tree/master
    Mail_Mime lässt sich über PEAR installieren bzw. hier downloaden: http://pear.php.net/package/Mail_Mime

    Einfach folgende zwei Scripts auf den Server in ein leeres Verzeichnis packen (z.B. /srv/mail2apns), ProwlPHP.php ins gleiche Verzeichnis wie die beiden Scripts legen und Mail_Mime ins Unterverzeichnis Mail kopieren (z.B. /srv/mail2apns/Mail).

    Danach die Konfigurationsvariablen in mail2apns.php setzen. Beispielhaft habe ich mal ein paar Daten eingetragen.

    mail2apns.php (an dieses Script die Mails pipen):
    Code:
    #!/usr/bin/php
    <?php
    // Mail2APNS Gateway for Prowl - Version 0.9
    //   Copyright (C) 2009 Bananenbieger. No Rights Reserved.
    // 
    // MAIL2APNS.PHP - Process incoming mail
    //
    //
    // Configuration
    //
    $prowl_apikey="Hier den API-Key eintragen - API-Keys lassen sich auf der Prowl-Website erzeugen";
    $prowl_appname="Mail"; // App-Name displayed in Prowl
    $prowl_path="/srv/apns"; // Path, where the prowl.pl resides
    //
    // Do not change anything below this.
    
    
    
    
    include("Mail/mimeDecode.php");
    
    // read eMail from stdin
    $fd = fopen("php://stdin", "r");
    $email = "";
    while (!feof($fd)) {
        $email .= fread($fd, 1024);
    }
    fclose($fd);
    
    $params['include_bodies'] = true;
    $params['decode_bodies'] = true;
    $params['decode_headers'] = true;
    $params['input'] = $email;
    
    $structure = Mail_mimeDecode::decode($params);
    /*echo "\nTo: ";
    echo $structure->headers['to'];
    echo "\nSubject: ";
    echo $structure->headers['subject'];
    echo "\nBody: ";
    echo $structure->parts[0]->body;*/
    
    $from_raw=$structure->headers['from'];
    $from=trim(substr($from_raw,0,strpos($from_raw,"<")-1));
    $prowl_event="Neue eMail empfangen";
    $message="\nVon: ". $from. "\nBetreff: ".$structure->headers['subject']." \n\n". substr($structure->parts[0]->body,0,160)."...";
    $to=$structure->headers['to'];
    
    include("sendmessage_apns_prowl.php");
    
    ?>
    sendmessage_apns_prowl:
    Code:
    <?
    include('ProwlPHP.php');
    $prowl = new Prowl($prowl_apikey);
    $prowl->push(array(
                    'application'=>$prowl_appname,
                    'event'=>$prowl_event,
                    'description'=>$message,
                    'priority'=>0
                ));
    ?>
    Wenn alles richtig gemacht wurde, bekommt Ihr nun über eintreffende Mails eine APN. Im

    Mit einer leichten Änderung kann dieses Script auch für andere Dinge verwendet werden

    Und so sieht es aus, wenn es fertig ist:

    Geändert von Nathea (11.07.2009 um 12:22 Uhr)
    Vorsicht! Dieser Beitrag kann Spuren von Ironie oder Sarkasmus enthalten.
    Ohne Konservierungsstoffe (lt. Gesetz). Ohne Farbstoffe. Ohne geschmacksverstärkende Zusatzstoffe.
    Deckt 2% des Richtwertes des täglichen Apfeltalkbedarfs basierend auf einem Karmalevel von 200 Pt.

  2. #2
    Erdapfel
    Registriert
    07.2009
    Beiträge
    1
    Vielen Dank für dieses Script!
    Mir ist aber aufgefallen, dass die ersten 160 Zeichen des Mailinhaltes nicht mitgeschickt werden(sieht man auch auf deinen Screenshots). Ich habe dann probeweise mal das "->parts[0]" aus Zeile 46 gelöscht, dann geht es bei mir.

  3. #3
    Gloster
    Registriert
    04.2008
    Beiträge
    62
    Haha.. klasse Idee..

    Wenn ich nicht schon MobileMe hätte, würde ich es mal ausprobieren...
    iPhone Case von www.iSuit.de

  4. #4
    Golden Noble
    Themenstarter
    Avatar von Bananenbieger
    Registriert
    08.2005
    Ort
    In der Cloud
    Beiträge
    22.722
    Du kannst ja alles mögliche damit machen. Ist ja nicht auf Mails limitiert.
    Vorsicht! Dieser Beitrag kann Spuren von Ironie oder Sarkasmus enthalten.
    Ohne Konservierungsstoffe (lt. Gesetz). Ohne Farbstoffe. Ohne geschmacksverstärkende Zusatzstoffe.
    Deckt 2% des Richtwertes des täglichen Apfeltalkbedarfs basierend auf einem Karmalevel von 200 Pt.

  5. #5
    Carola Avatar von AndyH
    Registriert
    01.2009
    Beiträge
    113
    Ich hab das Script mal als Inspiration genommen und mir einen Push-Service für Twitter gebastelt.
    Zusätzlich zu ProwlPHP braucht man noch twitter-php .
    Einfach mit beliebigem Zeitintervall in die crontab und das Script pusht beim Aufruf den neuesten neuen Tweet an Prowl.
    Könnte man natürlich noch verfeinern (alle neuen Tweets, oder die Anzahl der neuen Tweets, oder ... ), aber mir reichts so.
    Code:
    #!/usr/bin/php
    <?php
    //
    // Twitter2Prowl - V0.1
    //
    // 
    $tuser = 'Twitter Username';
    $tpass = 'Twitter Passwort';
    $apikey = 'Prowl API-Key';
    
    require_once('ProwlPHP.php');
    require_once('twitter.class.php');
    
    $twitter = new Twitter($tuser, $tpass);
    
    $withFriends = True;
    $channel = $twitter->load($withFriends);
    $status = $channel->status[0];
    if (!file_exists('last.tmp')) {
        $handle = fopen('last.tmp', 'w');
        fclose($handle);
    }
    $handle = fopen('last.tmp', 'r');
    $last = fgets($handle, 140);
    fclose($handle);
    if (md5($status->text) != $last) {
        $prowl = new Prowl($apikey);
        $prowl->push(array(
                'application'=>'Twitter',
                'event'=>$status->user->name,
                'description'=>$status->text,
                'priority'=>0
            ));
    }
    $handle = fopen('last.tmp', 'w');
    fputs($handle, md5($status->text));
    fclose($handle);
    
    ?>

  6. #6
    Golden Noble
    Themenstarter
    Avatar von Bananenbieger
    Registriert
    08.2005
    Ort
    In der Cloud
    Beiträge
    22.722
    Mittlerweile gibt es Notifications im AppStore. Als Basis für webbasierte Pushdienste ist das deutlich geeigneter als Prowl: Kann mehr und sieht besser aus.

    Edit: Notifications bietet übrigens direkt eine rudimentäre Twitter-Integration. Praktisch ist auch, dass man diverse Twitter-Apps direkt aus dem Push-Popup starten lassen kann.
    Geändert von Bananenbieger (11.10.2009 um 01:33 Uhr)
    Vorsicht! Dieser Beitrag kann Spuren von Ironie oder Sarkasmus enthalten.
    Ohne Konservierungsstoffe (lt. Gesetz). Ohne Farbstoffe. Ohne geschmacksverstärkende Zusatzstoffe.
    Deckt 2% des Richtwertes des täglichen Apfeltalkbedarfs basierend auf einem Karmalevel von 200 Pt.

Ähnliche Themen

  1. GMX "push"-mail - imap idle auf iphone?! Geht das?
    Von tangohotel im Forum Mailprogramme
    Antworten: 5
    Letzter Beitrag: 02.08.2010, 20:42
  2. Antworten: 14
    Letzter Beitrag: 07.07.2009, 20:51
  3. "normaler" ordner für mail oder nur intelligent möglich?
    Von deadly-injured im Forum Mailprogramme
    Antworten: 2
    Letzter Beitrag: 02.03.2008, 19:53
  4. iPod nano mit "jbl spyro" oder "bose" oder oder oder?
    Von paulinschen im Forum iPod classic/nano/shuffle
    Antworten: 5
    Letzter Beitrag: 09.01.2007, 22:44

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •