Send email to non registered user in a group

Any help?
I don’t know how to find some info about it but seems strange that discourse don’t inform the anonymous users.

So after digging a bit the guest users receive emails from discourse in case the email is not accepted like for spam or it is too short but in the logs aren’t reported any errors.

You have confused anonymous users with staged users.

If the reply email has been sent and has been bounced it is possible that you will find the error in Emails> Bounced > Email type column

By clicking on the email type error you may see the response from the email provider (generally near the end of the Subject Body:

For example

<my-address@example.com>: Host or domain name not found. Name service error for
    name=example.com type=AAAA: Host not found

This can help you figure out where the problem is.

2 Likes

Thanks but that page with bounced email is empty in our instance.
Anyway so what is kind of user the one that send an email but is not registered for a category that is allowing.

If it replies to emails that arrive in its email inbox from the site but is not registered, it is a staged user.

Ok, now is clear. We have staged users but that part Automatically watches all messages it participates in and receives notifications of replies is not working to us.
In Discourse logs there isn’t any error anywhere that report issues we are trying to replicate to a new instance with the same settings.

I also seem to be able to replicate this behaviour. A staged user will be created by emailing the category’s topic, but they will not get emails for replies to their topic. SMTP is working across all of Discourse, but for the staged users, there is no log of any sort.

Discourse v: 2.7.0.beta6 (7e2b7bdd78)

1 Like

It is confirmed that is a bug so waiting for some feedback.

What is it you are trying to achieve exactly? It seems odd to me that you are allowing anonymous users start topics by emailing them into the category, and then expecting other members yo then reply. Shouldn’t these people be joining the community first and then posting to the forum?

Alternatively, you can create groups with invoices and slow them to receive email, and your staff can then reply to them. This is what we do.

We have a support category for the Italian Linux society association where users not registered can ask for help. Now is an email, so we have a group of volunteers doing it, but we want to move in the forum so also other people from the community can help with that and be transparent for it.

The registration is under the SSO in SAML integrate in discourse so the issue for us is that discourse don’t send any email to the staged user that created the thread when people reply to it.

There are a lot of people that prefer to send emails (this email exists since years and is public also for people outside the community) also without having an account, and we are allowing just in this category for this purpose and helping all the people doing the migration to the platform.

1 Like

(sorry about my funny typos above - will correct them. My phone does a terrible time autocompleting words sometimes…)

Sounds interesting. I think you are pushing the limits of what staged user functionality is intended for. But I guess we do allow this setting for categories, which creates staged users, so your assumption is that these staged user should be getting replies to their topics? I’m not sure that’s an assumption shared by the team, or by other sites using this setting. I think that’s a setting meant to allow a forum category to mirror a mailing list, even when subscribers of that mailing list are not all signed up on the forum.

Screen Shot 2021-04-12 at 11.27.33 AM

I’d suggest you try a few other things.

(1) if you are admin, you can take a look at a staged user’s email and notification settings. Maybe some of the default user settings are not compatible with your way of working. For example, the “only email me when away” setting might need to be set to “always” on your site. Same thing with “when I post in a topic, set that topic to tracking” maybe needs to be set to “watching”. When you are tracking, you won’t get replies except to your own posts.

(2) you might consider using a group inbox instead for these support requests from anonymous emails. They likely will like be happy with having their requests showing up in google searches anyway. You could then use what you learn to start new topics in the forum, with personally identifiable details removed.

If the above doesn’t satisfy you, maybe there is a bug worth looking into dealing with the category settings and staged users. Someone else on my team will need to decide that…

1 Like

Looking at Description of various user states in Discourse (Admin / Moderator / Staff / Developer / Other) this should be the common behavior in Discourse. Anyway the user should get something from Discourse like a message to the link to the thread or an alert that the forum can customize otherwise the feature is not so useful. It is like a contact form without chance to write to the user that started.

  1. We checked in that, when the staged user is validated to get emails from discourse to get something with the same settings (also changing them). Seems that as staged user doesn’t get anything from discourse at all and there are no errors or anything in the logs.

  2. I cannot find anything about the group box on Google for Discourse (why there isn’t a documentation outside the forum and the few pages on GitHub? But this is a more personal rant). We want that users of the forum can join in that category, and I am not sure if this fit our needs, or it is easy to use compared toa category.

You’ve done some great research on this! Sorry the behavior is a bit unclear. I did a bit of testing and was able to get this working on my site:

  • enable staged users
  • create category with custom incoming email address, enable “Accept emails from anonymous users with no accounts” setting
  • send an email to the category from an email address not already associated with a user
  • see post arrive in the category, staged user is created
  • edit staged user’s preferences and change " Send me an email when someone quotes me, replies to my post, mentions my @username, or invites me to a topic" to ALWAYS.

Can you try that on your site? If it doesn’t work, there must be some other admin settings that are different. I am not sure how you can deal with this in production because it’s not possible to set default settings for staged users that are different from default registered users. :thinking:

FYI, I was in the same situation as you a few years ago, as you can see in the related topics linked below. The tl;dr on this is that staged user functionality is better supported in group PMs than in categories/topics. Staged users are basically just there so staff can engage with people by email in group inboxes, to provide support. This is how the discourse team uses it. Staged users don’t log in so it’s accidental that they even have user preferences at all, and messing with their preferences can have unintended consequences. Meanwhile we want people to create an account and log in to participate in community discussions, so it’s counter productive to add support for staged users to participate in topics. I think it was added for some sites wanting to mirror mailing lists, or wanting to use discourse as an archive for their mailing list.

To be honest, I don’t know if this is a bug and if it is a bug what the fix is. Changing these defaults would work to allow sites like yours to leverage the accidental functionality for your use case:

  • staged users watch every message and every topic they are in (like messages)
  • staged users have “send me an email when someone quotes me, replies to my post, mentions my @username, or invites me to a topic” set to ALWAYS

Alternatively, we could double down on staged users only being used for messages, not topics, and remove the “accept emails from anonymous users with no accounts” from the category settings. It could be made a hidden setting if it is required by some sites for whatever historical reason, likely related to mailing list mirroring.

Hope this helps move your forward a bit. :wink:

1 Like

I am looking to enable this as default for all the users so we can avoid any troubles (I just looking for the settings in the discourse panel but I cannot find yet).

it’s the default email level admin setting. Note that this means that all your users that sign up from now on will start getting notifications by email even when they are logged in.

So that default was already defined to all the users…

disable mailing list mode
Disallow users from enabling mailing list mode (prevents any mailing list emails from being sent.)

It was enabled so I disabled it now.

Also the user that we are using for tests already has that parameter as Always.
Anyway this changes in our case didn’t fixed.

I am wondering now why users don’t receive any emails like register to reply as example.

This issue has nothing to do with mailing list mode. Maybe try creating a new test user with a completely different email address, and follow my replication steps above?

Maybe it’s time for you to post to #marketplace to request help with your setup from a consultant. There are many clever people here on meta offering their services who can help with troubleshooting and any customizations you might need to suit your use case.

I was thinking that an easy solution is to email staged users with a link to the thread and an invitation to register to Discourse.

So I am looking for plugins, but there isn’t anything for that except those:

This is a great idea, but… how many of these emails are you getting? Is it worth the effort to create all this automation? And honestly, in my view it is a bit odd to post an email someone sends to a public forum. I would be annoyed if that happened to me! And so I don’t think this is going to be supported in core Discourse.

If I were you, I’d have these emails delivered to a group inbox monitored by staff (can be volunteers) who can then decide if they want to open a public topic on the issue. If they do, they can then start the topic and invite the user to join the topic and follow up. It’s become easy for staff to invite email addresses and to specify a topic to send the user to the first time they log in.

1 Like

I did a Python script as workaround of a plugin using the rest API and Webooks.

It is available at https://gist.github.com/Mte90/21344c61797a190f2e475e68db8ca7e4

In this way the task is fixed for us, the staged user receive an email about the thread with an invite to register.

1 Like