Email notification for messages

Me and some of our users are having trouble understanding the difference between these 2 options for receiving email notifications for messages:

and

From my tests, even if selecting ‘always’, no email notifications are sent if the person is around browsing the forum — even if the person did not visit their messages or opened the notifications dropdown.

Here’s a skipped email for someone who has selected to ‘always’ receive email notifications for messages:

The person was browsing the forum, but did not check their messages during the 10m period (as we were aiming to understand the behavior).

So, if the ‘always’ cancels the email notifications when the person is using Discourse, what’s the difference for the ‘only when away’?

I’m aware the risk of having it as ‘always’ since perhaps too many emails notifications may be received by whoever chooses to use it. But, right now, it does not seems to be doing what one would expect ‘always’ to do. Is this behavior the intended one?

2 Likes

When the “Send me an email when someone messages me” user option is set to “Always”, the only time a user should not get sent an email for a PM is if the user has already read the message. In that case, the Skip Reason in the logs should be “The notification this email is about has already been read.” That should only occur if the user has actually visited the message on the site, just viewing the notification in the dropdown menu should not cause the PM to be skipped.

The “User was seen recently” Skip Reason should not be displayed for the recipients of PMs who have set their messaging level to “Always.” Are you sure that the skipped message in your screenshot is for a PM?

4 Likes

What you describe makes sense, but it is not what we are seeing with the latest stable.

To double check, I reproduced it again just now.

Sent a message. Receiver opened the message (before the 10m) and the email notification got cancelled immediately:

Tested with another message, but this time the message was not read immediately — receiver continued to browse the forum (without visiting messages); the email notification was cancelled exactly like above. From what I can see, it got cancelled almost immediately, just because the person was using the forum. No difference that I can spot.

Not sure if I understood the question. Isn’t that user_private_message on the screenshot only for private messages?

Not sure if this helps, but the only times I’m seeing Skipped emails with “The notification this email is about has already been read.” are for user_mentioned emails and not user_private_message ones (at least on our list of Skipped emails).

Can I provide any other info?

3 Likes

That makes sense, I’m testing this on the tests-passed branch.

Yes it is. That’s clearly a PM in your screenshot. For a user who has selected to be always emailed when someone messages them, the email should get sent as long as they haven’t read the PM through the Discourse user interface.

3 Likes

I don’t have an easy place to reproduce this with a tests-passed setup, so I had someone message me here on meta which I hope is good enough. I was using meta when the person sent the message and I continued to browse meta for over 10m (without checking messages): no email notification arrived in the meantime and I have it set to ‘always’ for private messages. Seems the same behavior I described with stable.

Can you perhaps check on the logs of Skipped emails what happened to the notification of the last message on this?

Could the mobile push notification for the message cancel the email notification? I got that immediately (not after 10m), but have not opened it (nor opened the DiscourseHub app) during the 10m interval.

2 Likes

I’m not seeing an entry for that message in either the Skipped or Sent email logs on Meta. I’m not sure what the reason for that is, but the reply to your message that could have generated an email is

hello hello hello hello hello hello hello hello

I’m not sure if posting the same word multiple times would trigger something that prevents an email from being sent.

I’ll look into this some more on my own site to make sure that emails are being sent as expected.

2 Likes

FWIW, I asked to be sent another message. This time, more normal looking.

Same behavior. As long I just keep browsing meta, I don’t get the email notification for the message. As of right now (15m passed), no email arrived and I still have the new message notification since I haven’t opened it.

Screenshot 2020-09-22 at 19.18.56

2 Likes

Can we repro this here on meta @tshenry?

2 Likes

So I’ll start by mentioning that we ship the default email messages level to be set as “always.” This is kind of surprising to me, but maybe the idea is that direct messages typically need as much exposure as possible.

Anyway, I just created a test account here on Meta and sent that account a PM. I continued to browse the forum under the test user account, ignoring the new message notification.

I checked the logs a couple minutes later and it looks like it is skipping:

That’s despite:

So to answer your question, I can indeed repro on meta!

7 Likes

We should maybe assign this one @sam?

6 Likes

Fixed via:

https://github.com/discourse/discourse/commit/3684337e4a77e561fcb9a7224248f0d0feb56bd9

Thanks for reporting this issue @mentalstring. :+1:

8 Likes

From a quick test here on meta, it does seem to work as expected now. Thank you for the fix :+1:

6 Likes