RocketChat / Rocket.Chat

The communications platform that puts data protection first.
https://rocket.chat/
Other
40.12k stars 10.36k forks source link

Getting emails for every message when it isn't set to do so #10976

Closed HammyHavoc closed 5 years ago

HammyHavoc commented 6 years ago

Description:

Every user is getting emails for every message despite their configuration not being configured for this behaviour.

Server Setup Information:

Steps to Reproduce:

  1. Message someone

Expected behavior:

Not to get emails for every single message when it isn't configured for this.

Actual behavior:

Getting emails for every single message, even ones with no mentions whatsoever.

Relevant logs:

ravirajcm commented 6 years ago

We are facing the same issue with the snap. here are the details. Version 0.65.1 Database Migration 121 Deployment ID gaA4uaXzw3w4DwWXb Running Instances 1

Commit Hash 8349c36de01e14503bcdbc5d382b124568959de9 Date Wed May 30 09:57:01 2018 -0300 Branch HEAD Tag 0.65.1 Author Diego Sampaio Subject Merge pull request RocketChat/Rocket.Chat#10947 from RocketChat/release-0.65.1

to reproduce the issue follow steps mention by @HammyHavoc

jhonatanmorais commented 6 years ago

I'm facing the same issue.

Version 0.65.1 Database Migration 121 Database Migration Date Mon Jun 04 2018 19:41:18 GMT-0300 (Hora oficial do Brasil) Installed at Tue Jul 25 2017 18:55:08 GMT-0300 (Hora oficial do Brasil) Uptime 1 days, 15 hours, 41 seconds Deployment ID syZKLDmqKh4cEQg89 PID 1179 Running Instances 1 OpLog Disabled Commit Hash 8349c36de01e14503bcdbc5d382b124568959de9 Date Wed May 30 09:57:01 2018 -0300 Branch HEAD Tag 0.65.1 Author Diego Sampaio Subject Merge pull request RocketChat/Rocket.Chat#10947 from RocketChat/release-0.65.1

mcjwsk commented 6 years ago

@HammyHavoc I think it is related to the "Auto Away" feature which is enabled by default and configured to 0.3 s (probably this value was in minutes in previous versions).

kaiiiiiiiii commented 6 years ago

@DariuszMaciejewski "Idle Time Limit" was in milliseconds before it was changed to seconds :)

antoine-roux commented 6 years ago

Hello, I'm in the same case. What is annoying with this release is that the mail is not only sent if I am offline but also if I am just away...

In my french instance, the option is called "offline notification". So this is not what i'm expecting. Have a great day :)

sampaiodiego commented 6 years ago

you guys seems to talking about two different issues.

regarding the original one, we had an issue that user preferences were being lost that was fixed by https://github.com/RocketChat/Rocket.Chat/pull/11295 and released on 0.66.1 release.

I'll recommend you guys to update to release 0.66.2 which will be released very soon.

but if you guys have the personal setting Offline Email Notifications set to Every Mention/DM, you'll receive an email on that cases when you're also away.. That's the expected behavior, maybe the description is little bit misleading.

HammyHavoc commented 6 years ago

I think the problem is that email notifications send as soon as you're offline, which can be a little irritating when using a phone; there should be a user/server configurable delay as to how many minutes later an unread message gets emailed when you're offline, or if you've been offline for more than x time.

I.e. if a user has been offline for an hour, send it through immediately. Has to be a sensible sliding scale that can be adjusted.

Is there any way of telling whether a push notification has been delivered to a device?

sampaiodiego commented 6 years ago

thanks @HammyHavoc .. so it looks like a duplicate of RocketChat/Rocket.Chat#6079 and maybe RocketChat/feature-requests#787

there are other issues related to email frequency, they're all improvements we plan to do on mid-long term.

Is there any way of telling whether a push notification has been delivered to a device?

there is no way.. Google's FCM and Apple's push service does not have this capability.

mddvul22 commented 6 years ago

but if you guys have the personal setting Offline Email Notifications set to Every Mention/DM, you'll receive an email on that cases when you're also away.. That's the expected behavior, maybe the description is little bit misleading.

@sampaiodiego Is this a recent change? Until very recently (believe it was when we upgraded to 0.65.x), our users previously only received offline emails when they were truly offline. Now it is happening when they are online, but auto-away. Was this a recent change? This seems to be a very poor set of options. As one example, in an office environment, people can be at their desk and on a phone call. The idle timer marks them away and they start getting emails, even though they are still online and still in front of their computer. Or when they simply step away for 5 minutes to use the toilet. They return to their computer and now have emails and messages waiting for them. There should be a difference for email notifications between auto-away and offline. Those two things should NOT be treated as synonymous.

jhonatanmorais commented 6 years ago

@mddvul22 You're right, perfect description about the situation! Apparently this behavior started after I updated to 0.65.1.

sampaiodiego commented 6 years ago

@mddvul22 thanks for the valuable input.. this might have been changed by this recently, but I'm not sure exiting installations should be affected by that change.

anyways these cannot be treated differently IMO. let's say you left your computer blocked but turned on by mistake during the whole night, you'll be auto marked as away, but from what you said you'd not like to receive any email during the night.. is that a good behavior?

so rocket.chat gives you the ability to customize all this behaviors to fit your use if you don't like the default behavior. so you have a whole section under Administration panel sub-menu Accounts called Default User Preferences, where you can change the behavior to all your server's users. From there you can change the default idle time limit (seems you'd like to increase the default value of 5 minutes) and the email notification preference.

I hope you have enough configuration options to help you get the best from rocket.chat and your team =)

mddvul22 commented 6 years ago

@sampaiodiego if a user leaves their computer blocked, but turned on by mistake during the whole night and they are marked auto-away, shouldn't it be up to that user whether they receive notifications? I don't understand why there can't be an email notification option that allows users to select when:

Example: Every Mention/DM when status is Offline Every Mention/DM when status is Away Every Mention/DM when status is Offline/Away

Again, off-line does not equal away. Currently, this is forcing users to either 1) accept notifications for both, 2) disable all email notifications, or 3) disable auto-away.

The administrative defaults don't address this in an acceptable way.

Surely, there has to be a better way.

rodrigok commented 6 years ago

@mddvul22 we are open to accept contributions to improve the notifications logic, but by now we understand that I understand that we have enough configurations and we even need to make it simpler to the users.

If the user don't want to be considered away he can increase his away time at profile page, by now the away exists exactly to enable notifications when a user is away from the computer.

DerTomm commented 6 years ago

I also agree that the recent notification changes are not optimal. A lot of our users started complaining that they receive notification emails despite being logged on - just because they are in a Skype conference and RocketChat marks them as away automatically. Disabling the Auto away feature is not a solution either as we have users being on their computers only for short periods.

let's say you left your computer blocked but turned on by mistake during the whole night, you'll be auto marked as away, but from what you said you'd not like to receive any email during the night.. is that a good behavior?

I say yes - distinguishing between away and offline should be done in this case. Of cource an 'Auto inactivity logout' feature would even be better. There are people leaving their computer on (and stay logged in) during their vacations - which is quite annoying for others believing that those are only away for some minutes...

The notification options suggested by @mddvul22 (Every Mention/DM offline || away || offline+away) would be a good solution for everyone I think.

sandys commented 6 years ago

hi guys, this feature is highly critical for us to be figured out right. We are moving from Stride, where this feature caused much discussion and multiple bugs. https://jira.atlassian.com/browse/STRIDE-17 https://jira.atlassian.com/browse/STRIDE-2411

Essentially, for highly critical chatops we would want email notifications of idle (regardless of mute/DND settings). This will have impact on https://github.com/RocketChat/Rocket.Chat/issues/6418 https://github.com/RocketChat/Rocket.Chat/pull/8806

We would request that idle settings and DND behavior should be subject to admin overrides (should they choose to do so) in critical chatops setups.

fcoppolani commented 6 years ago

Hi guys, I can only agree with DerTomm. Once upgraded to the lastest version (0.69.2) a lot of users complained about this change (that I was not aware of), I had to disable the smtp relay to give me time to understand what was going on.... A better communication on this would have been wonderful. And indeed a way of setting up the notification option of @mddvul22 looks good. May I add that in users interface it is written "Offline Email Notifications" and not "Away Email Notifications", kind of confusing From now on, I have no way of changing anything for all users to avoid this situation. Thanks in advance for keeping working on this matter. Regards

fcoppolani commented 5 years ago

Hi, coming back to this subject, deactivating all email notifications is not suitable for all my users. Do you have any tips (mongo script ?) to change the idle time for all users (maybe select only those who have 300, the default) ? Thanks in advance.

sampaiodiego commented 5 years ago

@fcoppolani you can change the default idle time for those who haven't changed it manually. it's under Admin > Accounts > Default User Preferences > Idle Time Limit

fcoppolani commented 5 years ago

@sampaiodiego Thanks but it doesn't work for idle time, in fact I would work if thus users did'nt change any of their preferences. But as a user as soon as you modify something (let say the emojii preferences), Rocket.Chat stores all input event if you don't change them. Even for those who haven't change the idletime (but changed something in their preferences) it will not change a thing... (I tested it on my staging platform to be sure).

fcoppolani commented 5 years ago

After some time I found what I was looking for :

var bulk = db.users.initializeUnorderedBulkOp()
bulk.find({"settings.preferences.idleTimeLimit":300}).update( { $set: { "settings.preferences.idleTimeLimit": 7200  } } )
bulk.execute()

This set the Idle time to 2 hours, now I 'just' have to explain to my user that in that peculiar case "off-line" means "away"

geekgonecrazy commented 5 years ago

The original issue seems to be resolved. Closing