Ankündigung

Einklappen
Keine Ankündigung bisher.

php mail - Problem bei versenden von Email mit Text und einer Datei

Einklappen

Neue Werbung 2019

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

  • php mail - Problem bei versenden von Email mit Text und einer Datei

    Hallo zusammen,

    Ich habe versucht ein Script zu erstellen das eine PDF-Datei hochläde und dann als eine Email versendet.

    Das Hochladen und versenden der Datei geht super. Doch leider wird der Text den Ich als kurze Info dem Mail hinzufügen wollte nicht mitgeschickt / angezeigt wird.

    Hier der Code:
    $text = 'Textnachricht in der Email.';

    $header = "From:$email_from_name<$email_from_mail>\n";
    $header .= "Reply-To: $email_from_mail\n";
    $header .= "X-Mailer: PHP/" . phpversion(). "\n";
    $header .= "X-Sender-IP: $REMOTE_ADDR\n";
    $header .= "Content-Type: ".$_FILES['file']['type']."; name=".$_FILES['file']['name'];
    $header .= "\n";
    $header .= "Content-Transfer-Encoding: base64";
    $header .= "\n";
    $header .= "Content-Disposition: attachment; filename=".$_FILES['file']['name'];
    $header .= "\n\n";
    $dateiinhalt = fread(fopen($bildname, "rb"), filesize($bildname));
    $header .= chunk_split(base64_encode($dateiinhalt));


    mail($email_to ,$email_betreff ,$text ,$header);
    Kann mir jemand sagen an was es liegt das die Textnachricht nicht mitgeschickt oder angezeigt wird.
    Ich hatte auch schon versucht den Text im Header mitzuschicken wie ich per Google irgendwo gefunden habe. Doch dann wird der ganze Header ausgegeben und die Datei funktioniert dann nicht mehr.

    Ich wäre wirklich froh über ein wenig Hilfe. Danke schonmal im Vorraus.
    MfG Kenshin

  • #2
    Verzichte auf die mail()-Funktion von PHP und verwende eine fertige Klasse w.z.B. den phpMailer und alles wird gut.

    Kommentar


    • #3
      Damit du auf den ersten Blick siehst, wie einfach das geht:
      PHP-Code:
      require("class.phpmailer.php");
      $mail = new PHPMailer();
      $mail->From     $absendermail;
      $mail->FromName $absendername;
      $mail->AddReplyTo($absendermail);
      $mail->Sender     $absendermail;

      //$mail->CharSet  =  "utf-8";

      $mail->AddAddress($empfaengermail);
      $mail->Subject $betreff;
      $mail->Body $message_text;

      $mail->AddAttachment('./datei.pdf','datei.pdf');

      $mail->Send(); 
      [PHP]if ($var != 0) {
      $var = 0;
      }[/PHP]

      Kommentar


      • #4
        Zitat von Kenshin Beitrag anzeigen


        Kann mir jemand sagen an was es liegt das die Textnachricht nicht mitgeschickt oder angezeigt wird.
        Ich denke, dass deine Zeile
        PHP-Code:
        $header .= "Content-Type: ".$_FILES['file']['type']."; name=".$_FILES['file']['name']; 
        geändert werden müsste in etwas wie

        PHP-Code:
        $header .="Content-Type: multipart/mixed;\n"
        bzw. müstest du es noch zusätzlich angeben, damit klar ist, dass eine gemischte Form von Text und Daten/Dateien gemeint ist.

        Kommentar


        • #5
          Bitte nicht mail() empfehlen und auch keine Rettungsversuche bei ohnehin unvollständigen Headern machen.
          Mails sendet man mit den bekannten Klassen aus und bedient sich damit des Know-Hows vieler schlauer Leute, die die einschlägigen RFCs analysiert haben und die die Klassen stetig fortentwickeln.
          Wer sich aus akademischen Gründen dafür interessiert, wie die Mails letztendlich zusammengebastelt werden, der schaut halt in die Klassen rein.

          Lesestoff
          http://www.php.de/adventskalender-20...fverkehrs.html
          [PHP]if ($var != 0) {
          $var = 0;
          }[/PHP]

          Kommentar


          • #6
            ok.

            Kommentar

            Lädt...
            X