EHLO Tom ;),
/* Boundary trennt jeweils die E-Mail-Abschnitte voneinander */
$semi_rand = md5(time());
# es wird nicht abgeprüft, ob der String "\n".$sem_rand."\r\n" im Mailcontent
# vorkommt - bei all den mit uniqid()/rand()/md5() -generierenden Scripts
# die beim googeln gefunden werden, wird dies immer wieder falsch gemacht
$mime_boundary = "==Multipart_Boundary_x{$semi_rand}x";Meintest Du jetzt "\n--".$sem_rand."\r\n" und \n--".$sem_rand."--\r\n" ?
Danke! Das war noch ein Fehler von mir. Es muß auf "\n--$mime_boundary\r\n" geprüft werden.
Außerdem bin ich mir nicht sicher, dass "==" erlaubt ist. Ich dachte, es müsse "--" sein?
Da hatte ich anfänglich auch meine Zweifel, aber boundary wird mit "" (Gänsefüßchen) eingeschlossen, das sollte also keine weitere Fehlerquelle darstellen.
Die Attachments über $message zu übergeben, ist das wirklich ok?
Habe bis jetzt keine gegenteiligen Erfahrungen sammeln müssen, jedoch wenn es mit "nur Headern" funktioniert, sind wir uns sicher beide einig, dort lieber nicht drinn rumzurühren ;)
Wenn ich $header für Attachments oder sonstige Teile außer Headern benutze, lasse ich $message immer leer. Das funktionierte bisher immer. Nicht jedoch, wenn $message auch benutzt wurde.
Da hatte ich mal ein paar Test an der Shell gemacht, indem ich den sendmail_path auf ein cli-php-Script verweisen ließ, das mir ausgegeben hatte, was dort wirklich ankommt.
String 'additional_headers' wird dort von String 'message' durch CRLF getrennt übergeben. D. h. wenn der Funkton mail() keine String 'message' übergeben wird, endet die mail mit einem (weiteren) CRLF. Inwiefern darin auch eine Fehlerquelle sein kann, weis ich nicht.
Gruß aus Berlin!
eddi
Wer Rechtschreibfehler findet, darf sie behalten.