All posts in the topic Message Processing (Short link)
Some may be interested to know how GroupServer processes posts. Below are the
fourteen checks that GroupServer carries out when a post comes in. I have
broken it into two sections: checks on the user, checks on the message.
Checks on the user are made in the context of group. They ensure that the user
has all the rights required to post. Eventually, Alice and I will split these
seven checks off into a class that can be called by the Web interface and the
email message processing interface. Then we will need to create a notification
for each check!
Posting pember: Check to see if the user a posting member of the
group. Only posting members can post to a group.
Verified address: As of this morning, GroupServer checks to ensure
that the address, from which the post has been sent, is verified.
Posting limits: Limit the number of posts that a user can make in a
given period, unless the user is a special user who the normal
rules do not apply.
Blocked: Check to see if the user is banned from posting. (There is
no UI for this, but the check remains in the code.)
Required properties: Block the user from posting if the user does
not have the required properties filled. This needs to be
expanded to required site-properties, as well as group properties.
Moderated: Process a post differently if the user is moderated. This
is not really a posting check, as the user can post. However, I
include it here, as it is very closely-related to the posting
checks.
Unclosed: Only allowing posting post to groups that have not been
closed (which is different to an Open group).
Message checks are made to each message. Most of these are security measures,
and do not require notifications.
Correct IP: We only process messages from mail transfer agents that
we know and trust. This is to prevent hacking.
X-Mailer loop: Do not process a message if we have already seen it.
Tight loop: Do not process a message if we have just seen it.
Already added: Do not post a message if it has already been added
to the group.
Empty return path: Only process messages that have a return path set.
Command: Always process commands
Spam: An internal check against manually-set "bad" words. (I kid
you not, you can prevent people saying ".*water.*" in the Canterbury
Issues Forum!) A notification should go out if we get a "bad"
word.
Posting
Only members who are logged in can post, and you are not logged in.