mailto und Outlook 2003
Kumar
- html
Hallo alle zusammen!
Vorab: Bitte keine Vorschläge/Kommentare machen, dass das Problem serverseitig mit z.B. cgi oder php leichter und vernünftiger zu lösen ist bzw. wäre. Dies ist vom Kunden nicht erwünscht. Es soll auf jeden Fall so gelöst werden wie unten beschrieben.
Ich habe ein Webformular mit html und javascript erstellt. Dieses Formular soll, nachdem es ausgefüllt worden ist und der Benutzer auf den Button "versenden" klickt, eine neue E-Mail aufmachen deren Inhalt die Formular-Eingaben sind. Dafür benutze ich den mailto-"Befehl" und als method post. Mit IE7/FF und Outlook 2007 funktioniert das auch, dass heisst, es öffnet sich ein Fenster mit einer neuen E-Mail und der Betreff und der "body" sind bereits vorbefüllt. Leider funktioniert dies mit Outlook 2003 nicht. Bei Outlook 2003 wird leider nur der Betreff befüllt. Der body wird nur befüllt, wenn ich den Inhalt direkt in der URI Übergebe, die wiederum ist von der Länge her beschränkt. Also müssen die Eingaben des Benutzers mit der method="post" übergeben werden. Die scheinen den body der neuen E-Mail bei Outlook 2003 aber nie zu erreichen.
Einige Teile meines Codes:
Mit dem nachfolgenden javascript Code "hole" ich mir den Betreff aus den Benutzereingaben und schreibe in das form-tag das Attribut mailto.... hinein. Des Weiteren Schreibe ich alle Benutzer eingaben in ein hidden field, dessen Inhalt dann an die neue E-Mail weitergehen sollte (bei Outlook 2007 klappt dies auch einwandfrei).
function getsubject(){
document.getElementById("hid").value="\r\n\r\nName des Antragstellers: " + document.getElementsByName('Name')[0].value + document.getElementsByName('Kommentar')[0].value;
var abteilung = document.getElementsByName('Abteilung')[0].value;
var fachbereich = document.getElementsByName('Fachbereich')[0].value;
var text1 = "mailto:dummy@dummy.de?subject=Antrag (Abteilung: " + abteilung + " Fachbereich: ";
var text = text1 + fachbereich + ")";
document.getElementsByTagName('form')[0].setAttribute("action", text, 0);
}
mein form-tag:
<form name="antrag" action="" method="post" onSubmit="return checkForm()" enctype="text/plain">
<p class=MsoNormal><b><span style='font-size:14.0pt'>Antrag</span></b> <input type="submit" value="Antrag versenden" style="font-weight:bold; font-size:10.0pt; font-family:'Arial','sans-serif'; background-color:7DB3B3;border-color:7DB3B3;" onClick="getsubject()"></p>
<input id="hid" type="hidden" name="Antrag" value="" >
</form>
Meine Frage: Wieso funktioniert das Ganze mit Outlook 2007 aber nicht mit Outlook 2003? Gehen die beiden Mailprogramme anders mit übergebenen Daten um? Was mache ich falsch?
Hallo,
Vorab: Bitte keine Vorschläge/Kommentare machen, dass das Problem serverseitig mit z.B. cgi oder php leichter und vernünftiger zu lösen ist bzw. wäre. Dies ist vom Kunden nicht erwünscht. Es soll auf jeden Fall so gelöst werden wie unten beschrieben.
schade, ich wollte schon den Kommentar abgeben, dass es bei mailto-Formularen immer Glückssache ist, wenn sie "funktionieren".
[...] Also müssen die Eingaben des Benutzers mit der method="post" übergeben werden. Die scheinen den body der neuen E-Mail bei Outlook 2003 aber nie zu erreichen.
Das ist bei meinem eben durchgeführten Test mit IE+Thunderbird auch so, während das Gespann FF+Thunderbird die Formulardaten in der üblichen Form (name1=value1&name2=value2&name3=value3, alles korrekt URL-codiert) als Mailtext einträgt. AFAIR funktioniert das auch mit der Kombination IE+Outlook Express.
Meine Frage: Wieso funktioniert das Ganze mit Outlook 2007 aber nicht mit Outlook 2003? Gehen die beiden Mailprogramme anders mit übergebenen Daten um?
Es scheint also, dass die Übergabe des Inhalts nur gutgeht, wenn Browser und Mailclient eine gemeinsame Schnittstelle kennen und nutzen. Offensichtlich sind die Outlook-Versionen 2003 und 2007 in diesem Punkt unterschiedlich.
Was mache ich falsch?
Du verlässt dich auf Methoden, auf die kein Verlass ist.
Eine Lösung unter Beibehaltung der Forderung, ein mailto-Formular zu verwenden, kann ich dir allerdings nicht anbieten.
So long,
Martin
Hatte jemand schon einmal ein vergleichbares Problem? Gibt es eventuell eine Lösung?
Hatte jemand schon einmal ein vergleichbares Problem? Gibt es eventuell eine Lösung?
Ja, hatte ich. Mein damaliger Chef hatte eine Promotion CD auf HTML-Basis mit Mailoption verkauft. Ich hatte ihm erklaert, warum das Mist ist, er hat mir befohlen es zu machen. Ergebnis: Bei mir (diverse Testrechner mit verschiedenen Konfigurationen von WIN 98 ueber NT und 2000 bis zu nem Mac) lief es, beim Kunden nicht.
Eine Loesung? Die willst Du ja nicht hoeren, weil Dein Kunde sie ausschliesst.