## 2.5 The Non-digest Options Category

Mailman delivers messages to users via two modes. List members can elect to receive postings in bundles call digests one or a few times a day, or they can receive messages immediately whenever the message is posted to the list. This latter delivery mode is also called non-digest delivery. There are two administrative categories available for separately controlling digest and non-digest delivery. You can even disable one or the other forms of delivery (but not both).

Both kinds of delivery can have list-specific headers and footers added to them which can contain other useful information you want your list members to see. For example, you can include instructions for unsubscribing, or a url to the lists digest, or any other information.

Non-digest deliveries can also be personalized which means certain parts of the message can contain information tailored to the member receiving the message. For example, the To: header will contain the address of the member when deliveries are personalized. Footers and headers can contain personalized information as well, such as a link to the individual user's options page.

In addition, personalized messages will contain extra information that Mailman can use to unambiguously track bounces from members. Ordinarily, Mailman does some pattern recognition on bounce messages to determine list members whose addresses are no longer valid, but because of the vagaries of mail systems, and the countless forwards people can put in place, it's often the case that bounce messages don't contain any useful information in them. Personalized messages avoid this problem by encoding information in certain headers that unambiguously identify the recipient of a message. If that message bounces, Mailman will know exactly which member it was intended for.

Note that because personalization requires extra system resources, it must be enabled by the site administrator before you can choose it.

Here are the variables which control non-digest delivery:

nondigestable
  This option controls whether members can receive immediate delivery or not. If not, they will be forced to receive messages in digests. You can't disable non-digest delivery if digests are already disabled.

personalize
  This option turns on message personalization.

msg_header
  This text box lets you enter information that will be included in the header of every non-digest message sent through the list.

  See below for more information on what can go in the headers and footers. If you leave this text box empty, no header will be added.

msg_footer
  Just like with the header, you can add a footer to every message. The same rules apply to footers as apply to headers.

Headers and footers can contain any text you want. For non-English lists, the headers and footers can contain any character in the character set of the list's preferred language. The headers and footers can also contain substitution variables which Mailman will fill in with information taken from the mailing list. These substitutions are in Python string interpolation format, where something like `%(list_name)s` is substituted with he name of the mailing list. Note that the trailing "`s`" is required2.

For example, a footer containing the following text:

    This is the \%(list_name)s mailing list
    Description: \%(description)s

might get attached to postings like so:

    This is the Example mailing list
    Description: An example of Mailman mailing lists

Here is the list of substitution variables available for your headers and footers:

real_name
  This is the value of the `real_name` configuration variable in the General options category.

list_name
  This is the canonical name of the mailing list. In other words it's the posting address of the list3.

host_name
  This is the domain name part of the email address for this list.

web_page_url
  This is the base url for contacting the list via the web. It can be appended with `listinfo/%(list_name)s` to yield the general list information page for the mailing list.

description
  The brief description of the mailing list.

info
  This is the full description of the mailing list.

cgiext
  This is the extension added to CGI scripts. It might be the empty string, `.cgi`, or something else depending on how your site is configured.

Note that `real_name`, `host_name`, `description`, and `info` substitution variables take their values from the list configuration variables of the same name.

When personalization is enabled, the following substitution variables are also available:

user_address
  The address of the recipient of the message, coerced to lower case.

user_delivered_to
  The case-preserved address that the user subscribed to the mailing list with4.

user_password
  The user's password, in clear text.

user_name
  The user's full name.

user_optionsurl
  The url to the user's personal options page.

#### Footnotes

... required2
  The site administrator can configure lists to use a simpler interpolation format, where `$list_name` or `${list_name}` would be substituted with the mailing list's name. Ask your site administrator if the've configured your list this way.
... list3
  For backward compatibility, the variable `_internal_name` is equivalent.
... with4
  Usually it makes no difference which of `user_address` and `user_delivered_to` is used, but it's important to remember that they can be different. When they're different, Mailman always uses the lower case address as the key to the member's subscription information, but it always delivers messages to the case-preserved version.