rob: Pfad zur einer Datei angeben

Beitrag lesen

Hi!

ich möchte per php mail funktion ein Bild versenden.

Die Datei muß als Anhang verschickt werden, das ist dir klar, oder?

Ich gebe als
$Dateiname = "img/" . $_REQUEST['bildname'];
an.

Was du für einen Dateinamen angibst, ist ja völlig egal...

Es funktioniert leider nicht, es wird dem Email kein Bild beigefügt. Ich glaube, es liegt an einer falschen Pfadangabe zum Bildordner.

Ich glaube eher, es liegt daran, daß du etwas völlig falsch verstanden hast.

Du verschickst das Bild als Anhang. Du kannst der PHP-Mail-Funktion aber nicht einfach einen Dateinamen übergeben und erwarten, daß die entsprechende Datei dann als Anhang verschickt wird.
Die Syntax und Beschreibung von mail() hast du dir im Handbuch durchgelesen?
http://www.php.net/manual/de/function.mail.php

Kann mir jemand sagen, was ich als Pfad angeben muss, damit es funktioniert?

Es kann dir niemand helfen, wenn du uns nicht deinen Code zeigst.

Wenn du ein Bild verschicken willst, dann muß es in irgendeiner Form codiert werden.

Du könntest eine HTML-Mail verschicken und das Bild inline einbinden.
Das ist, nach meiner Sicht, in den meisten Fällen aber Murks.
Auf HTML-Mails will ich hier ohnehin jetzt nicht eingehen.
Ich würde das einfach sein lassen...
Aber wie gesagt, möglich wäre es.
Hier findest du was über Inline-Images:
http://aktuell.de.selfhtml.org/artikel/grafik/inline-images/

Dann gibt es die Möglichkeit, das Bild als Mailanhang zu verschicken.
Auch hier muß das Bild codiert werden.
Eine Email besteht nun mal aus reinem Text. Wenn binäre Daten (wie z.B. Bilder) verschickt werden sollen, dann müssen sie in druckbare (ASCII-)Zeichen umgewandelt werden.
Gleiches gilt auch für Sonderzeichen und Umlaute, die nicht im ASCII-Zeichensatz enthalten sind.
Es gibt es verschiedene Möglichkeiten: UUEncode, BinHex, Quoted Printable, Base64, ...
Ist aber eigentlich ziemlich egal. Du solltest die Base64-Kodierung einsetzen. Das ist das, was fälschlicherweise oft als MIME-Kodierung bezeichnet wird.
Bei der Umwandlung wird deine Binärdatei (in diesem Fall dein Bild) ungefähr um ein Drittel größer.
PHP bietet dir Funktionen dafür. Damit kannst du dann auch dein Bild umwandeln: http://www.php.net/manual/de/function.base64-encode.php
Dann mußt du der Mailfunktion noch einige Header mitgeben. Das Content-Transfer-Encoding muß gesetzt werden und du mußt die Boundaries setzen.
Dazu findest du hier etwas: http://www.teialehrbuch.de/PHP/9404-Versenden-einer-E-Mail-mit-Anhang.html
Ansonsten kannst du auch noch mal Google fragen.
Wenn du damit nicht klar kommst, dann gibt es auch einige PHP-Klassen zum Versenden von Emails mit Anhängen.
Such dann vielleicht mal nach "PHP MIME Mail".

Schöner Gruß,
rob