php mail mit Anhang
olli
- php
0 Tom0 Nachtrag
Tom0 Olli
0 Andreas Korthaus0 Tom0 Andreas Korthaus0 Tom
0 Olli0 Tom
0 Tom
Hallo und schön guten Abend,
ich weiss, das Thema ist alt, es gibt jede Menge Einträge darüber, ich habe aber totzdem ein Problem damit.
Ich habe mir gestern Abend von
http://bitworks.de/~selfHTML/mime_mail.php.txt
das Script geholt. Ich habe das dann ausprobiert, und im ersten Moment sah das gar nicht so schlecht aus. An der Mail, war eine Datei angehängt. Mit richtigem Namen( das hatte ich bei meinen eigenen Versuchen nicht hin bekommen), aber beim öffnen der Datei (test.rtf) stand in der Datei nicht drin. Was ist da falsch (schief) gelaufen??
Für eine Hilfe wäre ich Dankbar.
Gruss
Olli
Hello,
Ich habe mir gestern Abend von
http://bitworks.de/~selfHTML/mime_mail.php.txt
es freut mich, dass Du mir da vertraust, aber bedneke bitte, dass die Scripte alle nur Drafts sind.
Das von Dir gezogene ist die Kurzform eines größeren Projektes und ich vermute, dass Du z.B. den Header nicht passend gesetzt haben könntest. Der wird in diesem Script nicht automatisch ermittelt (denke ich jedenfalls, ich schau gleich nochmal).
Oder sind Daten auf dem Übertragungsweg verloren gegangen oder verfremdet worden?
Harzliche Grüße aus http://www.annerschbarrich.de
Tom
Hello,
Das von Dir gezogene ist die Kurzform eines größeren Projektes und ich vermute, dass Du z.B. den Header nicht passend gesetzt haben könntest. Der wird in diesem Script nicht automatisch ermittelt (denke ich jedenfalls, ich schau gleich nochmal).
So ist es . Ich habe da der Einfachheit halber nur "Application/Octetstream" fest eingestanzt. Man sollte aber z.B. mittels mime_content_type() http://de2.php.net/manual/de/function.mime-content-type.php oder auch einer hier im Forum veröffentlichten Ersatzfunktion ermittelt und dann gesetzt werden.
Außerdem müsste ich den Array-Umbau von $_FILES am Anfang mal gegen eine intelligentere Methode austauschen (auch hier veröffentlicht).
Harzliche Grüße aus http://www.annerschbarrich.de
Tom
Hallo Tom,
ich habe das jetzt noch mal mit einer gif Datei probiert.
Nach dem Absenden wird das angezeigt:
From: oliver@oburdich.de
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="776ED8E215CF599F84933A94966FFD6E"
This is a multi-part message in MIME format
Dies ist eine mehrteilige Nachricht im MIME-Format
--776ED8E215CF599F84933A94966FFD6E
Content-Type: text/plain
Content-Transfer-Encoding: 8bit
1234ayhvkljas
--776ED8E215CF599F84933A94966FFD6E
Content-Type: application/octetstream;
name="total.gif"
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
filename="total.gif"
R0lGODlh4wKlAbMAAABCAJycnP//////////////////////////////////////////////////
/////yH5BAEAAAQALAAAAADjAqUBAAT+kMhJq7046827/2AojmRpnmiqrmzrvnAsz3Rt33iu73zv
/8CgcEgs
--776ED8E215CF599F84933A94966FFD6E--
Array
(
[0] => Array
(
[name] => total.gif
[type] => image/gif
[tmp_name] => C:\WINNT\TEMP\php1E4.tmp
[error] => 0
[size] => 5089
)
[1] => Array
(
[name] =>
[type] =>
[tmp_name] =>
[error] => 4
[size] => 0
)
)
Ok
Nachricht wurde versandt...
Die Mail die ich bekommen habe, hat einen Anhang (die Gif Datei). Wenn ich die aufmache, sehe ich nur einen grünen Hinergrund. Das Bild sollte eigentlich ein Umriss von Mallorca sein.
Gruss
Olli
Hello,
Die Mail die ich bekommen habe, hat einen Anhang (die Gif Datei). Wenn ich die aufmache, sehe ich nur einen grünen Hinergrund. Das Bild sollte eigentlich ein Umriss von Mallorca sein.
Dann speichere Diese Datei bitte auf der Empfängerseite und versuche die Datei dann anschließend mittels passemdem Programm zu öffnen. Wenn es dann funktioniert, liegt es am Content-Type, der ja nicht korrekt ermittelt wurde.
Harzliche Grüße aus http://www.annerschbarrich.de
Tom
Hey,
das habe ich gemacht. Wird bein öffnen aber auch nicht richtig angezeigt.
Die org Datei ist 5089 Bytes gross und die versendete ist nur 120 Bytes
gross.
Kann ich den Mime Type eigentlich so abfragen??
$typ = mime_content_type($filename["name"]);
und so setzen??
$header .= "\nContent-Type: $typ;".
"\n name="".$filename["name"].""";
Gruss
Oliver
Hello,
Kann ich den Mime Type eigentlich so abfragen??
$typ = mime_content_type($filename["name"]);
und so setzen??
$header .= "\nContent-Type: $typ;".
"\n name="".$filename["name"].""";
Wenn die Funktion bei Dir vorhanden ist, sollte das gehen.
Ich habe aber noch ein paar Versäumnisse gesehen im Script.
Die Header müssten mit CRLF, also in PHP mit "\r\n" abgeschlossen werden und nicht nur mit "\n".
Vielleicht liegt es daran?
Außerdem solltest Du natüelich überprüfen, wieviel Bytes denn tatsächlich im Script ankommen...
Harzliche Grüße aus http://www.annerschbarrich.de
Tom
Hi!
Es gibt auch ein PEAR-Paket mit dem das eigentlich sehr komfortabel funktioniert:
http://pear.php.net/manual/en/package.mail.mail-mime.example.php
Grüße
Andreas
Hello,
Es gibt auch ein PEAR-Paket mit dem das eigentlich sehr komfortabel funktioniert:
http://pear.php.net/manual/en/package.mail.mail-mime.example.php
Drum will man aber vielleicht trotzdem begreifen lernen, wie es denn eigentlich funktioniert.
Aus diesem Grunde würde ich auch gerne das Simpelbeispiel noch soweit reparieren, dass es vernünftig funktioniert.
Harzliche Grüße aus http://www.annerschbarrich.de
Tom
Hallo!
Es gibt auch ein PEAR-Paket mit dem das eigentlich sehr komfortabel funktioniert:
http://pear.php.net/manual/en/package.mail.mail-mime.example.phpDrum will man aber vielleicht trotzdem begreifen lernen, wie es denn eigentlich funktioniert.
Klar, war ja auch nur ein Vorschlag weil ich eben weiß dass dieses Paket funktioniert, da ich es selbst oft einsetze. Manchmal will man eben was, was "einfach funktioniert", ohne das Rad neu zu erfinden. Natürlich ist es auch interessant und lehrreich selber sowas zu implementieren. Aber nicht jeder hat immer Lust und Zeit dazu ;-)
Aus diesem Grunde würde ich auch gerne das Simpelbeispiel noch soweit reparieren, dass es vernünftig funktioniert.
Da spricht ja nichts dagegen ;-)
Grüße
Andreas
PS: Kannst ja mal in den Quelltext des PEAR-Paketes gucken was die so machen: http://cvs.php.net/pear/Mail_Mime
Hello,
PS: Kannst ja mal in den Quelltext des PEAR-Paketes gucken was die so machen:
So grob hatte ich das damals ja auch bei verschiedenen anderen Beispielen getan.
Es war mir auch entfallen, dass dieses Beispiel überhaupt noch im Netz stand.
Jedenfalls sollte es besser noch einfacher anstelle von komplizierter werden...
Harzliche Grüße aus http://www.annerschbarrich.de
Tom
Moin, Moin,
toll, da schaut man mal zwei Tage nicht ins Netz, und dann tut sich so viel.
Danke Andreas,
gefunden hatte ich das script schon, aber dass war mir zu komliziert.
http://pear.php.net/manual/en/package.mail.mail-mime.example.php
Das von Tom gefiel mir von allen gefundenen am besten. Wobei ich jetzt halt einfach das Problem habe, eine Datei ist im Anhang, mit richtigem Namen, aber ohne Inhalt.
Gruss
Olli
Hello,
gefunden hatte ich das script schon, aber dass war mir zu komliziert.
http://pear.php.net/manual/en/package.mail.mail-mime.example.php
Das von Tom gefiel mir von allen gefundenen am besten. Wobei ich jetzt halt einfach das Problem habe, eine Datei ist im Anhang, mit richtigem Namen, aber ohne Inhalt.
Nun sollte es aber funktionieren. Ich habe es nochmal umgebaut.
Es hat auch schon einmal funktioniert, habe da wohl mal irgendwann eine ungeprüfte Verschlimmbesserung hochgeladen...
Nun ist es aber geprüft, und sollte auch keine wesentlichen Fehler mehr enthalten.
Harzliche Grüße aus http://www.annerschbarrich.de
Tom
Hello,
ich habe die Funktion nochmals überarbeitet.
Es besteht aber immer noch das Problem mit CRLF.
Wenn man, wie in der RFC gefordert, dafür auch 0Dh 0Ah benutzt, dann funktioniert die Übertragung nicht. Das kann ich mir nun noch nicht erklären, zumal ich der Meinugn bin, dass das auch mal funktioniert hat ;-)
Siehe http://selfhtml.bitworks.de --> MIME Mail
Harzliche Grüße aus http://www.annerschbarrich.de
Tom