SMF Development > Applied or Declined Requests

Announce topic to send copy to sender - avoid repeated announcements

(1/5) > >>

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.

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

--- Code: --- // 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,
'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']),
--- End code ---

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

'current_member' => 0,

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

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

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

Add a check if it's announced already, and disable the button if it is? (if that isn't what emanuele said)


[0] Message Index

[#] Next page

Go to full version