Kann man die Tabelle "newsletter_recipient" gefahrlos bereinigen (Einträge per SQL löschen)?

Bei mehreren Angriffen ist es Bots trotz captcha gelungen, ca. 300.000 Spam-Anmeldungen in die DB zu schieben (die OptIn-Mails wurden automatisch wegen Limit-Überlauf geblockt).
Die Tabelle „newsletter_recipient“ sieht dementsprechend übel aus - von der Darstellung im Admin ganz zu schweigen.

Ich konnte inzwischen verifizieren, dass alle Eintragungen, die als Status „notSet“ haben, Spam-Einträge sind.

Kann ich diese Einträge mit z.B. " WHERE status=‚notSet‘ " gefahrlos löschen - oder gibt es da irgendwelche Querverweise von/zu anderen Tabellen, die dadurch kaputt gehen würden??

Ich weiß - es gibt ein Plugin, das das diese Funktion hat (ein Plugin, das die Formulardaten z.b. auf BadWords prüft, wär mir lieber). Trotzdem hoffe ich, dass mir die Frage jemand beantworten kann.

TIA
Dieter

Es gibt mögliche Querverweise, siehe: platform/NewsletterRecipientDefinition.php at 264ca8687aa3e441dcddadd8d53c2edbeb98a987 · shopware/platform · GitHub

Hm… da werden zwar extern Referenzen wie Sprache, Verkaufskanal oder Anrede eingebunden, aber eine Verknüpfung nach außen scheint es nur mit „NewsletterRecipientTagDefinition“ zu geben (heißt in der DB so ähnlich :smiley: es gibt ja nur 2 Newsletter-relevante Tabellen). Die Tabelle ist aber leer, trotz vieler „echter“ registrierten (und bestätigter) Kunden. Keine Ahnung, wozu die gut ist.

Die Tabellen heißen eigentlich alle wie die Entities. Wenn nichts manuell geändert wurde oder per Flow automatisiert hinzugefügt, dann werden die anderen Tabellen vermutlich leer sein.

Alternativ einfach kurz ein Script schrieben, dass per Repository die Daten löscht, dann bist du 100% auf der sicheren Seite.

Tja… ich kenn mich zwar einigermaßen mit PHP und SQL aus, aber bei Symfony hab ich inzwischen das Handtuch geworfen - bei dem Dschungel aus Services, Routes, Context, Events und Co. bin ich raus.
Ich hab zwar auch schon ein, zwei Miniplugins geschrieben - aber daran, dass ich gerade erstmal Googeln musste, was ein Repository in Symfony ist, siehst Du, dass das wirklich Minimini-Plugins sind! :joy:

und dann noch delete, mehr ist es nicht wirklich.

Okay, mit dem Tutorial hab ich tatsächlich schon mal gearbeitet, ohne es allerdings wirklich zu verstehen (Aufbau eines Dropdowns mit den Lieferländern analog dem Versandkostenrechner im Warenkorb; funktioniert sogar und agiert bei uns als OSS-Modul^^).
Dann werd ich mir das Morgen nach der 2. Tasse Kaffe nochmal in Ruhe anschauen.

Danke für Deine Tipps!