All posts

How to Check the List-Id and List-Help Headers in a Newsletter

··2 min read

To check the List-Id header, send a test issue of your newsletter to a mailbox you own, open its full headers and paste them into the List-Id header checker. It tests that List-Id is written as RFC 2919 says, that it sits under your From domain, and that each RFC 2369 list header is well formed and appears once.

What List-Id is

List-Id is an optional description followed by the list identifier in angle brackets, written list-label.namespace. The namespace is a domain the list owner has authority over, or localhost for lists that are not managed. For example:

List-Id: Weekly news <weekly.example.com>

Identifiers not ending in .localhost must be globally unique, and a message carries no more than one List-Id.

The other list headers

RFC 2369 defines List-Help, List-Unsubscribe, List-Subscribe, List-Post, List-Owner and List-Archive. Each holds one or more URLs in angle brackets, separated by commas, most preferred first, with no space inside the brackets. List-Post may instead be the word NO. A message carries at most one of each. One-click unsubscribe adds a separate List-Unsubscribe-Post header, covered by the List-Unsubscribe header generator.

Step 1: get the full headers

Open the test message and choose Show original or View source, the name varies by mail client. Copy the header block.

Step 2: paste and read

Paste the headers in; folded lines are joined for you. The tool shows the finding for List-Id and for each List- header it found.

Step 3: fix what it flags

  • Duplicated header. Remove the extra. Only one List-Id, and one of each list header, is allowed.
  • URL not in angle brackets. Wrap each URL in < and >, with no space inside.
  • List-Id on a domain you do not control. The tool cannot see ownership, so it shows a note when the identifier is not under the From domain. Move it to your own domain.

Change these in your sending tool's settings, then send a fresh test. Keeping the identifier under your own domain and unchanged helps readers who filter mail by list.

Related header checks

The same paste works for the From and Reply-To headers; see checking From and Reply-To. For a full read of one message including authentication, use the email header analyzer.

What this check cannot do

  • It checks syntax. It cannot tell who owns the domain in a List-Id or whether a link works.
  • It does not check one-click unsubscribe.
  • Unusual URL schemes are noted, not rejected.
  • It follows RFC 2919 and RFC 2369 as written, without later updates.

Clean the list before the next send

Tidy list headers help readers; a clean list helps delivery. Upload your list on the verify page: the first 100 email checks are free with a Google sign-in, no card. Each address comes back valid, risky or invalid with a reason, and nothing is sent to anyone on the list. For larger or recurring lists, see bulk email verification, list cleaning and pricing.

Check your headers now

Paste them into the List-Id header checker.

Common questions

How do I check the List-Id header?

Send a test issue to a mailbox you own, open its full headers and paste them into the List-Id header checker. It tests List-Id against RFC 2919 and each List- header against RFC 2369.

What does a List-Id look like?

An optional description, then list-label.domain in angle brackets, for example Weekly news <weekly.example.com>. A message carries no more than one List-Id.

Which headers does RFC 2369 define?

List-Help, List-Unsubscribe, List-Subscribe, List-Post, List-Owner and List-Archive. Each holds one or more URLs in angle brackets, separated by commas, and a message carries at most one of each.

Does this check one-click unsubscribe?

No. One-click unsubscribe uses the separate List-Unsubscribe-Post header, which has its own rules.

Should the List-Id use my own domain?

Yes. RFC 2919 says never to create identifiers in a domain you have no authority over. The checker notes when it is not under your From domain.

Check your list before you send

Real mailbox checks over SMTP, and nothing is sent to the address. Sign in with Google and your first 100 email checks are free, no card. Plans for bigger lists are on the pricing page.