Ankündigung

Einklappen
Keine Ankündigung bisher.

Sonderzeichen in einem E-Mail-Anhang

Einklappen

Neue Werbung 2019

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

  • Sonderzeichen in einem E-Mail-Anhang

    hallo!

    ich generiere mittels folgenden php-code eine e-mail mit anhang (datas.edi):
    Code:
    <?
     
    $anhang=fopen("datas.edi", r);
    $groesse=filesize("datas.edi");
    $anhangdatei=fread($anhang,$groesse);
    $anhang_email=chunk_split(base64_encode($anhangdatei));
    fclose($anhang);
     
    $empfaenger="test@gmx.net";
    $betreff="Rechnung";
     
    $mitteilung="";
     
    $header="FROM: i_am@gmx.net,MIME-Version: 1.0\r\n"
    			."Content-Type: multipart/mixed; boundary=\"BOUND\"\r\n";
     
    $body="Test\r\n"
    			."--BOUND\r\n"
    			."Content-Type: text/plain; charset=iso-8859-1 \r\n"
    			."Content-Disposition: inline \r\n"
    			."Content-Transfer-Encoding: 7bit \r\n"
    			."\r\n"
    			."$mitteilung\r\n"
    			."\r\n"
    			."--BOUND\r\n"
    			."Content-Type: text/plain; name=\"datas.edi\" \r\n"
    			."Content-Description: \"Ein Bild\" \r\n"
    			."Content-Transfer-Encoding: base64 \r\n"
    			."Content-Disposition: attachment \r\n"
    			."\r\n"
    			."$anhang_email\r\n"
    			."\r\n"
    			."--BOUND-\r\n";
     
    mail($empfaenger, $betreff, $body, $header);
     
    ?>
    jetzt meine frage: das .edi file welches am webserver liegt ist vollkommen in ordnung... wenn ich es allerdings über das obige script versende sind am ende des .edi files 3 sonderzeichen enthalten, nämlich: å

    wie kann ich verhindern das das .edi file unberührt bleibt?


    thx!!!

    i_am


  • #2
    Da ich reichlich faul bin und sowas nicht selber mache .. kann ich dir eigentlich nicht helfen ...

    Dir aber sage, was ich nutze:
    http://pear.php.net/package/Mail_Mime

    Kommentar


    • #3
      hallo!

      danke für deinen tipp... das nächste mal nehm ich auch dieses tool =)

      trotzdem will ich aber wissen warum diese sonderzeichen in das file geschrieben werden...?


      thx!

      i_am

      Kommentar


      • #4
        weiss wirklich niemand wo der fehler begraben ist?

        Kommentar


        • #5
          was ist denn .edi für ein Format oder eine Datei oder was steht denn dadrin? Hast du es mal mit anderen Dateien probiert? Mit Grafiken z.B.? Kommen die exakt an? Ist vielleicht die Encodierung falsch oder Content-Transfer-Encoding oder der Content-Type ist falsch angegeben...

          Kommentar


          • #6
            was ich gerade sehe, du schreibst:
            Content-Transfer-Encoding: 7bit
            mach daraus mal:
            Content-Transfer-Encoding: 8bit

            Kommentar


            • #7
              hab noch was zu sagen:
              du schreibst:
              ."Content-Type: multipart/mixed; boundary=\"BOUND\"\r\n";

              mach daraus bitte mal:
              $bound = strtoupper(md5(uniqid(time())));
              ."Content-Type: multipart/mixed; boundary=\"$bound\"\r\n";

              Kommentar


              • #8
                hey, schonmal was von der edit-funktion gehört?

                Kommentar


                • #9
                  ah stimmt da war ja noch was...

                  Kommentar


                  • #10
                    wenn ich das ersetze:
                    $bound = strtoupper(md5(uniqid(time())));
                    ."Content-Type: multipart/mixed; boundary=\"$bound\"\r\n";

                    wird kein anhang mehr mitgeschickt...

                    ???

                    i_am

                    Kommentar


                    • #11
                      Code:
                      $Empfaenger = "test@gmx.net"; 
                      $Betreff = "Rechnung"; 
                      
                      $Dateiname = "datas.edi"; 
                      $DateinameMail = "datas.edi"; 
                      
                      $Header = "From: i am <i_am@gmx.net>"; 
                      
                      $bound = strtoupper(md5(uniqid(time())));
                      $Header .= "\n"; 
                      $Header .= "MIME-Version: 1.0"; 
                      $Header .= "\n"; 
                      $Header .= "Content-Type: multipart/mixed; boundary=$Trenner"; 
                      $Header .= "\n\n"; 
                      $Header .= "--$bound"; 
                      $Header .= "\n"; 
                      $Header .= "Content-Type: text/plain"; 
                      $Header .= "\n"; 
                      $Header .= "Content-Transfer-Encoding: 8bit"; 
                      $Header .= "\n\n"; 
                      $Header .= "--$bound"; 
                      $Header .= "\n"; 
                      $Header .= "Content-Type: text/plain; name=$DateinameMail"; 
                      $Header .= "\n"; 
                      $Header .= "Content-Transfer-Encoding: base64"; 
                      $Header .= "\n"; 
                      $Header .= "Content-Disposition: attachment; filename=$DateinameMail"; 
                      $Header .= "\n\n"; 
                      $Header .= chunk_split(base64_encode(fread(fopen($Dateiname, "r"), filesize($Dateiname))));
                      $Header .= "\n"; 
                      $Header .= "--$bound--"; 
                      
                      mail($Empfaenger, $Betreff, "", $Header);
                      versuch mal das...

                      Kommentar


                      • #12
                        danke cgdesign... jetzt funktionierts...

                        aber was war an meinem code jetzt genau der fehler das diese sonderzeichen enthalten waren?

                        thx!

                        Kommentar


                        • #13
                          ich denke mal wie schon vorher beschrieben, du hattest versucht mit 7bit zu encodieren quasi so: Content-Transfer-Encoding: 7bit
                          7bit ist aber ein unzuverlässiger Wert, sowas gibt es nicht, es geht ja erst ab 8bit los, vielleicht lags daran.
                          Dann hast du den boundary nicht richtig angegeben, also von "BOUND" habe ich vorher noch nie was gehört. Boundary ist ja wichtig, indem du dann mitteilst das die Trennung von den einzelnen Abschnitten in der eMail deutlich macht. Naja das macht man normalerweise mit einer Kombination aus Zeichen ohne Sonderzeichen (also Zahlen, Buchstaben und Striche). Wie gesagt du hattest nur "BOUND" geschrieben, aber ich weiß net was das bedeutet.
                          Das sieht dann ungefähr so aus:
                          Content-Type: multipart/mixed; boundary=4BC48A1C8272858A7BAF9DF8782062C2
                          Dann könnte es noch daran gelegen haben, das du versucht hast alles in den Body zu schreiben, der aber normalerweise auch leer gelassen wird und alles in den Header geschrieben wird.

                          Ja naja, aber jetzt gehts ja.

                          Kommentar

                          Lädt...
                          X