?flags? in Header Definitions

The name part of the H configuration command can be prefixed with a list of flags. This list, if present, must be surrounded by ? characters:

H?flags?name:field

The ? characters must immediately follow the H and immediately precede the name with no intervening spaces. If a space precedes the first ?, that ? is misinterpreted as part of the header name, rather than as the start of a list of flags, and this error message is printed:

header syntax error, line " ?flags?name: field"
                           ↑
                           note leading space

If the first ? is present but the second is absent, sendmail prints the same error message and skips that H configuration command. The flags that are listed between the ? characters correspond to flags that are listed with delivery agent F= equates. When processing a mail message for forwarding or delivery, sendmail adds a header line if a flag is common to both the H definition list of flags and the delivery agent’s list of flags. For example:

H?P?Return-Path: <$g>

This H definition begins with a P flag. This tells sendmail to add this header line to the mail message only if a selected delivery agent also contains that flag. Because the Return-Path: header (Return-Path: on page 1165) should be added only during final delivery, the P flag appears only in the prog and local delivery agent definitions:

Mprog,  P=/bin/sh,   F=lsDFMeuP,  S=10, R=20, A=sh -c $u
Mlocal, P=/bin/mail, F=rlsDFMmnP, S=10, R=20, A=mail -d $u
                               ↑
                               note

No check is made to ensure that the H flags correspond ...

Get sendmail, 4th Edition now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.