Formular versendet, rückantworten per Outlook
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
absender
adresse
all
antwort
antworten
betreff
code
eingabe
email
form
formular
gemeinheit
http
info
not
probier
problem
set
text
url
-
Hallo,
ich habe folgendes Problem:
Habe eine HTML-Seite mit Anfrageforumlar erstellt.
Sprich, insgesamt sind an diesem Programmierprozess 3 Seiten beteiligt:
1)frame_anfrage.htm (beinhaltet das Formular)
2)frame_mailsend.htm (automatisches Bestätigungsmail)
3)sendmail.php (Dokument im separaten Ordner "sendmail", welches das besagte Dokument enhält)
Das versenden gelingt. Auch Bestätigungsmail erscheint, nachdem das Formular versendet wurde.
Allerdings gibt es noch ein wesentliches, nerviges Problem: Wenn ich in meinem Outlook-Account auf das eingegangene Anfrageformular antworten möchte, erscheint in der Adresszeile MEIN Absender, und nicht der vom EMPFÄNGER, spricht von dem, der das Formular gesendet hat.
Ich hätte allerdings gerne, dass wenn ich in Outlook auf "Antworten" klicke, dass im Empfängerfeld die E-Mail Adresse der Person steht, welche das Anfrageformular an mich geschickt hat, inkl. den Daten die gesendet wurden, und meiner Antwort. Sprich genauso, wie wenn ich eine normale E-Mail von jemandem bekomme. Da kann ich dann auch normal auf "Antworten" klicken, und der Empfänger ist automatisch im Empfängerfeld. Und vielleicht gibt es sogar die Möglichkeit, dass man im Betreff schon was voreinstellt? Aber das wäre für mich bereits schon "Luxus" :-)
Ist es möglich, sowas einzustellen, und wenn ja - wie?
Vielen Dank im Voraus!
Im Folgenden die relevanten Auszüge, numeriert nach obiger Listung:
1)frame_anfrage.htm
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <script> Google Analytics Code <script language="JavaScript" type="text/JavaScript"> <!-- function MM_findObj(n, d) { //v4.01 var p,i,x; if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) { d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);} if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n]; for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document); if(!x && d.getElementById) x=d.getElementById(n); return x; } function MM_validateForm() { //v4.0 var i,p,q,nm,test,num,min,max,errors='',args=MM_validateForm.arguments; for (i=0; i<(args.length-2); i+=3) { test=args[i+2]; val=MM_findObj(args[i]); if (val) { nm=val.name; if ((val=val.value)!="") { if (test.indexOf('isEmail')!=-1) { p=val.indexOf('@'); if (p<1 || p==(val.length-1)) errors+='- '+nm+' must contain an e-mail address.\n'; } else if (test!='R') { num = parseFloat(val); if (isNaN(val)) errors+='- '+nm+' must contain a number.\n'; if (test.indexOf('inRange') != -1) { p=test.indexOf(':'); min=test.substring(8,p); max=test.substring(p+1); if (num<min || max<num) errors+='- '+nm+' must contain a number between '+min+' and '+max+'.\n'; } } } else if (test.charAt(0) == 'R') errors += '- '+nm+' is required.\n'; } } if (errors) alert('The following error(s) occurred:\n'+errors); document.MM_returnValue = (errors == ''); } //--> </script> </head> <title>Anfrage</title> <p><strong>Vorname*</strong><br> <input name="Vorname" type="text" class="textfluss" id="Vorname" onBlur="MM_validateForm('Ankunftsdatum','','R');return document.MM_returnValue" size="20"> <br> <strong>Nachname*</strong><br> <input name="Nachname" type="text" class="textfluss" id="Nachname" onBlur="MM_validateForm('Nachname','','R');return document.MM_returnValue" size="30" maxlength="30"> <br> Straße<br> <input name="Strasse" type="text" class="textfluss" id="Strasse" size="30" maxlength="30"> <br> PLZ<br> <input name="PLZ" type="text" class="textfluss" id="PLZ" size="6" maxlength="6"> <br> Ort:<br> <input name="Ort" type="text" class="textfluss" id="Ort" size="20" maxlength="20"> <br> Land:<br> <input name="Land" type="text" class="textfluss" id="Land" size="20" maxlength="20"> <br> <strong>E-Mail*</strong><br> <input name="E-Mail" type="text" class="textfluss" id="E-Mail" onBlur="MM_validateForm('E-Mail','','NisEmail');return document.MM_returnValue" value="" size="40" maxlength="50"> <br> <!-- <tr> <td width="25%"> <font size="-1" >Empfänger Name: </font> </td> <td width="75%"> <input type="text" name="recname" size="40" maxlength="50" value=""> </td> </tr> <tr> <td width="25%"> <font size="-1" >Empfänger Email-Adresse: </font> </td> <td width="75%"> <input type="text" name="recemail" size="40" maxlength="50" value=""> </td> </tr> --> <strong>Tel*</strong><br> <input name="Tel" type="text" class="textfluss" id="Tel" onBlur="MM_validateForm('Tel','','RisNum');return document.MM_returnValue" size="30" maxlength="30"> <br> Wie sind Sie auf uns aufmerksam geworden?<br> <input name="Marketing" type="text" class="textfluss" id="Marketing"> <br> Wünsche oder Fragen?<br> <input name="Wuensche_Fragen" type="text" class="textfluss" id="Wuensche_Fragen"> <input class="textfluss" type="submit" value="Senden"> <input class="textfluss" type="reset" value="Zurücksetzen"> <br> </p> </form> <p align="left" class="textfluss"><strong>*Pflichteingaben</strong></p> </td> </tr> </table> <blockquote> </blockquote> <div align="left"> </div> </body> </html>
2)frame_mailsend.htm
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> </head> <body> <td valign="top" class="textfluss"><p align="left" class="Stil2"> Ihre Anfrage wurde uns zugesendet, und wird umgehend bearbeitet. Vielen Dank!</p> </td> </body> </html>
3)sendmail.php
<?php //--------------------------Set these paramaters-------------------------- // Subject of email sent to you. $subject = 'Anfrageformular'; // Your email address. This is where the form information will be sent. $emailadd = 'info@xxx.it'; // Where to redirect after form is processed. $url = 'http://www.xxx.it/de/frame_mailsend.htm'; // Makes all fields required. If set to '1' no field can not be empty. If set to '0' any or all fields can be empty. $req = '0'; // --------------------------Do not edit below this line-------------------------- $text = "Results from form:\n\n"; $space = ' '; $line = ' '; foreach ($_POST as $key => $value) { if ($req == '1') { if ($value == '') {echo "$key is empty";die;} } $j = strlen($key); if ($j >= 20) {echo "Name of form element $key cannot be longer than 20 characters";die;} $j = 20 - $j; for ($i = 1; $i <= $j; $i++) {$space .= ' ';} $value = str_replace('\n', "$line", $value); $conc = "{$key}:$space{$value}$line"; $text .= $conc; $space = ' '; } mail($emailadd, $subject, $text, 'From: '.$emailadd.''); echo '<META HTTP-EQUIV=Refresh CONTENT="0; URL='.$url.'">'; ?>
Beitrag zuletzt geändert: 6.4.2013 16:02:35 von hackyourlife -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Huhu guse,
ich nutze gerne weniger aufwändig, und kompliziert aufgebaute mail-Scripte, ohne JavaScript-Zwang, und auch lieber all-in-one -Lösungen.
Soll heißen:
Die Form würde nicht mit Javascript aufgebaut, das (einzige) PHP-Script antwortet gemäß der Eingaben entsprechend, und das einzige (i)frame ist für das Captcha-Bildchen, womit Bots bislang ihre Probleme haben. Javascript würde nur bei den Eingaben im Browser behilflich sein - sonst nichts.
In Deinem Fall sollte die Variable $emailadd den Wert von $E-Mail annehmen, damit die Absende-Adresse automatisch im Absender steht.
Mit Grüßen vom Menschle ;) -
hey menschle, besten dank für deine prompte stellungnahme!
mhm... also wenn ich es richtig verstanden habe, muss ich nur...
// Your email address. This is where the form information will be sent.
$emailadd = 'info@xxx.it'; <--- ....hier $emailadd gegen $E-Mail ersetzen?
gruß
guse
Beitrag zuletzt geändert: 6.4.2013 15:55:13 von guse -
guse schrieb:
Nein, denn das Script muss ja wissen, an welche Adresse die mail gesendet werden soll; nämlich an Deine.
mhm... also wenn ich es richtig verstanden habe, muss ich nur...
// Your email address. This is where the form information will be sent.
$emailadd = 'info@xxx.it'; <--- ....hier $emailadd gegen $E-Mail ersetzen?
Dein Eingriff würde an der Stelle stattfinden, bevor es an Dich gesendet wird, also anstatt
mail($emailadd, $subject, $text, 'From: '.$emailadd.''); echo '<META HTTP-EQUIV=Refresh CONTENT="0; URL='.$url.'">';
einfach
$sender_emailadd = $_POST["E-Mail"]; mail($emailadd, $subject, $text, 'From: '.$sender_emailadd.''); echo '<META HTTP-EQUIV=Refresh CONTENT="0; URL='.$url.'">';
oder ähnlich.
Allerdings sollte die Eingabe zuvor auf Gemeinheiten hin geprüft werden.. ;) -
hey danke! probier ich gleich mal aus und guck obs funzt... :-)
by the way, was meinst du denn mit
"Allerdings sollte die Eingabe zuvor auf Gemeinheiten hin geprüft werden.. ;)" -
guse schrieb:
Na, Eingaben escapen.
hey danke! probier ich gleich mal aus und guck obs funzt... :-)
by the way, was meinst du denn mit
"Allerdings sollte die Eingabe zuvor auf Gemeinheiten hin geprüft werden.. ;)" -
guse schrieb:
Mhm, also hab den Code so eingefügt, aber funzt immer noch nicht
stimmt doch so, oder?
$sender_emailadd = $_POST["E-Mail"]; mail($emailadd, $subject, $text, 'From: '.$sender_emailadd.''); echo '<META HTTP-EQUIV=Refresh CONTENT="0; URL='.$url.'">';
Hi, habe Dein Scriptchen nach Deinem Muster nachgebaut, und es funzt wunderbar, wie hier zu sehen ist: mail-client-eingang ☛ mail-client-antwort
Die Absende-Adresse ist bereits eingetragen, und der Betreff ist über das Script ebenfalls frei wählbar. Selbstverständlich lässt sich alles um Browser- oder Länderkennung, IP - was auch immer - im Betreff oder dem Inhalt der mail beliebig erweitern.
Die frame_anfrage.htm habe ich Deiner Original-Seite entnommen, da Du uns in Deinem Eröffnungsbeitrag leider ´ne Kleinigkeit vorenthalten hast. ;)
Wie ich sehe, wird Deine Seite nicht von Lima gehostet; daher wäre es vielleicht ganz sinnig zu erfahren, welche PHP-Version denn bei euch läuft - ggf. müsste das Scriptchen nachgebessert werden.
Eine Testseite ist (hier auf Lima) eingerichtet, den Zugang dazu + Name & PW hast Du per PN erhalten. Die mail wird - wie in Deinem Scriptchen auch - an eure Geschäftsadresse gesendet.
Mache also eure Sekretärin nicht verrückt. ;)
LG, Menschle -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage