imap_headerinfo: "richtige" Empfängeradresse finden???

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • imap_headerinfo: "richtige" Empfängeradresse finden???

    Hallo,

    Ich habe ein POP3-Postfach in dem verschiedene eMail-Adressen zusammenlaufen. Dieses Postfach wird regelmäßig von einem PHP-Skript "besucht", welches die eMails ausliest (konkret: Betreff der eMails, Absender der eMails und an wen welche eMail-Adresse die eMail gerichtet wurde).
    Dabei werden alle Daten in einer Datenbank gespeichert. Das Skript funktioniert eigentlich ganz gut.

    Problem habe ich nur bei den "Empfänger"-Adressen. Das Skript soll auch erfassen, an wen die eMail gerichtet war (da ja verschiedene eMail-Adressen in diesem Postfach landen).

    Sendet jetzt jemand eine eMail an dieses Postfach (bzw. an eine Adresse, die in diesem Postfach landet) und es stehen im "Empfänger"-Teil des Headers noch mehrere Empfänger, gibts ein Problem. Das Skript speichert nur den ersten Empfänger der im Header steht, und das muss nicht gleich der eMail-Adresse sein, die auch im Postfach liegt.

    Beispiel:

    Absender test@test.de sendet eine eMail an Empfänger hallo@hallo.de und server@server.de
    server@server.de landet im Postfach web01p1 (hallo@hallo.de irgendwo anders, gehört mir nicht)

    Das Skript speichert nun in der Datenbank
    Absender: test@test.de
    Empfänger: hallo@hallo.de

    Und das soll so nicht sein. In der Datenbank soll als Empfänger "meine" eMail-Adresse stehen.

    Ich hab mir dafür mal den Header angeschaut. Unter "Received: ..." steht irgendwo der Eintrag "for

    Weiss da jemand Rat???

    Das Skript, wie es bisher den Empfänger ausliest sieht wie folgt aus:

    PHP-Code:
    $header imap_headerinfo($mbox$i);

    $toaddress $header->to[0]->host;
    $toname $header->to[0]->mailbox;
    $empfaenger$toname."@".$toaddress
    Tausend dank schon mal im Voraus.

  • #2
    $header->to ist doch ein Array, print_r oder foreach wird dir bestimmt dabei helfen

    Kommentar


    • #3
      Hi,

      vielen herzlichen Dank für die Antwort!!

      ICh hab's nun doch anders hingebogen: Mittels imap_fetchheader() bekomme ich den gesamten Nachrichtenkopf und "extrahiere" dort den eMail-Empfänger entweder aus dem X-Envelope-To: - Teil oder aus dem Received-Abschnitt.

      sieht dann z.B. so aus:
      PHP-Code:
        $allheader imap_fetchheader($mbox$iFT_INTERNAL);
       
      preg_match_all("/(X-Envelope-To: <([_a-zA-Z0-9-]+(?:\\.?[_a-zA-Z0-9-])*@(?:[a-zA-Z0-9-]+\\.)+(?:[a-zA-Z]{2,4}))+>)/"$allheader$empf); 

      Trotzdem nochmal tausend dank!!

      Kommentar

      Lädt...
      X