mail() Funktion

PatrickD

Mitglied
Hallo Gemeinde,

wer weiß wie man mit der mail() Funktion Dateianhänge
(neudeutsch: Ehtätschments) versendet ???

Gruß
Paddy
 
Hi,

ich weiß es ;)

zunächst mal muss folgendes in den Header:
PHP:
$header = "MIME-Version: 1.0\nContent-Type: multipart/mixed; boundary=\"========1234567890\"";

das Boundary is vom Inhalt her egal, muss nur in der gleichen Form wieder im Mailtext vorkommen.

dann musst Du erstma ein paar Variablen setzen:

PHP:
$file_type="image/jpeg"; //oder entsprechender MIME-Typ der Datei
$file_name="datei.jpg";
$content="Hier der Email-Text";

und dann muss noch die zu sendende Datei mit BASE64 Codiert werden:

PHP:
$fd = fopen("is/htdocs/...../datei.jpg", "r");
$anhang = chunk_split(base64_encode(fread( $fd, filesize("is/htdocs/...../datei.jpg"))));
fclose($fd);


im Mailtext kommt dann folgendes:
PHP:
$content = "--========1234567890
Content-Type: text/plain; charset=\"us-ascii\"
Content-Transfer-Encoding: 7bit


".$content."
--========1234567890
Content-Type: $file_type; name=$file_name
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename=\"$file_name\"

".$anhang;
oder in eine Zeile, und dann die Zeilenumbrüche als "\n"

dann die Mail ganz normal verschicken:
PHP:
mail($recipient,$subject,$content,"From: $sender <$frommail>\n".$header);

Noch ein Tip: Ich hab das alles selbst durch Try&Error rausgefunden indem ich mir einfach den Quelltext einer Email angeschaut hab, und probiert hab, die "nachzubauen" ;) Wenn's also net sofort klappt, schau Dir von der Email, die Du erzeugst den Quelltext an ;)


Dunsti
 
@Dunsti:

deine Dateieinlesemethode ist cool:)
ich benutze dafuer etwas anderen code,
kennst mich doch
also:
PHP:
$fcontent = implode("",file("is/htdocs/...../datei.jpg"));
$anhang = chunk_split(base64_encode($fcontent));
// oder auch ohne die temp-var
$anhang = chunk_split(base64_encode(implode("",file("is/htdocs/...../datei.jpg"))));
ist doch kuerzer geworden, oder?:)


[edit by Dunsti]
ajo, viele Wege führen nach Rom :)
[/edit by Dunsti]
 
Hallöchen nochmal,

ok,
habe es jetzt ausprobiert. Allerdings nur mit einer PDF Datei.
Den Mime-Type habe ich natürlich angepasst.

Leider erhalte ich dabei nur eine unleserliche Textdatei
(eben Base64 encoded).

Wist Ihr woran das liegen könnte ?

Paddy
:eek:
 

Neue Beiträge

Zurück