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?