Integrating email and forum software


how to do it?

Filed under: mailman — EnergyNumbers @ 09:10

So, here’s the question.

Given a mailman mailing list, and a corresponding buddypress forum**, what are the options for linking them? And what’s best?

There will be 2 groups of posters: those who post via email, and those who post via forum***. There will be 2 groups of readers: those who read via email, and those who read via forum***.

Posting via email: the options

P1: post to a single email box

P2: post to mailman (as mailing-list users do currently)

Ways that wordpress could collect post:

M1: by reading a POP3 email box

M2?: is it possible to put a trigger in mailman, so every time a message will be distributed to subscribers, it calls a web page? That way, it could pass the message as POSTed variables.

Ways that things go from wordpress forum to the mailing list:

W1: by hooking groups_new_forum_topic  every time a new topic appears on the forum, a new thread is injected into mailman; and by hooking groups_new_forum_topic_post, every time a new post is added to a topic, a new post is injected into mailman, with in-reply-to headers to match the subject. A custom-header would be added to record that this mailman message originated in wordpress

W2: hook the creation of all posts, and submit them to the mailing list. Only show a post on the forum, once it appears on the mailing list. That way, all post-moderation can be done via the mailman interface

Alternative routes to combine these

  1. P1+M1+W1: users post to a single email box, never to mailman directly.  The email address currently used by mailman is reassigned to a pop3 box, and a new, obscured email address is created for the mailing list: this obscured address will be known only to the list admin, and to wordpress. A cron task runs on wordpress frequently, checking on that email box. It adds messages to the forum.  So for a user posting by email, the route is user -> pop3 box -> wordpress -> forum -> mailman. All moderation would be done in wordpress.
  2. P2+M1+W1: users post to the mailman list. The wordpress cron task checks the pop3 of an email address subscribed to the mailman list.  Any messages that didn’t originate in wordpress (check custom headers to find this), get inserted into the forums. So for a user posting by email, the route is user -> mailman -> wordpress -> forum . Moderation would have to be split across wordpress and mailman. This is bad.
  3. P2+M1+W2: users post to the mailman list. All forum posts are intercepted, and held from appaering on the forum until they go via the mailing list. So, as above, for a user posting by email, the route is user -> mailman -> wordpress -> forum. And for a user posting by web, the route is user -> wordpress -> mailman -> forum . For list administrators & moderators used to the mailman moderation interface, this will offer the path of least resistance.

I think those are the options, anyway.

**(let’s keep it simple with just one of each, for now)

*** we’ll get to posting and reading by IMAP, SMS, twitter or carrier-pigeon later. One thing at a time, drak it.



  1. Is this the beginnings of a ‘reply via email” functionality to BuddyPress forums, updates, etc?

    Comment by Mike Pratt — 2010/03/30 @ 13:48

    • I hope so, yes – that will be one aspect of it. The postie plugin does great work in pulling in post from a mailbox and pre-processing it into a WP post, so turning into a forum post shouldn’t be a big leap.

      The trick will be to work out just what the email is replying to. Ideally, any email that got sent out would have an identifier in the subject line, e.g. [wp-5135], that showed that the email was related to the forum post with id 5135. You can do it with a References: line in the outgoing email header too, but couldn’t necessarily rely on an email program to preserve it in the reply. It might be worth doing both.

      Comment by andrewsinlondon — 2010/03/30 @ 16:44

RSS feed for comments on this post. TrackBack URI

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s

Blog at

%d bloggers like this: