Fehlerbehebung

Fehler „An error occurred while sending the message“ im Kontaktformular von PrestaShop

Geprüft am 3 Min. Lesezeit Formulare Fehler PrestaShop

Die Meldung An error occurred while sending the message, please try again. zeigt, dass das Modul contactform das Absenden abgelehnt hat, nennt aber für sich allein nicht die Ursache. In aktuellen Versionen kann sie erscheinen, wenn das Fallenfeld url Daten enthält oder das Token fehlt, nicht zur Sitzung passt oder abgelaufen ist.

Öffnen Sie das Formular frisch und führen Sie genau einen Test durch, während Sie die Anfrage unter Netzwerk / Network in den Entwicklertools des Browsers beobachten. Prüfen Sie, ob url und token gesendet werden, und notieren Sie die Versionen von PrestaShop, dem Modul contactform und dem Theme. Bei Modulversionen, die eine Gültigkeit von 600 Sekunden festlegen, kann auch ein Tab fehlschlagen, der länger offen war.

Wenn die Anfrage diese Felder nicht enthält, vergleichen Sie das Template des Moduls mit dem aktiven Override des Themes:

/themes/Nombre_Tema/modules/contactform/views/templates/widget/contactform.tpl

Die bevorzugte Lösung ist, das Theme zu aktualisieren oder beim Entwickler einen Override anzufordern, der zur installierten Version von contactform passt. Nur wenn Sie bestätigt haben, dass der Override veraltet ist und die Felder fehlen, fügen Sie vor der Absenden-Schaltfläche den entsprechenden Block aus dem offiziellen Template ein:

<style>
  input[name=url] {
    display: none !important;
  }
</style>
<input type="text" name="url" value="" />
<input type="hidden" name="token" value="{$token|escape:'htmlall':'UTF-8'}" />

Leeren Sie den Cache von PrestaShop und senden Sie erneut von einer frisch geladenen Seite. Wenn die Felder schon vorhanden waren, ändern Sie das Template nicht: Prüfen Sie die genaue Antwort, die Cookies und die Protokolle der Anwendung, bevor Sie den Fehler dem Theme zuschreiben.

Siehe das offizielle Template des Moduls contactform für die installierte Version.

Cache, Sitzung und Zustellung

Prüfen Sie, dass ein Seiten-Cache oder CDN das Formular nicht mit dem Token einer anderen Sitzung oder einem abgelaufenen Token wiederverwendet. Testen Sie von einer frisch geladenen Seite und behalten Sie die Cookies beim Absenden bei; entfernen Sie weder die Token-Prüfung noch das Fallenfeld, um die Annahme zu erzwingen.

Der gezeigte Block funktioniert nur, wenn diese Modulversion dem Template die Variable token bereitstellt. Vergleichen Sie mit dem Tag der installierten Version, nicht nur mit dem Zweig dev des Repositorys. Wenn das Formular angenommen wird, prüfen Sie auch das Ziel der Nachricht: Die bestandene Prüfung garantiert nicht, dass SMTP sie zustellt.

Das könnte Ihnen auch helfen

Stimmt etwas nicht oder hat sich etwas geändert? Erzählen Sie es uns, und wir prüfen es.