* send a ‘In-Reply-To’ header along the ‘References’ header
* subject of answers to an existing thread begins with ‘Re: ’
This fixes threading with at least Mail.app and Airmail.
This fixes email threading in Mail.app, that doesn't like when a thread
doesn't have stable recipients.
For instance, here is a possible sender-recipient combinations before:
From: A
To: Me
New issue
From: B
To: Me
Reply on new issue
From: A
To: Me
Another reply
Mail.app doesn't see B as a participant to the original email thread,
and decides to break the thread: it will group all messages from A
together, and separately all messages from B.
This commit makes the thread look like this:
From: A
To: gitlab/project
Cc: Me
New issue
From: B
To: gitlab/project
Cc: Me
Reply on new issue
From: A
To: gitlab/project
Cc: Me
Another reply
Mail.app sees a common recipient, and group the thread correctly.
This changes the email "From" field from "gitlab@example.com" to either:
* "John Doe <gitlab@example.com>" if the author of the action is known,
* "GitLab <gitlab@example.com>" otherwise.
Rationale: this allow mails to appear as if they were sent by the
author. It appears in the mailbox more like a real discussion between
the sender and the receiver ("John sent: we should refactor this") and
less like a robot notifying about something.
For instance, the email "Subject" field changes from:
Mattt / Ground Control | Saving issue doesn't work sometimes (#1234)
to:
Ground Control | Saving issue doesn't work sometimes (#1234)
Rationale:
* Most people are receiving email notifications about a single fork:
the project activity, issues and merge requests are happening either
in a root repository or in a fork, but less often in several forks.
* It removes noise from the email subject. The namespace of the project
can still be read in the email body.
* For Entreprise users that have a single namespace "MyEntreprise",
having this repeated in every email subject is very noisy.
This changes email subjects from:
GitLab | Team / Project | Note for issue #1234
to:
Team / Project | Note for issue #1234
Rationale:
* Emails should be as meaningful as possible, and emphasize content over
chrome. The "GitLab" name is more chrome than content.
* Users can tell an email coming from GitLab by the sender or the header
in the email content.
* An organization that works mainly with GitLab knows that
every SVC email comes from GitLab. For these organizations, having
"GitLab" in front of every email is just noise hiding the meaningful
information.
A test was broken if running on a non-standard port.
Made checking for (non-)standard port more robust.
Changed gitlab_on_non_standard_port to gitlab_on_standard_port (less negative).