Wir erhalten immer mehr von Kunden die Nachricht, dass die Kontaktformular mit Formhandler und einem älteren Bild-Captcha (captcha, sr_freecap usw.) Probleme machen und immer mehr E-Mail Spam auftaucht.
Hier haben wir leider noch nicht die Erweiterung powermail testen können, aber hier hat uns der Entwickler von Powermail einen Anleitungs-Link geschickt:
Standard: https://github.com/einpraegsam/powermailrecaptcha
Als Lösung verwenden wir nun das Google reCaptcha und möchten Euch kurz einen Einblick dazu geben:
Der Formhandler unterstützt soweit schon das Google-Captcha, hier findet Ihr in der HTML Datei: mastertemplate.html folgenden HTML-Code:
<!-- ###master_spamprotection-jm_recaptcha### -->
<div class="row">
<div class="large-12 columns">
<label class="inline ###is_error_recaptcha_response_field###">###LLL:captcha### *</label>
</div>
<div class="large-12 columns">
###RECAPTCHA###
###error_recaptcha_response_field###
</div>
</div>
<!-- ###master_spamprotection-jm_recaptcha### -->
Diesen Code könnt Ihr nach belieben anpassen.
In die HTML-Datei: step-1.html müsst Ihr nun noch den Marker hinzufügen:
###master_spamprotection-jm_recaptcha###
Installiert nun folgende TYPO3 Extension: jm_recaptcha
Hier ist es wichtig, dass Ihr noch eine Google-API Key beantragt:
https://www.google.com/recaptcha/admin
Hier tragt Ihr bei „Label“ am besten den Domain-Namen ein. Ich verwende die „reCAPTCHA, Version 2“ und dann noch die URL in das Feld „Domains“ eintragen: example.de
Anschließend noch die Nutzungsbedingungen akzeptieren und auf „registrieren“ klicken.
Die API-Codes tragt Ihr dann in das TYPOSCRIPT Setup ein:
plugin.tx_jmrecaptcha {
public_key = xXxxxXXXXxxUAAAAAH9Ma-XXxxXXXXxxXX
private_key = xXxxxXXXXxxUAAAAAChWfslXxXXXXxxXXXX
}
Damit nun auch das neue Captcha-Feld als „Pflichtfeld“ erkannt wird, müssen wir noch im TYPOSCRIPT von der Formhandler-Erweiterung die validators ändern.
recaptcha_response_field.errorCheck.1 = jmRecaptcha
Als Beispiel meine Config:
validators {
1.class = Validator_Default
1.config.fieldConf {
lastname.errorCheck.1 = required
email.errorCheck.1 = required
email.errorCheck.2 = email
message.errorCheck.1 = required
#captchafield.errorCheck.1 = required
#freecapfield.errorCheck.1 = required
#freecapfield.errorCheck.2 = srFreecap
recaptcha_response_field.errorCheck.1 = jmRecaptcha
}
}
Nun sollte schon alles auf der Formular-Seite passen.
Die passenden Spracheinstellungen kann hier in der Datei angepasst werden: lang.xml
Hier benötigen wir noch das passende Sprach-Label für die Fehlernachricht. „error_recaptcha_response_field_jmRecaptcha“
<label index="error_recaptcha_response_field_jmRecaptcha">Bitte geben Sie die Sicherheitsabfrage an!</label>
Für Powermail gibt es nun auch eine Lösung/Erweiterung:
https://github.com/einpraegsam/powermailrecaptcha
Ursprünglich erschienen am 22.03.2017 auf typo3-probleme.de.