PHP eMail Attachment - Anhänge in Mails

<?php
    // Mail-Adresse des Empfängers
    $to = "Empfaenger <empfaenger@domainname.de>";

    // Angaben zur Absenderadresse
    $from = "Absender <absender@domainname.de>";

    // Text, der in der eMail stehen soll
    $message_body = "Sie haben sich bei uns als Benutzer registriert...";

    // Erzeugen eines eindeutigen Trennstrings, durch den die einzelnen
    // Komponenten der Mail voneinanger getrennt werden.
    $msep = strtoupper (md5 (uniqid (time ())));

    // Header, der dem Mail-Client sagt wie der die Mail zu behandeln hat
    $header = // Absender wie gehabt
          "From: $from\r\n" .
          // Version des Mime-Types
          "MIME-Version: 1.0\r\n" .
          // Content-Type multipart/mixed sagt aus, dass die Mail aus
          // mehreren Teilen besteht. Mit Boundary wird eine Zeichenkette
          // angegeben, die als Trenner zwischen den einzelnen Teilen der
          // Mail genutzt wird.
          "Content-Type: multipart/mixed; boundary=\"$msep\"\r\n\r\n" .
          // Einleiten des ersten Teilabschnitts der eMail...
          "--$msep\r\n" .
          // Mime-Type und Kodierung des ersten Teils...
          "Content-Type: text/plain\r\n" .
          "Content-Transfer-Encoding: 8bit\r\n\r\n" .
          // und zuletzt der Inhalt des Abschnitts. (hier der Mailtext)
          $message_body . "\r\n";

    // Name der Datei, die als Attachment in die Mail eingefügt werden soll
    $dateiname = $_SERVER['DOCUMENT_ROOT'] . '/pic/logo_evocomp.jpg';
    // Größe der anzuhängenden Datei ermitteln
    $dateigroesse = filesize ($dateiname);
    // Datei zum lesen öffnen
    $f = fopen ($dateiname, "r");
    // Inhalt der Datei auf einen Schlag einlesen und zwischenspeichern
    $attached_file = fread ($f, $dateigroesse);
    // Datei wieder schließen
    fclose ($f);
    // Anhang mit MIME Base64 kodieren und nach jeweils 76 Zeichen einen
    // Zeilenumbruch einfügen (\r\n)
    $attachment = chunk_split (base64_encode ($attached_file));

    // Integration eines Anhanges in den Mail-Header
    $header .= // Startmarke für den Anhang
           "--" . $msep . "\r\n" .
           // Mime-Type des Anhangs
           "Content-Type: image/jpg; name=\"Logografik\"\r\n" .
           // Art der Kodierung (Base64, da die Datei im binärformat vorliegt)
           "Content-Transfer-Encoding: base64\r\n" .
           // Name der Datei, unter welcher der Anhang gespeichert werden soll.
           // Dieser Name wird in einem Speichern-unter-Dialog als Voreinstellung
           // gesetzt.
           "Content-Disposition: attachment; filename=\"Logo.jpg\"\r\n" .
           // Beschreibung des Anhangs
           "Content-Description: Logografik als Anhang\r\n\r\n" .
           // zum Schluß muss die bereits zuvor kodierte Datei angehängt werden.
           $attachment . "\r\n";

    // Ende des letzten Anhangs markieren
    $header .= "--$msep--";

    // eMail Subject
    $subject = "Inhalt der Betreffzeile";

    // Mail versenden, wobei der sonst im dritten Parameter angegebene Textinhalt
    // entfällt, da die Textbotschaft bereits im Header enthalten ist.
    mail ($to, $subject, '', $header);
?>

¬ Tutorials



¬ Insolvenzrecht