Ankündigung

Einklappen
Keine Ankündigung bisher.

PHP7 mail() mit Anhang

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

  • maha123
    antwortet
    Ich werde mir Deine Worte zu Herzen nehmen und mir die Funktion in den kommenden Tagen mal genauer anschauen. :-)

    Einen Kommentar schreiben:


  • HomerS
    antwortet
    hat man die Kanone einmal im Griff, ist sie ganz schnell geladen und überall einsatzbereit 😀

    Einen Kommentar schreiben:


  • maha123
    antwortet
    Hallo HomerS,

    vielen Dank für Deine Antwort.

    Ich habe soeben
    $emessage .= "$file_content\r\n";
    zu
    $emessage .= "\r\n\r\n$file_content\r\n\r\n";
    geändert. Jetzt klappt es einwandfrei! Du hast mir sehr geholfen.

    Ja, den PHPMailer hatte ich auch schon nutzen wollen, für diesen "Spatzen"-Einsatz wäre es aber eine Kanone.

    Nochmals vielen Dank!
    maha

    Einen Kommentar schreiben:


  • HomerS
    antwortet
    Probier mal vor und nach dem $file_content einen doppelten Zeilenumbruch (\r\n\r\n).

    PS: Ich nutze für komplexere Mails ausschließlich den PHPMailer. Dieser ist extrem zuverlässlich.

    Einen Kommentar schreiben:


  • maha123
    hat ein Thema erstellt PHP7 mail() mit Anhang.

    PHP7 mail() mit Anhang

    Hallo!

    Wir arbeiten derzeit an der Umstellung auf PHP7. Nun haben wir ein Problem mit mail(), das einen Anhang versenden soll.

    Ich möchte gerne eine PDF-Datei, die mittels FPDF dyn. erzeugt wird und im Verzeichnis temp/ angelegt wird per E-Mail (PHP mail()) versenden.

    Die Datei wird korrekt erstellt und auch im Verzeichnis und temp/dateixyz.pdf gespeichert.

    Hier mein Skript:

    $dateiname = "dateixyz.pdf";
    $file = "temp/".$dateiname."";
    $file_name = "$dateiname";
    $from = "[email protected]";
    $to = "[email protected]";
    $cc = "[email protected]";
    $subject = "Ein Betreff";
    $text = "Hier ist der Text...\r\n";

    $boundary = md5(uniqid(time()));
    $header = "From: $from\r\n";
    $header .= "Reply-To: $from\r\n";
    $header .= "CC: $cc\r\n";
    $header .= "MIME-Version: 1.0\r\n";
    $header .= "Content-Type: multipart/mixed; boundary=$boundary\r\n";

    $emessage .= "This is a multi-part message in MIME format -- Dies ist eine mehrteilige Nachricht im MIME-Format\r\n";
    $emessage .= "--$boundary\r\n";
    $emessage .= "Content-Type: text/plain; charset=iso-8859-1\r\n";
    $emessage .= "Content-Transfer-Encoding: 8bit\r\n";
    $emessage .= "\r\n$text\r\n";
    $file_content = fread(fopen($file,"r"),filesize($file));
    $file_content = chunk_split(base64_encode($file_content));
    $emessage .= "--$boundary\r\n";
    $emessage .= "Content-Type: application/octet-stream; name="$file_name"\r\n";
    $emessage .= "Content-Transfer-Encoding: base64\r\n";
    $emessage .= "Content-Disposition: attachment; filename="$file_name"\r\n";
    $emessage .= "$file_content\r\n";
    $emessage .= "--$boundary--\r\n";

    if (mail($to,$subject,$emessage,$header))
    {
    echo "mail send ... OK"; // or use booleans here
    } else
    {
    echo "mail send ... ERROR!";
    $error = error_get_last();
    echo "\nERROR: " . $error["message"] ."\n";
    };
    Die E-Mail wird mit einer Datei, die den korrekten Dateinamen hat, versendet. Die Datei kann ich jedoch nicht öffnen. Acrobat "meckert", dass die Datei beschädigt oder nicht korrekt dekodiert wurde.

    Mag mir jemand auf die Sprünge helfen? Was ist mein Fehler?

    Herzlichen Dank und Gruß!
    maha
Lädt...
X