Discussion Lists: Why is the From: header being rewritten?

Recently, I’ve been getting many people wondering why, when running a discussion list in Bridge, that the From: header is rewritten from it’s original form, say:

From: "Subscriber Name" <subscriber@their-domain.com>

to something else completely :

From: "Subscriber Name subscriber@their-domain.com [List Name]" <list.email@your-domain.com>

In my first example, the name of the subscriber (Subscriber Name) occupies the phrase of the From: header, and the email address of the subscriber (subscriber@their-domain.com) is where the address should be. Pretty straightforward.

In the rewritten From header, the phrase is now: "Subscriber Name subscriber@their-domain.com [List Name]" <list.email@your-domain.com)> – that is, the name of the subscriber (as before), then their own email address, and finally the name of the mailing list in brackets. The actual address portion of the From: header is the List Email address (list.email@your-domain.com) – the address you send a message to, to start a thread.

Why not just keep it like it was?

While it’s true that discussion list software – including Dada Mail used to maintain the From: header in its original form, it’s not something we can do anymore, without impacting deliverability in a major way. A big job of a mailing list manager (like Dada Mai) is successfully send out messages to the subscribers of the mailing list, right?

Here’s why this doesn’t work, anymore.

DMARC Policies

Sometime in 2014, Yahoo Changed their “DMARC” policy to only accept email messages that have a @yahoo.com email address in the From: header that also originated from a Yahoo server. Here’s Yahoo explaining it themselves. This actually makes a ton of sense: ow, only messages that say they are from a yahoo.com address, and sent through Yahoo’s mail system will be accepted for delivery by basically everyone that’s following the DMARC Policy rules (and that means Yahoo themselves, Gmail, Hotmail – all the big players).

This is a big win in trying to keep the problem of spoofing email addresses to send unsolicited email and other harmful payloads, but it had a dire consequence:

It broke every single discussion mailing list in the world. And this isn’t hyperbole, this is exactly what Internet Engineering Council expert John R. Levine, a specialist in email infrastructure and spam filtering, actually wrote.  A mailing list that’s keeping say, a @yahoo.com address in the From: header looks exactly like a email message with a spoof’d @yahoo.com address in the From: header.

To counter act this change in policy, discussion mailing lists had to adapt. The primary change that’s been suggested is to change the From: header to utilize the List Email as the actual address, and add more information in the phrase of the address, exactly like Dada Mail does. In fact, Dada Mail uses the exact same pattern as Yahoo’s own group mailing lists.

Thankfully, when this change happened (literally, over a weekend, without any real warning), Dada Mail already had support for this in its Bridge plugin, called: p.p. Mode. One needed simply to enable this feature, and be all set. After the Yahoo policy change, we made this option enabled by default, then removed the option altogether in v10, more than 2 1/2 years later. Being able to disable this option has no real benefit, except to break your mailing list, so it seemed a pretty bad option to have around.

There is an option available to customize what gets set in the phrase of the From: header, and that option can be accessed in the list control panel, under: Plugins: Bridge. Look for the option labeled, From: header phrase: By default, its value is,

<!-- tmpl_var original_from_phrase default="Subscriber" --> <!-- tmpl_var subscriber.email --> [<!-- tmpl_var list_settings.list_name -->]

These are mostly a series of email template tags, the same ones you may also use in the Subject, or Body of your message:

<!-- tmpl_var original_from_phrase default="Subscriber" --> is context specific for this job, as its value will contain the original phrase as it was sent. If there is no phrase, “Subscriber” will instead be printed.

<!-- tmpl_var subscriber.email --> will be replaced with the email address of the message’s original sender.

<!-- tmpl_var list_settings.list_name --> will be set to the name of your mailing list.

Hopefully, that helps you understand why the changes are being made without getting too technical.

What about Announce-Only Mailing Lists?

A similar problem can befall an announce-only mailing list, but isn’t fixed so cleverly. The problem will happen if you’ve set up the List Owner or the List Admin email address to be an address that’s not specifically tied to the mail system you’re using.

So for example, if you’re using the sendmail command (the default option), you most likely have to use an email address that belongs to the same domain that you have Dada Mail installed on – this is also our general advice, no matter how you’re sending out messages. In other words,  if my domain is, your-domain.com, my email address for the List Owner and List Admin needs to be something like, list.owner@your-domain.com and not list.owner@gmail.com.

If you’re sending via SMTP, you most likely need to authenticate the SMTP connection anyways, but both the List Owner, and List Administrator will need to be allowed to send through this SMTP server.

If you’re sending through Amazon SES, the email addresses you’re using for both the List Owner and List Admin need to be a verified address or an address belonging to a verified domain.

Hope this all helps. Happy sending, everyone!