Announce topic to send copy to sender - avoid repeated announcements

Started by OCJ, June 05, 2012, 09:52:04 AM

Previous topic - Next topic

OCJ

This is happening a lot these days - club members sending out their events to others use the 'Announce Topic' function but when they don't get a copy they keep repeating it which then produces a massive mail queue.

Apart from slowing everything down for us - other peoples mail gets stuck at the back, people are getting 3 or 4 copies of the same post. This is basically spam and worried that event messages could end up in spam folders or worse, our domain gets blacklisted for sending spam. The server might also reduce our hourly limit... delaying things even more.

Admin has to deal with complaints and run around deleting many pages of mail in the queue if lucky enough to catch them.

People expect to get a copy themselves ... no amount of notifications and explanation that you don't get a copy yourself seems to work. It would be much better if SMF sent one extra email to the sender so they know it went out and avoid thousands of repeat messages being sent to everyone else.

We need 'Announce Topic' functionality to get people notified of new events and important updates.


Arantor

I doubt it'll be implemented in the core but to change it, find Sources/Post.php, line 2249 or so:

// Select the email addresses for this batch.
$request = $smcFunc['db_query']('', '
SELECT mem.id_member, mem.email_address, mem.lngfile
FROM {db_prefix}members AS mem
WHERE mem.id_member != {int:current_member}' . (!empty($modSettings['allow_disableAnnounce']) ? '
AND mem.notify_announcements = {int:notify_announcements}' : '') . '
AND mem.is_activated = {int:is_activated}
AND (mem.id_group IN ({array_int:group_list}) OR mem.id_post_group IN ({array_int:group_list}) OR FIND_IN_SET({raw:additional_group_list}, mem.additional_groups) != 0)
AND mem.id_member > {int:start}
ORDER BY mem.id_member
LIMIT ' . $chunkSize,
array(
'current_member' => $user_info['id'],
'group_list' => $_POST['who'],
'notify_announcements' => 1,
'is_activated' => 1,
'start' => $context['start'],
'additional_group_list' => implode(', mem.additional_groups) != 0 OR FIND_IN_SET(', $_POST['who']),
)
);


Change this line:
'current_member' => $user_info['id'],

to
'current_member' => 0,



(it's easier than changing the rest of the query)

emanuele

* emanuele wonders if log the "announce topic" and avoid that is sent twice wouldn't be an option too...


Take a peek at what I'm doing! ;D




Hai bisogno di supporto in Italiano?

Aiutateci ad aiutarvi: spiegate bene il vostro problema: no, "non funziona" non è una spiegazione!!
1) Cosa fai,
2) cosa ti aspetti,
3) cosa ottieni.

Arantor

It's not actually an option, as per the above query, it actually expressly just filters out the sending user.

NanoSector

Add a check if it's announced already, and disable the button if it is? (if that isn't what emanuele said)
My Mods / Mod Builder - A tool to easily create mods / Blog
"I've heard from a reliable source that the Answer is 42. But, still no word on what the question is."

Arantor

That way lies madness... what happens if you want to reannounce a topic after a major change, say after a week? Then you'll need to implement a setting to figure out after how much time to purge that setting.

As opposed to just sending the sender an email.

emanuele

Quote from: Arantor on June 05, 2012, 03:16:30 PM
It's not actually an option, as per the above query, it actually expressly just filters out the sending user.
Well, I was thinking more along the line: in the function Post LEFT JOIN a log table where is recorded if the topic has been "announced" and if it has been already announced don't show the checkbox (and to be consistent repeat the LEFT JOIN in Post2 too), not in that query in particular.


Take a peek at what I'm doing! ;D




Hai bisogno di supporto in Italiano?

Aiutateci ad aiutarvi: spiegate bene il vostro problema: no, "non funziona" non è una spiegazione!!
1) Cosa fai,
2) cosa ti aspetti,
3) cosa ottieni.

Arantor

So you announce a topic. Under that logic you will never be able to announce that topic again, not even if - say - it's rules and you update them with new information.

There's no solution in that scenario for ever allowing users to re-announce a topic, and setting up some kind of 'you can announce it again in x days' will invariably cause more confusion than the current setup.

emanuele

Exceptions are the rules here! :P

Honestly I really think a sort of limit is necessary: give the announce topic permission to regular users means you are giving spammer the ability to spam all your members by email with a single post (don't know if this is the case, but I feel it's likely to be) and it will come from your forum.

I wouldn't see as terrible to limit the announce of each topic to 1 for everybody except admins (of course from that in the future people will ask for a permission, but at that time I'll not be interested in forum any more so it will not be my problem! :P)

Anyway, if you want to change the rules you can always write a new topic and announce the new topic.


Take a peek at what I'm doing! ;D




Hai bisogno di supporto in Italiano?

Aiutateci ad aiutarvi: spiegate bene il vostro problema: no, "non funziona" non è una spiegazione!!
1) Cosa fai,
2) cosa ti aspetti,
3) cosa ottieni.

OCJ

People often re-announce topics that have important updates - its useful. 
Great for club event management and flexible enough to limit it (only member groups) using permissions.

Its just that all the effort made to inform people about correct usage doesn't seem to work.  Easy to label people 'dumb' but its more a case of they are too lazy to read anything and basically don't care.  Using it like a mailing list (which they expect) that sends out a copy to everyone would go a long way to avoid misunderstandings by users ... 'user-proof'  specifications  :)

I will try the edit anyway - thanks for that!




OCJ


Arantor

QuotePeople often re-announce topics that have important updates - its useful. 
Great for club event management and flexible enough to limit it (only member groups) using permissions.

This is the basis of my objection about having it log whether something has been announced or not, because invariably you'll then want to clear that log.

QuoteEasy to label people 'dumb' but its more a case of they are too lazy to read anything and basically don't care. 

It's more of a life policy with me, unfortunately. I've seen too many cases where people don't read what's put in front of them etc.

What it might be prudent to do in the future is to fudge things so that the sender is the first to get it.

tpgames

Personally, I think that all announcements of events by non-moderators should be posted in only 1 forum named something like "Members Events" for all to read. Another forum I belonged to had this special forum and it worked very well. You could divide it by regions or however. And, then only the moderators and higher level people can send event notices if they so choose. This is because spammers are clever and will attack a site by taking advantage of however that feature is coded. Even people who seem ligit can do this.

Arantor

Having 'this has already been announced before', or even better keeping the time it was last announced, would certainly be workable :)

OCJ

QuotePersonally, I think that all announcements of events by non-moderators should be posted in only 1 forum named something like "Members Events" for all to read. Another forum I belonged to had this special forum and it worked very well. You could divide it by regions or however. And, then only the moderators and higher level people can send event notices if they so choose. This is because spammers are clever and will attack a site by taking advantage of however that feature is coded. Even people who seem ligit can do this.

It is used in an events board and newly registered users do not have the permission to enter it or use announce topic - only higher level groups.

Having moderators or only admin use it doesn't work for event groups - they have to be there online all the time to make sure events get sent out - not workable.
Its a simple case of people expecting to get a copy when it is announced. It would a lot of time for admin having to shut people out, explain, try and delete hundreds of emails from the queue... etc etc.
Some events are planned Friday evening so it is needs sending out  People dont log in every day or every few hours to check for new events.

emanuele

I'm not saying this should not be done (I don't care at all about the single email), I'm just saying that we are controlling how many PMs a member can send in 1 hour and how many members he can put in copy, but we are not checking how many announcements are sent by a single user in any time frame (i.e. a single user can spam any amount of announcements (the only indirect check is the spam flood on the creation of a new post and that's all as far as I can see).


Take a peek at what I'm doing! ;D




Hai bisogno di supporto in Italiano?

Aiutateci ad aiutarvi: spiegate bene il vostro problema: no, "non funziona" non è una spiegazione!!
1) Cosa fai,
2) cosa ti aspetti,
3) cosa ottieni.

NanoSector

Maybe a switch for that edit that sends a copy to the sender will work, like "Send a copy to the sender" when announcing a topic?

Although something as Arantor said will wokr out too.
My Mods / Mod Builder - A tool to easily create mods / Blog
"I've heard from a reliable source that the Answer is 42. But, still no word on what the question is."

Arantor

Personally I think it should just be sent to the user anyway, not needing a switch (because I think that's just overly complicating things) and that there isn't really any need to permission-control it either.

Announcing isn't something allowed for all groups by default (unlike PMs) and if you have a member that abuses it, revoke their permission, simple as that. There is no need to make this any more complicated than it already is when all the tools are already available to do the job.

emanuele

commit b7a8a438e7135353e8e66be3bc3b8037909977ec
Author: emanuele
Date:   Mon Jul 2 2012

    Let's send the announcement to the announcer too [Topic 478383]

And:
commit 926dd292d84f56507ce5f54be8446502a3cc85b4
Author: emanuele
Date:   Tue Jul 3 2012

    Logging the announce action and show a warning when editing the first message of the topic (NOT TESTED) [Topic  478383]

Though I was too lazy to create yet another info box, so I used a notice message (that says "an error occurred"), well it's in its own branch, so I'm not even sure it will be integrated. :P


Take a peek at what I'm doing! ;D




Hai bisogno di supporto in Italiano?

Aiutateci ad aiutarvi: spiegate bene il vostro problema: no, "non funziona" non è una spiegazione!!
1) Cosa fai,
2) cosa ti aspetti,
3) cosa ottieni.

OCJ

I didnt want to bother you but cant find an answer to a similar problem... the same situation exits with notify. A poster does not receive a copy if the board is set to notify everyone. Is there a quick code fix?

I'm still looking for a dumbproof system for members to safely send out events/ get notified.  One idea is the notify group mod but same trouble as announce topic - the sender/poster doesnt get a copy.


I'm still, slightly, anxiously waiting with a fading hope my test topic notification is still somewhere out there on its way to me. Of course its not. Members would be banging on all post buttons by now if they didnt get a copy to show it went out.

Advertisement: