How do you prevent email to a "dormant" user


(Andrew Waugh) #1

Our forum was created by importing a long running forum with 1.8 million posts, and about 34K user accounts. A great many of the user accounts are “dormant” in the sense that that account hasn’t been activated since we migrated to discourse.

If a user mentions or PMs one of those accounts I get a bounce (if the email address is no longer valid), but otherwise the mail goes out.

We don’t want to anonymize the historical posts, or deactivate any accounts (The historical content may include useful information and some of the users may come back), what I would like to be able to do is inform the user sending the PM that the account isn’t active.

Something like a popup which says:

“CodingHorror” hasn’t been active since 1998-3-4, so he probably won’t still be interested in buying hamsters"


(Sam Saffron) #2

Maybe set the accounts as “active” = false, that way they will have to re-validate email to become active and no emails etc will be sent to them. Clearly requires some testing, but that is my recommendation here.


(Andrew Waugh) #3

Hmn…

34K users, about 1200 have reactivated their accounts…

If I knew how I would write a post migration plugin. It would include things like:

Find users with similar usernames/emails, select checkboxes next to that list, then "Assign all posts/topics to user “X”. (i.e. merge user accounts, then rebake, then delete the old accounts)

Find users inactive since (date), modify them (set inactive etc)

Not complaining, just kind of regretting not knowing much about programming.


(Jay Pfaffman) #4

That is exceptionally hard to do right.

That seems like a pretty good idea.

Most import scripts do correctly set the last-visited field of the user record. You can tweak delete digest email after days (which I think has a confusing name–it’s explanation is “Suppress summary emails for users not seen on the site for more than (n) days.”) Though it doesn’t disable old users, you can tweak that variable so that they won’t be bothered.