Hi there!
sorry for the off-topic thread, I'm writing about the list itself.
At work we built a feature in a mail client that deals with newsletters subscriptions.
Subscriptions are identified by messages having a List-ID or List-Unsubscribe header. Then, to differentiate mails being newsletters or list discussions, one heuristic is to look at the Precedence
header, it can be bulk
for mass mailing (so newsletters) or list
(discussions). And when working on that I noticed that PHP lists were wrongly sent the mails with Precedence: bulk
. Is this something that could be fixed?
It's not a big deal since I've since added another heuristic that works woth the PHP mailing lists (classify subscription as discussion is it has a List-Post
header) but wanted to let you know, it may be useful for other clients if / when they implement features using those headers.
Also, the List-ID is not properly formatted, it's supposed to be wrapped in angle brackets but it's not, so instead of List-Id: internals.lists.php.net
it should be List-Id: <internals.lists.php.net
> or even List-Id: PHP Internals list <internals.lists.php.net> to give it a human friendly name. One downside of fixing it though is that it may break automatic filtering rules of people matching exactly `List-Id: internals.lists.php.net`.
regards,
Mathieu Rochette
Hi Mathieu,
Questions around this, are probably better directed at systems@php.net,
but it's here now, so I'll answer.
At work we built a feature in a mail client that deals with
newsletters subscriptions.Subscriptions are identified by messages having a List-ID or
List-Unsubscribe header. Then, to differentiate mails being
newsletters or list discussions, one heuristic is to look at the
Precedence
header, it can bebulk
for mass mailing (so
newsletters) orlist
(discussions). And when working on that I
noticed that PHP lists were wrongly sent the mails withPrecedence: bulk
. Is this something that could be fixed?
I can certainly change the "Precedence: bulk" header to "Precedence:
list". I would have to do that for all our 124 lists, but I am
moderately reluctant in doing this, as Google is being annoying
requiring specific things for email delivery, and I don't want to upset
them again.
It's not a big deal since I've since added another heuristic that
works woth the PHP mailing lists (classify subscription as discussion
is it has aList-Post
header) but wanted to let you know, it may be
useful for other clients if / when they implement features using those
headers.Also, the List-ID is not properly formatted, it's supposed to be
wrapped in angle brackets but it's not, so instead ofList-Id: internals.lists.php.net
it should beList-Id: <internals.lists.php.net
> or evenList-Id: PHP Internals list <internals.lists.php.net> to give it a human friendly name. One downside of fixing it though is that it may break automatic filtering rules of people matching exactly `List-Id: internals.lists.php.net`.
We can easily change the List-Id header too, as long as I don't need to
add a manual description to all 124 of them. So for now, I would suggest
to change them to "List-Id: <internals.lists.php.net>". Would that work?
cheers,
Derick
--
https://derickrethans.nl | https://xdebug.org | https://dram.io
Author of Xdebug. Like it? Consider supporting me: https://xdebug.org/support
mastodon: @derickr@phpc.social @xdebug@phpc.social
Hi Mathieu,
Questions around this, are probably better directed at systems@php.net,
but it's here now, so I'll answer.
noted.
On Thu, 31 Jul 2025,
Mathieu Rochette
wrote:
At work we built a feature in a mail client that deals with
newsletters subscriptions.
Subscriptions are identified by messages having a List-ID or
List-Unsubscribe header. Then, to differentiate mails being
newsletters or list discussions, one heuristic is to look at the
Precedence
header, it can bebulk
for mass mailing (so
newsletters) orlist
(discussions). And when working on that I
noticed that PHP lists were wrongly sent the mails withPrecedence: bulk
. Is this something that could be fixed?
I can certainly change the "Precedence: bulk" header to "Precedence:
list". I would have to do that for all our 124 lists, but I am
moderately reluctant in doing this, as Google is being annoying
requiring specific things for email delivery, and I don't want to upset
them again.
I would be surprised if they penalized you for this since you'll more accurately describe the messages. I don't know how their delivery systems works though, so I understand if you don't want to gamle on it 👌
It's not a big deal since I've since added another heuristic that
works woth the PHP mailing lists (classify subscription as discussion
is it has aList-Post
header) but wanted to let you know, it may be
useful for other clients if / when they implement features using those
headers.
Also, the List-ID is not properly formatted, it's supposed to be
wrapped in angle brackets but it's not, so instead ofList-Id: internals.lists.php.net
it should beList-Id: <internals.lists.php.net
> or evenList-Id: PHP Internals list <internals.lists.php.net> to give it a human friendly name. One downside of fixing it though is that it may break automatic filtering rules of people matching exactly `List-Id: internals.lists.php.net`.
We can easily change the List-Id header too, as long as I don't need to
add a manual description to all 124 of them. So for now, I would suggest
to change them to "List-Id: <internals.lists.php.net>". Would that work?
Yes that would be great, adding a description is optional and can be done later too. if you feel like it you could do it only for the most used lists too for example.
thank you,
Mathieu
cheers,
Derick
--
https://derickrethans.nl | https://xdebug.org | https://dram.io
Author of Xdebug. Like it? Consider supporting me: https://xdebug.org/support
mastodon: @derickr@phpc.social @xdebug@phpc.social
Hi,
And when working on that I noticed that PHP lists were wrongly sent
the mails withPrecedence: bulk
. Is this something that could be
fixed?I can certainly change the "Precedence: bulk" header to "Precedence:
list". I would have to do that for all our 124 lists, but I am
moderately reluctant in doing this, as Google is being annoying
requiring specific things for email delivery, and I don't want to
upset them again.Also, the List-ID is not properly formatted, it's supposed to be
wrapped in angle brackets but it's not, so instead ofList-Id: internals.lists.php.net
it should beList-Id: <internals.lists.php.net
> or even ``List-Id: PHP Internals
list <internals.lists.php.net> to give it a human friendly name.We can easily change the List-Id header too, as long as I don't need
to add a manual description to all 124 of them. So for now, I would
suggest to change them to "List-Id: <internals.lists.php.net>". Would
that work?
I have now made these changes:
- Added the <> around the value of List-Id.
- Changed "Precedence: bulk" to "Precendence: list"
If Gmail decides not to deliver email, then, I suppose that's their
problem.
cheers,
Derick
https://derickrethans.nl | https://xdebug.org | https://dram.io
Author of Xdebug. Like it? Consider supporting me: https://xdebug.org/support
mastodon: @derickr@phpc.social @xdebug@phpc.social