Hallo Dirk,
- In dieser eMail wird sich außerdem ein "Ignore-Link" befinden: Wird dieser angeklickt, wird der Status der eMail-Adresse auf "gesperrt" gesetzt und zukünftig für sämtliche Aktionen im Bezug auf den Newsletter ignoriert. Ein "Spam-Schutz" quasi. Die entsprechende Person wird sich nur dann wieder für meinen Newsletter anmelden können, wenn sie mir eine persönliche eMail schickt und ich den Status von Hand ändere.
Bin ich dagegen. Ich würde vermutlich nicht auf so einen Ignore-Link klicken. Nimm' ihn lieber raus. Sage dem Benutzer einfach, er soll die Mail ignorieren, falls er sie nicht angefordert hat.
Gegenvorschlag (lehnt sich an Deinem an):
Vorneweg: DB-Struktur:
Tabelle 1: Newsletter
email, status, freischaltcode, bis-gesperrt
Tabelle 2: SPAM-Historie
email, datum/uhrzeit, ip, damaliger status
status: Aktiv, Auf Bestätigung wartend, Fast-Gesperrt, Gesperrt
1. Der Benutzer oder Spammer gibt (s)eine Emailadresse in das Formular ein.
2. Das Script prüft, ob in der DB schon ein Eintrag für diese Email enthalten ist. Wenn die Email noch nicht drinnen ist, dann wird ein Eintrag in der Tabelle Newsletter erzeugt mit der Email, dem Status "Auf Bestätigung wartend" und dem Freischaltcode und die Email wird geschickt.
Wenn die Email schon vorhanden ist, dann hängt es vom Status ab:
Aktiv: Es wird die Standardfloskel "Eingetragen" ausgespuckt aber keine Email geschickt. (Damit niemand herausbekommt, wer alles drin ist)
Auf Bestätigung wartend: Es wird hingewiesen, dass er schon auf Bestätigung wartet. Ein Eintrag in der SPAM-Historie wird sicherheitshalber erstellt. Keine Email.
Fast-Gesperrt/Gesperrt: Es wird hingewiesen, dass er schon auf Bestätigung wartet und wegen mehrmaligem Eintragens gesperrt wurde. Keine Email. Eintrag in SPAM-Historie. In bis-gesperrt wird das Heutige Datum + 2 Wochen eingetragen.
Wenn jemand auf den Aktivierungslink klickt und der Eintrag "Auf Bestätigung wartend" oder Fast-Gesperrt ist, dann wird die Email noch aktiviert. Wenn der Status Gesperrt ist, dann wird eine entsprechende Meldung ausgegeben, dass er es in zwei Wochen noch mal versuchen solle. (ich meine, wenn jemand so blöd ist und *drei* Mal auf Submit klickt, dann ist er selbst schuld)
Wenn jemand sich austragen will, dann wird der Eintrag in der Tabelle Newsletter gelöscht, jedoch die SPAM-Historie beibehalten.
Ich denke, eine zeitliche Sperre reicht aus, denn alle 2 Wochen eine unerwünschte Mail ist für Spammer wirklich witzlos - die suchen sich was anderes.
Hoffentlich schreibe ich nicht zu wirr... ;-)
P.S. : Sollte mein System funktionieren, stelle ich es gerne als Feature-Artikel öffentlich zur Verfügung, wenn es gewünscht wird. Ich möchte nur schonmal vorher drauf hinweisen, dass ich kein PHP-Profi bin, und sicherlich ganz schlimmes Code-Durcheinander produzieren werde :-)
Zum Glück werden Feature-Artikel korrekturgelesen. ;-)
Grüße,
Christian