Bastian: Mit PHP IMAP-Mail weiterleiten

Hallo

Ich möchte mit den IMAP-Funktionen von PHP auf ein Mailkonto zugreifen und  dortige Nachrichten weiterleiten.

Die Verbindung zur Mailbox und das Auslesen der Mails funktioniert. Nur frage ich mich, ob es eine einfache Möglichkeit gibt, eine komplette Nachricht an eine bestimmte Mailadresse weiterzuleiten, ohne den Header komplett neu zu erstellen.

Zur Zeit habe ich folgenden Code:

  
$box = imap_open("{localhost:143/novalidate-cert}INBOX", "mail@domain.ch", "password");  
		  
foreach (imap_search($box, "ALL") as $nr)  
{  
    $header = imap_headerinfo($box, $nr);  
    $to = $header->toaddress;  
  
    // Hier wird die neue Mailadresse aus der Datenbank ausgelesen  
			  
    if (imap_mail($benutzer->email, $header->subject, imap_body($box, $nr), imap_fetchheader($box, $nr)))  
    {  
        imap_delete($box, $nr);  
    }  
}  
		  
imap_expunge($box);  
imap_close($box);  

Dieses Script wird also regelmässig aufgerufen, um die Nachrichten weiterzuleiten.

Problem 1:
Den Header, den ich mit imap_fetchheader erzeuge, enthält auch den Adressaten und den Betreff. Beim Empfänger kommt die Nachricht doppelt an, einmal mit doppeltem Betreff und zwei Empfangsadressen.

Problem 2:
Die Nachrichten werden nach der Weiterleitung nicht gelöscht. Sie werden bei jedem Scriptaufruf von Neuem versendet.

Kann mir irgend jemand Tipps geben, wie ich die Probleme beheben kann? Besten Dank!

  1. Moin!

    Kann mir irgend jemand Tipps geben, wie ich die Probleme beheben kann? Besten Dank!

    Du willst unerwünschte Ausgaben (Headerzeilen) aus imap_fetchheader($box, $nr) ausfiltern.

    Nimm die Ausgaben und filtere alle Zeilen raus, die Dir nicht gefallen. Ich würde das mit einem Array machen den ich mit explode erzeuge, dann Element für Element untersuche und dann aus den nicht unerwünschten mit implode das erzeugen was ich bräuchte - wenn ich denn das Problem hätte.

    MFFG (Mit freundlich- friedfertigem Grinsen)

    fastix