Pat: Mails kommen nicht vollständig an.

Hallo!
Habe mir ein Dateiuploadsystem (für Bilder) gebaut. Es funktioniert prima, wenn mann die Bilder auf dem Server speichert. Ich will sie aber per E-Mail verschicken. Hier der Quellcode:

if (isset($_FILES['userfile'])) {
    $inhalt = file_get_contents($_FILES['userfile']['tmp_name']);
    $header = 'From: profilbild@9m2.de' . "\r\n";
    $header .= 'Content-type: '.$_FILE['userfile']['type']."\r\n";
    mail("webmaster@9m2.de", "Bild", $inhalt, $header);
    echo "Folgende Daten wurden gesendet:\n".$inhalt;
}

Der Echobefehl gibt wie erwartet den Quellcode des Bildes (haufenweise exotische Zeichen) aus. Die E-Mail allerdings beinhaltet nur die Zeichen bis zum ersten Zeichen, das das E-mail Programm nicht anzeigen kann (Bei echo war das ein Viereck). Der Rest kommt nicht an. Was ist da los?
Mein Server hat PHP Version 4.3.10-16 unter Apache 2.0.54 (Debian GNU/Linux).

  1. hi,

    Der Echobefehl gibt wie erwartet den Quellcode des Bildes (haufenweise exotische Zeichen) aus. Die E-Mail allerdings beinhaltet nur die Zeichen bis zum ersten Zeichen, das das E-mail Programm nicht anzeigen kann (Bei echo war das ein Viereck). Der Rest kommt nicht an. Was ist da los?

    Was soll das los sein - du knallst einfach Binärdaten raus, an Stellen, wo Binärdaten nicht hingehören.

    Üblich ist es, Dateianhänge in E-Mails Base64-kodiert einzufügen.

    Für den Einstieg: http://de.wikipedia.org/wiki/Multipurpose_Internet_Mail_Extensions

    gruß,
    wahsaga

    --
    /voodoo.css:
    #GeorgeWBush { position:absolute; bottom:-6ft; }
  2. Wie der kollege schon erwähnte kannst du nicht einfach ein bild in die mail packen ohne dazuzuschreiben, was denn drin ist in der mail. wenn du das bild als textdatei in word öffnest siehst du ja auch nur buchstabensuppe und nicht dein bild.

    mehr zum thema encoding / attachments / content-types unter http://de3.php.net/mail in den anmerkungen.

    1. Danke das hat mein Problem gelöst.