eMail unverändert oder als Attachment weiterleiten

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

  • eMail unverändert oder als Attachment weiterleiten

    Hallo,

    ich möchte eingegangene eMails (mit Attachments!!!) einfach an eine andere eMail-Adresse weiterleiten. Mein erster Versuch, einfach die org. eMail mit dem org. Header an eine andere Adresse zu schicken, schlug leider fehl, da die eMail dann auch ein erneutes Mal an die unsprüngliche Adresse (die noch im Header steht) geschicht wurde.

    Eine neu Überlegung ist nun, die eMail als Attachment weiterzuleiten. Die Frage ist nun, wie muss der neue Header aussehen, damit ich den Mailbody einfach in die mail()-Funktion einbinden kann?

    Ich habe schon diverse Varianten erfolglos getestet, dass Attachment wird vom eMail-Programm einfach nicht erkannt und nur als plain text dargestellt (ist blöd, da die org. eMail BASE64-kodierte Anhänge enthält. Ich bekomme es einfach nicht hin, einen korrekten Multipart-Header zu erstellen.

    Mein erfolgloser Versuch:

    $mbox = imap_open ("{SERVER}INBOX", "ZUGANG", "PW");

    $header=imap_header($mbox,1);
    $body=imap_body($mbox,1);

    $boundary = strtoupper(md5(uniqid(time())));
    $header = "From: mail@domain.de\r\n";
    $header .= "Content-Type: multipart/mixed;\r\n boundary=$boundary\r\n";

    mail("meine@mail.de","Fwd: "."$header->Subject","$body","$header");

    Kann mir jemand weiterhelfen, wie der Header korrekt aufgebaut werden muss??? Oder vielleicht kamm mir jemand helfen, wie ich eine eMail komplett weiterleiten kann?? Bin am verzweifeln!!

    Vielen Dank!

    Gruß Flo

  • #2
    Hallo,
    ich versteh nicht genau was du möchtest aber ich benutze
    immer diesen Header z.b. für eMails mit Dateianhang (Multipart)

    PHP-Code:
    $Trenner md5(uniqid(time()));

    $Header "From: der Absender";
    $Header .= "\n";
    $Header .= "MIME-Version: 1.0";
    $Header .= "\n";
    $Header .= "Content-Type:multipart/mixed;boundary=$Trenner";
    $Header .= "\n\n";
    $Header .= "This is a multi-part message in MIME format";
    $Header .= "\n";
    $Header .= "--$Trenner";
    $Header .= "\n";
    $Header .= "Content-Type: text/plain";
    $Header .= "\n";
    $Header .= "Content-Transfer-Encoding: 8bit";
    $Header .= "\n\n";
    $Header .= "Sie haben folgende Nachricht erhalten: \n\n"
    wenn es dir darum geht eine eMail an 2 Adressen zuschicken dan
    setz einfach ein komma zwischen den beiden Adressen.

    Tschööööööööö
    Ich hoffe es hilft

    Kommentar


    • #3
      Hi Webcool!

      Erst einmal vielen Dank für dien Antwort. Nochmal mein Problem. Ich möchte einfach eine eingegangene eMail an eine andere Adresse weiterleiten.

      Ich habe jetzt mal deinen Header verwendet und folgende zusammengebastelt:


      $mbox = imap_open($mailbox,$username,$password);
      $ursprungs-mail = imap_body($mbox,$i,FT_INTERNAL);

      $Trenner = md5(uniqid(time()));

      $Header = "From: mail@domain.de";
      $Header .= "\n";
      $Header .= "MIME-Version: 1.0";
      $Header .= "\n";
      $Header .= "Content-Type:multipart/mixed;boundary=$Trenner";
      $Header .= "\n\n";
      $Header .= "This is a multi-part message in MIME format";
      $Header .= "\n";
      $Header .= "--$Trenner";
      $Header .= "\n";
      $Header .= "Content-Type: text/plain";
      $Header .= "\n";
      $Header .= "Content-Transfer-Encoding: 8bit";
      $Header .= "\n\n";
      $Header .= "Sie haben folgende Nachricht erhalten: \n\n";

      mail("mail@domain.de","Betreff",$ursprungs-mail,$Header);


      Die Mail wird auch verschickt, aber die Originalmail wird nicht richtig "erkannt". Enthaltene Attachments werden als Text dargestellt.



      Die Nachricht sieht dann so aus, wenn sie beim eMail-Client ankommt (mit den Zeilenumbrüchen zwischen jeder Zeile):


      Sie haben folgende Nachricht erhalten:



      This is a multi-part message in MIME format.

      --------------050502050608000000080105

      Content-Type: text/plain; charset=ISO-8859-15; format=flowed

      Content-Transfer-Encoding: 7bit



      Blablabla......



      --------------050502050608000000080105

      Content-Type: image/jpeg;

      name="image.jpg"

      Content-Transfer-Encoding: base64

      Content-Disposition: inline;

      filename="image.jpg"



      /9j/4AAQSkZJRgABAQEASABIAAD/2wBDABALCwwMDBENDREYEA4QGBwVEREVHCEZGRkZGSEg

      GRwcHBwZICAlJygnJSAwMDQ0MDBAQEBAQEBAQEBAQEBAQED/2wBDAREQEBITEhYSEhYWEhUS

      FhwWFxcWHCgcHB0cHCgxJSAgICAlMSwvKCgoLyw2NjExNjZAQD9AQEBAQEBAQEBAQED/wAAR

      (....)

      Kommentar


      • #4
        Ups sorry bin etwas müde versuch es mal hiermit

        PHP-Code:

                $Mailbetreff 
        "Kontakt: ";

                
        $Mailbetreff .= $_REQUEST['Betreff'];
         

                
        $Trenner md5(uniqid(time()));

         

                
        $Header "From: ".$_REQUEST['Email'];

                
        $Header .= "\n";

                
        $Header .= "MIME-Version: 1.0";

                
        $Header .= "\n";

                
        $Header .= "Content-Type: multipart/mixed; boundary=$Trenner";

                
        $Header .= "\n\n";

                
        $Header .= "This is a multi-part message in MIME format";

                
        $Header .= "\n";

                
        $Header .= "--$Trenner";

                
        $Header .= "\n";

                
        $Header .= "Content-Type: text/plain";

                
        $Header .= "\n";

                
        $Header .= "Content-Transfer-Encoding: 8bit";

                
        $Header .= "\n\n";

                
        $Header .= "Sie haben folgende Nachricht erhalten: \n\n";

         

                while(list(
        $Formularfeld$Wert) = each($_REQUEST))

                {

                    if(
        $Formularfeld != "Send" && $Formularfeld != "Anhang")

                    {

                        
        $Header .= $Formularfeld.": ".$Wert."\n";

                    }

                }

         

                
        $Header .= "\nDatum/Zeit: ";

                
        $Header .= date("d.m.Y H:i:s");

                
        $Header .= "\n";

                
        $Header .= "--$Trenner";

                
        $Header .= "\n";

                
        $Header .= "Content-Type: ";

                
        $Header .= $_FILES['Anhang']['type'];

                
        $Header .= "; name=";

                
        $Header .= $_FILES['Anhang']['name'];

                
        $Header .= "\n";

                
        $Header .= "Content-Transfer-Encoding: base64";

                
        $Header .= "\n";

                
        $Header .= "Content-Disposition: attachment; filename=";

                
        $Header .= $_FILES['Anhang']['name'];

                
        $Header .= "\n\n";

                
        $Dateiinhalt fread(fopen($_FILES['Anhang']['tmp_name'], "r"), $_FILES['Anhang']['size']);

                
        $Header .= chunk_split(base64_encode($Dateiinhalt));

                
        $Header .= "\n";

                
        $Header .= "--$Trenner--";

         

                
        mail($Empfaenger$Mailbetreff""$Header);

                echo
        "Vielen Dank für Ihre eMail!"
        und eine weiterleitung kannst du doch bei deinen Mailserver einstellen oder nicht?

        Ansonsten kann ich dir nicht helfen
        Zuletzt geändert von webcool; 06.04.2006, 12:47.
        Ich hoffe es hilft

        Kommentar


        • #5
          Hi Webcool!

          Danke nochmal für deine Hilfe... es war zwar nicht exakt das, was ich gesucht habe, aber es hat mir den gedanklichen Anstoss für die Lösung gegeben.

          Es funktioniert jetzt folgendermaßen:

          PHP-Code:
          $mbox imap_open($mailbox,$username,$password); 

          $org_mail imap_body($mbox,$i,FT_INTERNAL);
          $fheader=imap_fetchheader($mbox,$i);

          $Trenner md5(uniqid(time()));

          $Header "From: [email]mail@domain.de[/email]";
          $Header .= "\n";
          $Header .= "MIME-Version: 1.0";
          $Header .= "\n";
          $Header .= "Content-Type:multipart/mixed;boundary=$Trenner";
          $Header .= "\n\n";
          $Header .= "This is a multi-part message in MIME format";
          $Header .= "\n";
          $Header .= "--$Trenner";
          $Header .= "\n";
          $Header .= "Content-Type: text/plain";
          $Header .= "\n";
          $Header .= "Content-Transfer-Encoding: 8bit";
          $Header .= "\n\n";
          $Header .= "Sie haben folgende Nachricht erhalten: \n\n";
          $Header .= "--$Trenner";
          $Header .= "\n";
          $Header .= "Content-Type: message/rfc822";

          mail("mail@domain.de","Fwd: ".$subject,$fheader.$org_mail,$Header); 
          Der entscheidente Punkt ist "Content-Type: message/rfc822" !!!

          Gruß Flo

          Kommentar

          Lädt...
          X