WebSite X5Help Center

 
Marko G.
Marko G.
User

Kontaktformular Betreff als Betreff der Mail  de

Autor: Marko G.
Besucht 2170, Followers 1, Geteilt 0  

Hallo, 

die Frage/Idee kam so ähnlich schon mal, ist aber schon eine Weile her, geht das immer noch nicht ? Sowas in der Art wäre für viele denke ich interessant. 

https://helpcenter.websitex5.com/de/post/219768

Also ich will einfach nur, dass der Betreff, den der Nutzer ins Betreff-Textfeld einträgt mir auch als Betreff der Mail angezeigt wird, die ich dann bekomme. Hat jemand dafür irgend eine Lösung, vllt mit ein paar Zeilen Code ? 

lg

Gepostet am
20 ANTWORTEN - 7 NüTZLICH
Andreas S.
Andreas S.
Moderator
Nutzer des Monats DE

Ich verstehe nicht was du meinst!  Wenn du einen LINK verlinkt hast als Email und du trägst nichts ins Betreff-Feld ein, dann bleibt es beim Aufruf des Links leer und der Kunde muss das Betrefffeld ausfüllen! Das wird auch bei dir dann angezeigt.

Wenn du ein Kontaktformular meinst, dann kannst nur du bestimmen welchen Betreff beim Formular abgeschickt wird. Ein Betrefffeld beim Email Formular vom Kunden "eingebbar" gibt es nicht.  Meistens will man hier selbst den Betreff im Email Formular ausfüllen um z.B. zu wissen von welchem Email Formular es geschickt wurde wenn man mehrere eingebaut hat im Projekt.

Mehr lesen
Gepostet am von Andreas S.
Marko G.
Marko G.
User
Autor

Genau das will ich was scheinbar nicht geht. Ein Kontaktformular in das der Kunde einen Betreff eingibt und dieser Betreff mir dann als Betreff in meinen Mails angezeigt wird. Ich habe eine Mail extra für diese Seite und es bringt mir nichts wenn ich hundert Mails mit dem Betreff "Anfrage" z.B. bekomme. Dass es nicht so ohne weiteres zu gehen scheint, habe ich schon festgestellt, aber ich bin ja scheinbar nicht der erste mit dem Problem, vllt hat es schon jemand mit zusätzlichen php-code z.B. gelöst. 

Mehr lesen
Gepostet am von Marko G.
Andreas S.
Andreas S.
Moderator
Nutzer des Monats DE

Glaube ich eher nicht, wenn dann wurde so ein ähnlicher Wunsch geäußert aber nicht der was du willst.

Mehr lesen
Gepostet am von Andreas S.
Marko G.
Marko G.
User
Autor

https://helpcenter.websitex5.com/de/post/219768

Er will im Prinzip das gleiche nur noch ein Stufe weiter:

"Ich würde gerne Einträge, die in Feldern des Kontaktformulars vom Besucher der Seite eingetragen werden, automatisch in den Betreff und/oder in den Text der Bestätigungs-E-Mail übernehmen.

Beispiel: Im Kontaktformular trägt der Besucher seinen Vornamen (Beispiel: Max), seinen Nachnamen (Beispiel: Mustermann), die Anrede (Herr oder Frau) und einen Termin (Beispiel: 23.01.2020) ein.

Im Betreff der Bestätigungs-E-Mail sollte dann idealerweise folgendes stehen: Herr Mustermann, Ihre Anfrage für den 23.01.2020."

Mir würde es reichen, wenn einfach nur der Betreff, der ins Kontaktformular eingetragen wurde auch der Betreff der Bestätigungsmail ist. Ich wäre sehr an einer Lösung interessiert. 

Mehr lesen
Gepostet am von Marko G.
Franz-Josef H.
Franz-Josef H.
Moderator

Einen php-Code kann ich Dir nicht bieten, aber eine Änderung im erzeugten Kontaktformular.
Ich gehe davon aus, dass im Kontaktformular des Feld mit dem Betreff auch "Betreff" heißt. Wenn das Formular fertig erstellt und gespeichert ist, suchst Du im Ordenr preview\imemail in Deinem Projektverzeichnis die zuletzt erzeugte Datei mit einem Namen wie "imEmailForm_xyz.php". Solltest Du mehrere Formulare verwenden, kannst Du ausschließlich  eine Änderung an dem betreffenden Formular vornehmen und dieses dann über Datum und Uhrzeit identifizieren. Die Datei öffnest Du im Editor; sie enthält unter anderem folgende zeilen:

$form->setField('Betreff', @$_POST['imObjectForm_1_1'], '', false);
...
$form->mailToOwner('absender(at)email.de', 'empfaenger(at)email.de', 'Betreff Reiter Senden', 'Text der Mail', false);
$form->mailToCustomer('absender(at)email.de', $_POST['imObjectForm_1_2'], 'Betreff Reiter Senden', 'Text der Mail', true);

Relevant sind die fettgedruckten Teile. Diese musst Du austauschen (also 'Betreff Reiter Senden' ersetzen durch @$_POST['imObjectForm_1_1']) und danach speichern und hochladen.

Allerdings wird bei einer Änderung der Kontaktformulare in Deinem Projekt (also nicht nur dieses eine) die Änderung wieder überschrieben. D.h. nach einer Änderung im Projekt solltest Du prüfen, ob das Kontaktformular noch so vorhanden ist...

Mehr lesen
Gepostet am von Franz-Josef H.
Marko G.
Marko G.
User
Autor

Hallo, 

danke, das gleiche habe ich auch probiert. Kannst du das auch mal praktisch bei dir selbst versuchen ? Wenn ich selber die imEmailForm.php-Datei ändere und über FileZilla hochlade und die aktuelle überschreibe kommt immer der Fehler:

"You must activate JavaScript!

You'll be redirected to the previous page in 5 seconds..."

Das ganze auch wenn ich an dieser Datei nur scheinbar etwas geändert habe, also irgendwo 1 Buchstabe hinzufüge, ihn wieder wegnehme und speichere und dann über FileZilla hochlade. 

Wenn ich alles wieder gewöhnlich über Wx5 hochlade funktioniert wieder alles. JavaScript ist natürlich aktiviert. Das wäre super, wenn das Problem wenigstens auf diese Art zu lösen ist. 

Mehr lesen
Gepostet am von Marko G.
Franz-Josef H.
Franz-Josef H.
Moderator

Ja, ich habe das bei mir getestet und es hat funktioniert. Allerdings habe ich nicht mit filezilla hochgeladen, sondern mit der Upload-Funktion von WebsiteX5. Wobei es eigentlich aber unerheblich sein sollte, mit welchem Tool hochgeladen wird.

Noch folgende Frage: Wieviele Dateien hast Du im imemail-Ordner? Hast Du es auch mit einer Datei versucht, die ähnlich heißt wie imEmailForm_dz8vam86.php?

Mehr lesen
Gepostet am von Franz-Josef H.
Marko G.
Marko G.
User
Autor

Die Datei heißt bei mir direkt  imEmailForm.php. Ich habe nur eine Datei in diesem Ordner. Den Namen kann ich ja auch nicht selbst wählen, da sich im Quelltext der Seite, indem sich das Formular befindet darauf bezogen wird:  <form id="imObjectForm_3_form" action="imemail/imEmailForm.php"......Wenn ich eine andere Datei mit andere Bezeichnung dort hochlade wird die ja einfach nur nicht weiter beachtet.  

Mehr lesen
Gepostet am von Marko G.
Franz-Josef H.
Franz-Josef H.
Moderator

OK, dann ist das die einzig richtige Datei (darum ging es mir bei meiner Frage). Versuche mal folgendes: Mach eine beliebige Änderung auf der Seite mit dem Formular und speichere anschließend das Projekt. Ändere die php-Datei mit einem Editor (z.B. notepad.exe) wie oben beschrieben und lade anschließend in WebsiteX5 das Projekt hoch. Es dürften dann nur die Seiten hochgeladen werden, die mit diesem Formular zu tun haben und keine anderen (außer interne Verwaltungsseiten). Danach sollte es funktionieren...

Mehr lesen
Gepostet am von Franz-Josef H.
Marko G.
Marko G.
User
Autor

Kannst du es mal probieren wenn das Formular dieses recaptcha "Ich bin kein Roboter" hat ? Vllt harmoniert das dann alles nicht mehr, wenn man anschließend nochmal "imEmailForm.php" hochläd.

In dieser imEmailForm.php steht: 

if(@$_POST['action'] != 'check_answer') {
if(!isset($_POST['imJsCheck']) || $_POST['imJsCheck'] != 'A957578A1BF244160E5C0CA879E100E1' || (isset($_POST['imSpProt']) && $_POST['imSpProt'] != ""))
die(imPrintJsError());
$form->mailToOwner('Empfä***', 'Empfä***', 'Dieser Betreff soll ersetzt werden. ', '', false);
@header('Location: ../confirmation.html');
exit();
} else {
echo $form->checkAnswer(@$_POST['id'], @$_POST['answer']) ? 1 : 0;
}
}

Da werden ja mit if verschiedene Bedingungen gestellt, die ich nicht richtig verstehe, z.B. was es mit dieser langen Zahl auf sich hat. Das Js steht sicher für JavaScript und in dem Fall kommt es dann scheinbar zum imPrintJsError()), also zum JavaScript-Fehler. 

Mehr lesen
Gepostet am von Marko G.
Franz-Josef H.
Franz-Josef H.
Moderator

Also auch mit dem WebsiteX5-Recaptcha (Im Reiter Senden den Haken bei Antispam-Filter gesetzt) funktioniert es bei mir. Und der Inhalt sieht genauso aus wie bei Dir.

Diese lange Zahl ist das eindeutige Token, das zur Recaptcha-Prüfung benutzt wird.

Mehr lesen
Gepostet am von Franz-Josef H.
Andreas S.
Andreas S.
Moderator
Nutzer des Monats DE

Geht es hier um das reCaptcha oder der Betreffzeile?

Wieso muss es unbedingt in der Betreffzeile angezeigt werden? Im Formular gibt es keine Betreff-Feld was der Kunde ausfüllen kann.

Man kann aber die vom Kunden eingegebenen Daten zusätzlich zum Bestätigungstext im Bestätigungs-Email anzeigen lassen. Da ist nur ein Häkchen zu setzen.

Mehr lesen
Gepostet am von Andreas S.
Klaus G.
Klaus G.
User

Hallo Franz-Josef,

das wäre ja schon ein rießiger Mehrwertcool

Meine PHP schaut so aus ???

<?php
if(substr(basename($_SERVER['PHP_SELF']), 0, 11) == "imEmailForm") {
include '../res/x5engine.php';
$form = new ImForm();
$form->setField('Name:', @$_POST['imObjectForm_129_1'], '', false);
$form->setField('Ihre E-Mail Adresse:', @$_POST['imObjectForm_129_2'], '', false);
$form->setField('Betreff:', @$_POST['imObjectForm_129_3'], '', false);
$form->setField('Ihre Nachricht:', @$_POST['imObjectForm_129_4'], '', false);
$form->setField('Datenschutz:', @$_POST['imObjectForm_129_5'], '', false);

if(@$_POST['action'] != 'check_answer') {
if(!isset($_POST['imJsCheck']) || $_POST['imJsCheck'] != 'A46CF3B16E7E233D76E1709A1850152A' || (isset($_POST['imSpProt']) && $_POST['imSpProt'] != ""))
die(imPrintJsError());
$form->mailToOwner('***', '***', 'Anfrage per Kontaktformular', '', false);
$form->mailToCustomer('info@***', $_POST['imObjectForm_129_2'], 'Eingangsestätigung Ihrer Email', 'Vielen Dank für Ihre E-Mail und Ihre Anfrage, die ich hiermit bestätige.

Ich werden mich so rasch als möglich um Ihre Anfrage kümmern und mich unter der verwendeten E-Mail-Adresse an Sie wenden.

Mit freundlichen Grüßen
xxxxx



E-Mail: ***


Pflichtinformationen gemäß Artikel 13 DSGVO
Im Falle des Erstkontakts sind wir gemäß Art. 12, 13 DSGVO verpflichtet, Ihnen folgende datenschutzrechtliche Pflichtinformationen zur Verfügung zu stellen: Wenn Sie uns per E-Mail kontaktieren, verarbeiten wir Ihre personenbezogenen Daten nur, soweit an der Verarbeitung ein berechtigtes Interesse besteht (Art. 6 Abs. 1 lit. f DSGVO), Sie in die Datenverarbeitung eingewilligt haben (Art. 6 Abs. 1 lit. a DSGVO), die Verarbeitung für die Anbahnung, Begründung, inhaltliche Ausgestaltung oder Änderung eines Rechtsverhältnisses zwischen Ihnen und uns erforderlich sind (Art. 6 Abs. 1 lit. b DSGVO) oder eine sonstige Rechtsnorm die Verarbeitung gestattet. Ihre personenbezogenen Daten verbleiben bei uns, bis Sie uns zur Löschung auffordern, Ihre Einwilligung zur Speicherung widerrufen oder der Zweck für die Datenspeicherung entfällt (z.B. nach abgeschlossener Bearbeitung Ihres Anliegens). Zwingende gesetzliche Bestimmungen – insbesondere steuer- und handelsrechtliche Aufbewahrungsfristen – bleiben unberührt. Sie haben jederzeit das Recht, unentgeltlich Auskunft über Herkunft, Empfänger und Zweck Ihrer gespeicherten personenbezogenen Daten zu erhalten. Ihnen steht außerdem ein Recht auf Widerspruch, auf Datenübertragbarkeit und ein Beschwerderecht bei der zuständigen Aufsichtsbehörde zu. Ferner können Sie die Berichtigung, die Löschung und unter bestimmten Umständen die Einschränkung der Verarbeitung Ihrer personenbezogenen Daten verlangen. Details entnehmen Sie unserer Datenschutzerklärung (https://www.xxxxx-xxxxx-xxxxx.de/datenschutz.html).
', true);
@header('Location: ../kontakt_info.html');
exit();
} else {
echo $form->checkAnswer(@$_POST['id'], @$_POST['answer']) ? 1 : 0;
}
}

// End of file

Jetzt müsstest du mir nochmal genau erklären wo ich diese Änderungen eintragen muss ???

Wenn es dann funktioniert, kann man diese PHP  "als imEmailForm - Kopie.php" und diese dann separat auf den Server kopieren, wenn sich daran nichts mehr ändert.

Danke schon mal für deine HILFE

Gruß

MCMACMASTER

Mehr lesen
Gepostet am von Klaus G.
Franz-Josef H.
Franz-Josef H.
Moderator

Andreas, ich glaube Du hast das falsch verstanden. Es geht um den Betreff in der vom Kontaktformular versendeten E-Mail. In dem Betreff soll der Inhalt einer Textzeile aus dem Kontaktformular stehen, die der "Kontaktsuchende" eingibt. Ich vermute mal, dass Marko die eingehenden E-Mails nach dem Inhalt des Betreff verarbeiten will. Deshalb nützt es ihm nichts, wenn der eingegebene Betreff-Text im E-Mail-Text steht.

Mehr lesen
Gepostet am von Franz-Josef H.
Franz-Josef H.
Franz-Josef H.
Moderator

Hallo Klaus,
Dein Betreff steht ja in der Zeile
$form->setField('Betreff:', @$_POST['imObjectForm_129_3'], '', false);

Die E-Mails etwas weiter unten werden mit den Anweisungen $form->mailToOwner (die Anfrage an Dich) bzw. mit $form->mailToCustomer (die Bestätigung an den Anfrager) erzeugt. Wobei innerhalb der Klammern () die Angaben zur Mail-Erstellung, getrennt durch Kommas, stehen. Das erste Feld ist die E-Mail des Absenders, das zweite die E-Mail des Empfängers, das dritte ist die Betreffzeile, danach folgt der Text der E-Mail.

$form->mailToOwner('***', '***', 'Anfrage per Kontaktformular', '', false);
$form->mailToCustomer('info@***', $_POST['imObjectForm_129_2'], 'Eingangsestätigung Ihrer Email', 'Vielen Dank für Ihre ElMail und Ihre Anfrage, die ich hiermit bestätige. usw.

In Deinem Fall müsstest Du nur den Text hinter dem zweiten Komma (bis zum dritten Komma) durch @$_POST['imObjectForm_129_3'] ersetzen.

Das mit dem Ablegen einer Kopie auf dem Server, um diese dann "griffbereit" zu haben ist eine gute Idee. Es muss nur einiges beachtet werden, wenn die Website mehrere Kontaktformulare hat. Andererseites kann man, wenn die Seite und das Kontaktformular sich nie ändern, die entsprechenden Dateien auf dem Server mit Schreibschutz versehen und somit vor dem versehentlichen Überschreiben schützen.

Mehr lesen
Gepostet am von Franz-Josef H.
Marko G.
Marko G.
User
Autor

Danke Franz-Josef für deine Hilfe ! Mir ist zwar nicht ganz klar warum es jetzt auf einmal geht und erst nicht aber im Moment funktioniert es jedenfalls bei mir auch. Ich drücke erst mal noch nicht den Thema-gelöst-Button und verfolge den Beitrag noch etwas, falls noch andere mit dem gleichen Problem noch etwas dazu schreiben wollen. 

Mehr lesen
Gepostet am von Marko G.
Franz-Josef H.
Franz-Josef H.
Moderator

Vielleicht waren im Browser-Cache noch die alten Seiten... 

Mehr lesen
Gepostet am von Franz-Josef H.
Marko G.
Marko G.
User
Autor

Browserdaten löschen hatte ich schon probierte und machte keinen Unterschied. Was ich jetzt anders mache ist in Filezilla auf der Seite wo die Datei auf der Festplatte ist vor zu aktualisieren und erst dann die Datei auf den Server zu ziehen. So richtig klar ist mir nur nicht warum es dann bei mir einen JavaScript-Fehler gab. Wenn dann hätte ich erwartet, dass ich eben die unveränderte Datei wieder hochlade und eben alles so ist als hätte ich nie was geändert. Der Dateinamen blieb bei mir immer gleich solang ich nur ein Formular hatte. Einfach nur immer imEmailForm.php. Wenn ich weitere Formulare hinzugefügt habe, sah die Datei auch in etwa so aus wie bei dir z.b imEmailForm_dz8vam86.php

Wie und wo kann man mit Websitex5Pro eigentlich einzelne Dateien hochladen ? Das wusste ich gar nicht, dass das geht und dann könnte ich auf Filezilla evtl. verzichten. 

Mehr lesen
Gepostet am von Marko G.
Franz-Josef H.
Franz-Josef H.
Moderator

Wenn Du auf "Export der Website ins Internet" bist kannst Du neben dem Feld mit dem Verzeichnisnamen auf das Ordnersymbol klicken. Im Folgefenster kannst Du Dateien löschen, hochladen usw. 

Mehr lesen
Gepostet am von Franz-Josef H.
Klaus G.
Klaus G.
User

Hallo zusammen,

nach ersten Test's scheint es zu funktionieren.

Ein DANKE an Franz-Josef coollaughing

An Marko:

Die ganze Serverarbeit erledige ich nur mit FileZilla, da ich hier den besseren Überblick habe und meine Dateien schneller auf den Server laden kann als mit der integrierten Lösung.

Also, nochmals DANKE für die Hilfe.

MCMACMASTER

Mehr lesen
Gepostet am von Klaus G.