Feedback from a community about Mailing List feature

(Raphaël Jadot) #1


my team and I have tested intensively discourse as a possible replacement to mailing lists and forums, and I would like to congratulate, discourse is really an impressive environment.

I’d like to say first that if myself I prefer using now discourse than the mailing lists, for day to day development, projects etc, it was not the case with almost previous forums that existed.
There are so many impressive features, this is awesome. I also like the headers added by discourse: List-Unsubscribe:, List-ID:, List-Archive:, Return-Path:

Here I take in account the view of people who are used to ML only, and played nicely the game of using discourse in real conditionss, that’s to say by replacing their mailing list by discourse temporarily, not just testing the features, sending “hello” and “test message”, but for their day to day work, and bring me feedback.
So they registered, checked the option “send me an email for every new post” and get back to work with the use of this new ML replacement. Globally, after two weeks, their opinion about the product is very high.
It gave them around 85% of the comfort of a traditional mailing list (mailman, sympa…). However there are still things that appears as a problems for our users, some uncomfortable, other blocking. I’m not taking in account the standard notifications which, for users who tested it, are already perfect.

I have made a quick list of issues reported, with some ideas, about which I have no idea if it’s doable or not, or if the idea already has been discussed.
So all the ideas below are for “full mailing list” feature, but it may also fit for standard notifications.

Problem 1 : in mailing list mode, unless there is a quote (only if message comes from forum), you don’t see which message replies to which. (Importance: Medium)

Imagine this very simple kind of conversation

  • John: Hello, there is a party tomorrow at bob’s home
  • Bob: Do you have a car for coming?
  • Alice: I’m ready for tomorrow :slight_smile: Do you like my new haircut?

Then John replies to Bob’s post 2 “No”
In discourse, you can seethat the reply is to Bob.
In mailbox, you don’t have any way to see the reply is to Bob, so it appears like this:

  • John: Hello, there is a party tomorrow at bob’s home
  • Bob: Do you have a car for coming?
  • Alice: I’m ready for tomorrow :slight_smile: Do you like my new haircut?
  • John: No

Solution idea: For mailing lists clients with threading management, the best solution would be to keep threading.This mainly deals with little change in in_reply_to: and references headers.

How it is now (example: a user reply to post 12 of topic 40, you receive the message in your mail box)
message distributed gets

in_reply_to: <topic/40>

which is not related to any previous message.

Ideally, it should be

in_reply_to: <topic/40/12>

which corresponds to a previous message you have in your mailbox.

Also, references header should keep the thread structure…
In this example, the same user replies to post 12, which is a reply to post 6, which is a reply to post 2, which is a reply to post 1.
Here are the headers you should get:

in_reply_to: <topic/40/12>
references: <topic/40/1> <topic/40/2> <topic/40/6> <topic/40/12>

Solution idea 2: For non threaded display, or conversation style, maybe add in the email two line like this:

Post #12
Reply to @robert post #6

List of problems 2: (a list because it was hard to separate them)

Several problems has been reported about the reply_to: and reply+{messagekey}@ system.

  • when you are the first poster, you can’t reply to your initiated thread by email until you receive a reply key in your echo (which takes 10min by default) or someone else reply (importance: high)
  • when you are the last poster, in conversation mode view (used in several webmail services), and reply to the conversation (with reply to all button) the message key is the same as in your previous message. So discourse is confused about to whom exactly you replied. (importance: low)
  • Most email accounts add a new contact each time you send a message to a new email address. This adds a lot of new contacts as each message key is different. (Importance: low)
  • We have found 6 mobile email clients, on several platforms, that doesn’t reply to the reply_to: header as intended… Here is one example I reported with email client of Firefox OS. 1152683 - [email] reply-to header ignored because mailbridge tries to use an array value like a singular value . Standard mailing lists still work with these email clients anyway because of the general use of reply to all by default (that includes to previous To: Header), the mailing-list engine being able to filter out duplicate messages to list members (Importance: high)

Solution proposal (I insist on the fact I don’t know if it’s doable, but just what appears as an ideal behavior):
Instead of using a messagekey in the recipient, discourse should get message in a generic mailbox for the whole site, or even better, for the category (which should also be in a list-post: header) and analyze the reply_to: header to determine to which message it is a reply.

Problem 3: Discourse breaks the threading with your own sent messages (Importance: Medium)

When you post a message by email to discourse, its message-ID should be kept in database and included in the in_reply_to: and references: headers of the notifications distributed by discourse.

How it is now:
Bob sends a message through discourse with

Message-ID: <bob1@bb> 
  1. Alice replies from discourse or by email

  2. Bob receives the message from Alice distributed by discourse, with:

    in_reply_to: topic/7@dc

instead of

in_reply_to <bob1@bb>

How it should ideally be

  1. Bob sends a message by email through discourse with
message-ID: <bob@bb>
  1. discourse keep the message-ID: of Bob’s message for the next notifications.

  2. when someone directly replies to his message, by email or via discourse direclty, discourse distribute the notification with

    in_reply_to: bob1@bb
    references: <topic40/1> alice4@al <topic40/3>…bob1@bb
    (I have mixed replies by email and replies through Discourse for illustration)

Note: even for someone who receives messages only when he’s not active on the site, the references: suite will help the email client reorganize the thread.

Problem 4: No inline reply style possible. (importance: high)
While this is imho not a problem for standard notifications but many people who use traditional mailing lists regularly use inline reply style.

Maybe a start of solution: I’m sure that parsing correctly an email is difficult, especially in html. it’s why I thought that it could be interesting to force email sent for people in mailing list mode to receive them in pure txt format. It would force people to send nice markdown formatted emails that may be easier to manage for Discourse. In the case of Discourse detecting inline reply, it could import full quote of previous message.

Additional features suggested by some members:

  • It would be interesting to have also List-Post:, List-Help:, List-Subscribe: and Errors-to: headers.
  • Registered users should get a notification when they do something wrong (like not enough letters in message, crossposting etc)

PS: excuse my English, not my natural language but I do my best.

Good day/evening/night to all :slight_smile:

MOSS Roadmap - Mailing lists
(Michael Downey) #2

Wow, lots of topics rolled into this single topic. I will think on the others, but for …

This one has been discussed a lot and is “in development” I suppose you could say:

(gingerling) #3

great to hear, we are working on this at the moment. Using discourse to replace buddypress groups and mailman (and phpBB) what site/community is this for?

(Raphaël Jadot) #4

Hi @gingerling this would indeed be a great improvement.

I’m using at the same time where I work (in internal) and for openmandriva community.

(Raphaël Jadot) #5

@downey would you like I split my message in several? Sorry If it did not follow the good practises.

(gingerling) #6

Cool! I met some of your people at fossdem I think. This is me on linked in, I just added you :smile: