Result: The topic appears immediately without requiring approval
I think staged users and email in just by-passes too many of the regular posting pipeline that it needs some serious review. It feels like an “add-on”.
I thought #2 is default. New users start at Level 0.
approve_new_topics_unless_trust_level the minimum trust level to post without approval. Setting it to level 1 mean level 0 topics/posts require approval. This simply is a normal setting, not?
New users can always start new topics by email in. This is the default. The user will be created staged.
You are saying you have configured your site such that brand new users can create topics via email, at will. This is not remotely a default. Why would anyone want this?
That is intended for private groups, not public posts. Think support desk emails that get routed to a private group in Discourse. Guess what happens when you email team@discourse.org?
I can route them to a category, which is what it is doing here.
You can definitely route them to a public category, nothing stopping you in the system. For mine, I route them to private categories.
It is working great, except that some SPAMer’s keep sending in SPAM.
Now, those SPAMer’s will all be staged users created with the default user level of 0. In my forum, all my users start off at level 1 (invitation only, another setting). Therefore it stands without saying that level 0 users are all staged users via email in.
Now setting the approve_new_topics_unless_trust_level level to 1, which means that level 0 user posts need approval, we can get past the situation of those SPAM’s appearing on the category until they’re removed by moderators.
All of these features are standard in the system; I’m not using anything that is non-standard. If I can use this particular combo of system settings to satisfy my needs, then so much better for Discourse!
However, it seems that the system’s features set is not 100% orthogonal. Users created via other means (SSO, invitation, registration etc.) follow the approval checks for their posts. However, staged users created via email in by-pass the checks.
This is a bug if you ask me, or you would have called the setting approve new topics unless trust level (WARNING: doesn't work for staged users).
As to exactly WHY this combo of system settings work for me?
Currently I have restricted categories set up, one for each country/world region.
I point email in email addresses to them.
I publish those support email addresses. For example, a customer in Canada having a support question can email to canada@support.example.com and have their email appear as a topic in the Canada Questions category, where support technicians responsible for Canada has authority to reply.
This arrangement entirely solves the problem of using Discourse as a support ticket system.
However, you’ve forgotten that there are different types of staged users creating topics. You want to exempt the ones that are sending in private messages (i.e. posting to group), but NOT when they are sending in topics (i.e. posting to category).