Jump to content

Flood control for PMs


DavidW

Recommended Posts

We've updated our forums with the latest patch from the developer. It's now possible to send a PM only once every five minutes - with luck, that should (a) be at most a very slight inconvenience for real users, but (b) stop the spam bot from PMing the entire membership list.

 

We'll have to keep monitoring this. It may be that 5 minutes isn't the ideal length of time, and we have to adjust it up or (more likely) down. And if you do still find you're getting spam, let an admin know.

Link to comment

Well, perhaps 5 PMs over 5 minutes, as whenever I might update my mod, I try to send PMs to all my testers and Lemernis, so it would only be an inconvenience in that circumstance.

 

For general use, I don't really use the PM function.

 

Icen

Link to comment
Well, perhaps 5 PMs over 5 minutes, as whenever I might update my mod, I try to send PMs to all my testers and Lemernis, so it would only be an inconvenience in that circumstance.

Hasn't got that functionality, sorry. Though I'm pretty sure nothing stops you sending the same PM to several (though not 10,000!) people at once.

Link to comment

You guys might also want to delete the PMs that already have been sent--they're still doing damage as they are still in everybody's PM inboxes.

 

Use these SQL queries:

DELETE FROM `ibf_message_topics` WHERE `mt_from_id` = 12345;
DELETE FROM `ibf_message_text` WHERE `msg_author_id` = 12345;

...where "12345" is the id of the member in question. Since you've already deleted the members, you'll have to go into the database and fetch the member id unless you've saved it somewhere. The queries above also assumes the table prefix is "ibf_," which is the default.

 

Be careful with the queries, though. Typos or wrong implementation can cause every single PM in the database to be erased.

Link to comment
You guys might also want to delete the PMs that already have been sent--they're still doing damage as they are still in everybody's PM inboxes.

 

Use these SQL queries:

DELETE FROM `ibf_message_topics` WHERE `mt_from_id` = 12345;
DELETE FROM `ibf_message_text` WHERE `msg_author_id` = 12345;

...where "12345" is the id of the member in question. Since you've already deleted the members, you'll have to go into the database and fetch the member id unless you've saved it somewhere. The queries above also assumes the table prefix is "ibf_," which is the default.

 

Be careful with the queries, though. Typos or wrong implementation can cause every single PM in the database to be erased.

You spend $300 on IPB and it doesn't have ON DELETE CASCADE?

Link to comment

No, but don't blame that on IPB. You need a foreign key for ON DELETE * to work, and in MySQL, foreign keys are only allowed on InnoDB tables. Because of several reasons--including compatibility concerns--IPB (and numerous other software) ships with MyISAM as the default engine, where foreign keys aren't allowed.

Link to comment

I'm sure there is an appropriate sql to delete all orphaned messages.

 

something like:

 

DELETE FROM `ibf_message_topics` WHERE `mt_from_id` not in (SELECT 'ids' from users);

 

This is just an idea, i don't know the exact syntax or database schema.

 

Also: since the changes, i don't see my outgoing messages. I'm unsure if they really go out or not. (I send messages rarely, once in a month or so).

Link to comment
Also: since the changes, i don't see my outgoing messages. I'm unsure if they really go out or not. (I send messages rarely, once in a month or so).

Get some friends who reply to messages. :rolleyes:

 

If you can remember to check the 'Add a copy of this message to my sent items folder', you should be able to tell when they work. There's also that message tracking option that will show you your sent messages and whether they've been opened yet. You can use the PM system to send yourself some spam if you want to test it out.

Link to comment
I'm sure there is an appropriate sql to delete all orphaned messages.

 

something like:

 

DELETE FROM `ibf_message_topics` WHERE `mt_from_id` not in (SELECT 'ids' from users);

Not sure if that's a good idea. The IE modding community has had its fair share of hissy fits, with users deleting their accounts only to come back a week later to create it anew. In most of those cases, they've been assigned new ids when re-registering, so all of their old PMs would be "orphaned." I know I probably have a good hundred or so of PMs from members who subsequently deleted their accounts on SHS, as we historically deleted any member on their request. I seem to recall Cam doing the same over here.

 

I would also really, really strongly discourage G3 admins from using subqueries in a DELETE query on a production database--unless they know exactly what they're doing. Bad Things Will Happen™.

 

In any case, none of this seems to have changed anything as the PMs still are in everybody's inboxes. :rolleyes:

Link to comment

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...