Weiterleitung von E-Mails mit einem PHP-Skript
Haben wir einen cron ' ed PHP-Skript, das überprüft, Posteingang alle zehn Minuten. Der Zweck dieses Skripts ist zu behandeln, "AUFHÖREN, aufhören" - Funktionalität für unsere SMS-Benachrichtigung service, den wir bieten. Wenn das script findet alle E-Mails mit dem Wort "STOP" am Anfang der E-Mail, wir entfernen Sie den Benutzer aus der Meldung unserer Datenbank.
Zur Deckung unserer Basen, wir möchten keine E-Mails, die nicht den genannten Kriterien entsprechen, um weitergeleitet werden zu einem anderen E-Mail-Adresse (das ist ein alias), die mehreren Personen empfangen und überprüfen Sie stündlich. Allerdings sind wir in Probleme laufen, die Weiterleitung der E-Mails von diesem PHP-Skript.
Wissen, wie die mail
- Funktion von PHP funktioniert, ist es ziemlich offensichtlich, wir müssen wieder das Header vor dem Versand. Jedoch, MIME-multipart-E-Mails immer zugestellt bekommen, wie ein entstellen des Textes, einschließlich der Hindernisse und beliebige base64-codierte Anhänge.
Kennt jemand einen einfachen Weg, um eine E-Mail-Nachricht und leitet Sie auf die richtige Verwendung eines PHP-Skript?
Verwenden wir die native IMAP-Funktionen in PHP 5. Wir haben auch Zugang zu den PEAR-Mail-Modul. Allerdings haben wir nicht in der Lage waren irgendwelche Beispiele oder Personen, die vergleichbare Aufgaben durch Google-Suche.
- Nicht noch eine gute Lösung für mein problem. Hinzufügen eines +50 bounty an eine person, die proof-of-concept-code oder geben Sie die gute Richtung in Richtung auf die Schaffung von code, kann weiterleiten von E-Mails via PHP unter Beibehaltung MIME-Begrenzungen und Anlagen.
- Welchen MTA benutzt du (Postfix, sendmail,etc...)?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Codiert ich diese Methode schon vor langer Zeit zum analysieren einer E-Mail-Nachricht an die entsprechenden Teile bei der Verwendung von IMAP:
Ich habe nie getestet es tief, und ich bin sicher, es hat einige bugs, aber es könnte ein Anfang... Nach der Anpassung dieser code, den Sie sollten in der Lage sein zu verwenden, die
$result
Indizes (text
,html
,attachments
) mit Ihrer Zusendung Skript (mit SwiftMailer zum Beispiel), ohne sich Gedanken über das halten der MIME Grenzen intakt.Ist dies nicht wirklich eine Antwort, aber eine Anregung für eine Alternative Methode. Ich denke, es wäre viel einfacher und weniger anfällig für Fehler (d.h. keine Lieferung Fragen), wenn Sie einfach verschoben werden die Nachrichten in andere Ordner innerhalb der bestehenden account. I. e., der cron läuft und verarbeitet alle E-Mails im POSTEINGANG. Wenn wenn feststellt, STOPPEN, tut es, die erforderlichen arbeiten und dann (über IMAP-Funktionen) zieht einfach die E-Mail in einen Unterordner namens "Bearbeitet" oder ähnliches. Ansonsten, verschiebt es die E-Mail in einen Unterordner mit dem Namen "Diese Check" oder ähnlich. Dann brauchen Sie nicht zu befürchten, Weiterleitung, oder weitere Lieferungen oder ein zweites Konto, und jeder kann überwachen verarbeitet, unverarbeitet, und E-mails direkt.
Haben Sie getroffen, einen Blick auf die Funktionalität mit Swiftmailer Bibliothek ?
http://swiftmailer.org/
Habe ich dieses in der Vergangenheit und haben ausgesprochen gutes Ergebnis, auch wenn nicht in einer Anwendung, wie Sie Sie beschrieben haben, ich habe jedoch verwendet es für PHP-basierte mailing-Listen", wo ich überprüft, für das Thema und an die richtige Gruppe.
Aber ich habe eine neue Nachricht, nicht nach vorne. Hoffe, das hilft.
Dies geschah zu mir vor. Um es zu beheben musste ich ein imap_base64() auf den Körper der E-Mail nach, die ich verwendet imap_fetchbody().
Verwendung eines IO-handler zu erfassen, den Inhalt der email als string, split aus dem Header und dann die php-mail () " - Funktion zu senden.
Anders, wenn Sie wirklich wollen, dies zu tun mit php-imap,
die php-imap-extension ist libc-client ist Teil der pine-E-Mail-client-software
Abbildung, die für die manuelle Schritte erforderlich, um es zu tun, mit Pinien und betrachten Sie dann die c-client-Anrufe Kiefer macht, es zu tun. geben Sie die erforderlichen Schritte in php.
die c-client-Dokumentation ist ziemlich minimal, geht auf die Kiefer-Quelle ist der beste Weg, um nutzungsdetails.
Ich glaube, Sie können finden, dass der Autor der php-Erweiterung "für Ihre Bequemlichkeit oder Schutz" weggelassen oder verändert Zeug, das blockiert diesen Weg.