e-Mail-Versand mit PDF-Anhang

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

  • e-Mail-Versand mit PDF-Anhang

    Hallo Leute,
    ich habe ein Problem mit dem versenden von e-Mails mit einer bereits generierten PDF.
    Wenn ich die PDF so öffne, ist alles okay. Wenn Sie jedoch als Anhang der e-Mail versendet wird, kommt die Fehlermeldung, dass die Datei nicht geöffnet werden kann, weil sie beschädigt ist.
    Hat vielleicht jemand eine Idee?

    Das hier ist der Code dazu:
    Code:
      list($email) = file("../daten/email.dat");
       
    $boundary = strtoupper(md5(uniqid(time())));
    $dateiname="Datei.pdf";
    $datei_inhalt = chunk_split(base64_encode(fread(fopen($dateiname, "r"), filesize($dateiname))));
    $header = "From: info@homepage.de\n";
    $header .= "MIME-Version: 1.0\n";
    $header .="Content-Type: multipart/mixed; boundary=$boundary\n";
    $header .="--$boundary\n";
    $header .="Content-Type: text/html\n";
    $header .="Content-Transfer-Encoding: quoted-printable\n\n";
    $header .="TEXT........\n\n";
    $header .="--$boundary\n";
    $header .="Content-Type: application/pdf; name=Datei.pdf\n";
    $header .="Content-Transfer-Encoding: base64\n";
    $header .="Content-Disposition: attachment; filename=Datei.pdf\n";
    $header .="\n\n".$datei_inhalt;
    $header .="--$boundary--";
    mail("$email","Betreff","",$header)
    ?>

  • #2
    chunk_split verwendet \r\n, der Rest deiner Mail nur \n.

    Edit: Hatte vorher gefragt ob $datei_inhalt base64-kodiert ist. Aber dann sah ich es selbst im Code. Also ja, ist es.
    Zuletzt geändert von onemorenerd; 22.09.2010, 12:22.

    Kommentar


    • #3
      gute frage...
      weiss ich leider nicht

      Kommentar


      • #4
        Hallo,

        zuerst mal solltest du file_get_contents verwenden. Dein fread(fopen(...)) liefert mit Sicherheit nicht den kompletten Dateiinhalt zurück, sondern nur einen Chunk. Typischerweise wird fread mehrmals aufgerufen und zwar solange bis feof() true ist.

        Gruß,

        Amica
        [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
        Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
        Super, danke!
        [/COLOR]

        Kommentar


        • #5
          ich würde das normale php mail nicht mehr nehmen, nimm phpmailer oder eine der anderen fertigen mail klassen, da klappt es meist deutlich besser mit Html-Mail mit Attachment - vor allem weil man den Mail-Header besser bauen kann
          [font=Verdana]
          Wer LESEN kann, ist klar im Vorteil!
          [/font]

          Kommentar

          Lädt...
          X