Anhänge extrahieren, wenn Mails an PHP weitergeleitet werden

8

Ich weiß, mit meinem cPanel-Hosting kann ich einen E-Mail-Posteingang an ein Skript leiten, aber was ich tun möchte, ist:

  1. Senden Sie an [email protected]
  2. Pipe zu mail.php
  3. mail.php liest den Betreff und eine .txt Anlage
  4. Der Inhalt des Betreffs und der Anhang von .txt werden in der Datenbank
  5. gespeichert

Gibt es eine Möglichkeit, dies mit einfachem PHP zu tun?

    
tarnfeld 26.10.2009, 10:40
quelle

2 Antworten

5

Sie werden wahrscheinlich Folgendes tun müssen:

  1. Schreiben Sie ein PHP-Skript, das am CLI ausführbar ist (indem Sie am Anfang des Skripts eine #! -Deklaration hinzufügen, die auf die PHP-Binärdatei verweist, und anschließend die ausführbaren Berechtigungen festlegen).

  2. Lassen Sie dieses Skript die rohe E-Mail von php: // stdin lesen (file_get_contents ist am einfachsten)

  3. Bekommen Sie dieses Skript, um die Post in Teile zu entschlüsseln, mit etwas wie PEAR :: Mail :: Mime :: Decode oder ich denke, es gibt eine handliche Zend Framework-Komponente).

  4. Lesen Sie Anhang und Betreff aus der entschlüsselten Nachricht und speichern Sie sie wie gewohnt

  5. Beenden Sie (0) am Ende, um dem CLI mitzuteilen, dass es sich um einen sauberen Exit handelt - jeder andere exit () - Status könnte eine geblockte E-Mail verursachen.

Ciaran McNulty 26.10.2009, 11:29
quelle
5

Es gibt eine PHP-Bibliothek namens php-mime-mail-parser , die wiederum vom < a href="http://pecl.php.net/package/mailparse"> PECL-Mail-Parser-Bibliothek . Wenn Sie diese installiert haben, ist der Code, um zu erreichen, was Sie wollen, ziemlich einfach:

%Vor%

Sie können die Mail in das Skript pipen, wenn sie von STDIN liest. Sie können auch aus einer Datei lesen, indem Sie setStream in setPath ändern. Weitere Informationen finden Sie in der Dokumentation der Bibliothek .

    
akirk 03.06.2015 19:24
quelle

Tags und Links