PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Automatische Paidmail-Empfang-deaktivierung bei X nicht bestätigten Mails



Rallef
21.07.2009, 17:36
Hallo,

ich weiss nicht ob oder wie es möglich sein könnte, aber folgendes kam mir in den Sinn:

Es kommt immer wieder vor, dass sich User bei meiner VMS 1.2 Seite den Paidmailempfang aktivieren, die Mails empfangen aber nicht besätigen - warum auch immer.

Ich habe schon einmal allen Usern den Empfang deaktiviert, damit sich diejenigen, die noch Mails wollen, den Mailempfang wieder selbst aktivieren, aber das halte ich für nicht besonders gut, da der ein oder andere User, der vielleicht vorher Mails bestätigt hat, das aktivieren vergisst oder ähnliches.

Jetzt habe ich mir überlegt, dass es vielleicht ganz praktisch bzw. sinnvoll wäre, dass nach X nicht bestätigten und bereits im Datum abgelaufenen Paidmails, der Mailempfang automatisch deaktiviert wird und vom User dann jederzeit wieder auf Empfangen gestellt werden kann, womit auch der Zähler, der die nicht bestätigten Mails zählt, wieder resettet wird.

Wäre so etwas möglich und wenn wie wäre es möglich?

Lokutos
21.07.2009, 17:55
hm das einfachste währe wohl nach zeit.

dazu legst du einfach eine neue spalte in vms_kontodaten an z.b. paidmaillast
und dan machst du in der Topframe_mail dort wo die kontobuchung statfindet

wenns n query ist also nicht kontobuchung(); sondern db_query(Update...
da machst du dan ... paidmaillast='.time():'
ansonsten musst du nen neuen einfügen

db_query('Update vms_kontodaten SET paidmaillast='.time().' Where uid= $uid limit1');

$uid musst du schauen selbiges wie bei der kontobuchung.


dan noch im tagescron folgendes einfügen
wenn die zeit in paidmaillast zu alt ist die tabelle emaildaten updaten.


MFG Lokutos

jpwfour
21.07.2009, 18:11
Möglich auf jeden Fall, nur hängt das ganz davon ab, wie du die Paidmails versendest.

Bspw. rein über die im Grundscript enthaltenen Funktionen:

Dann müsstest du die Einträge in der Tabelle: vms_paidmails_empfaenger
einige Tage "aufheben", und dann bspw. beim Versenden immer erstmal eine Abfrage machen:


SELECT COUNT(*) as anz, uid FROM vms_paidmails_empfaenger WHERE status!=1 AND gueltig < ".time()." GROUP BY uid HAVING COUNT(*) > 50 ORDER BY anz DESCUm so alle User, die mehr als 50 abgelaufene unbestätigte Paidmails haben, auszuwählen (und diese dann vom weiteren Versand ausnehmen).

So könnte man vorhandene Daten nutzen, hängt halt davon ab, wie lange diese Daten vorgehalten werden.

Andere Möglichkeit:

In vms_kontodaten gibt es ja schon pmails wo die Anzahl der bestätigten Mails gespeichert wird.

Einfach eine Spalte pmails2 hinzufügen, die beim Versand immer um 1 hochgesetzt wird.

So hast du je User eine Bestätigunsgrate.
(Sofern beide gleichzeitig bei 0 starten).

Andere Möglichkeit wäre, dem User bspw. in vms_kontodaten eine Spalte anzulegen lastpaidmail, in der beim Bestätigen einer Mail der aktuelle Timestamp gespeichert wird.

Dann könntest du regelmäßig einen Cron laufen lassen, der allen Usern, die länger als XX Tage keine Mail mehr bestätigt haben, den Empfang deaktiviert.

(da ist mir joschi zuvorgekommen :biggrin1:)


Leider gibt es bei Paidmails so viele unterschiedliche Systeme, da wird eine universelle Lösung schwierig.