Next Previous Contents

9. Customizing outgoing messages.

9.1 Adding a trailer to outgoing messages.

Put the text in DIR/text/trailer. The text is NOT copied to the archived version of the message. This works also for sublists. Tags ``<#h#>'', ``<#l#>'', and ``<#n#>'' are replaced by the list host, local name, and current message number, respectively.

9.2 Adding a subject prefix to outgoing messages.

Put the exact text in DIR/prefix. You can include the message number assigned to the post in the list archive by adding the ``#'' character in the text in DIR/prefix (example: put ``lsqb;listname-#rsqb;'' in DIR/prefix). ezmlm does not modify the subject other than by prefixing it with the prefix. ezmlm knows about rfc2047 encoded subject and can detect a prefix within an encoded word. However, ezmlm will not modify the subject itself. It will add a prefix only of none has been added before. A consequence of this is that a message will have the message number prefix of the first message in the thread rather than a prefix with the number of the message itself. The entire thread can always be retrieved with a message to list-thread-x@host, where ``x'' is the number in the prefix.

We recommend against using the prefix feature and strongly against the message number prefix. If you use it, make sure you understand the drawbacks, of message modification and subjects that change between message and reply. ezmlm can deal with this, but other programs may not be able to.

Sublists ignore DIR/prefix.

If you add a prefix, especially if you previously added it by other means (procmail, etc.), use ezmlm-idx to re-index the archive. Due to the way ezmlm-get(1) does threading from the subject, it works best if you use exactly the same prefix as you did before.

9.3 Adding a header to outgoing messages.

Put the exact header text as a line in DIR/headeradd. Thus, if you'd like a ``Precedence: bulk'' header added to outgoing messages, put a line ``Precedence: bulk'' into DIR/headeradd. This particular header is already added via the default ezmlmrc(5). Any modifications you wish to be active for all future lists should be made via modification of ezmlmrc(5) (see Customizing ezmlm-make operation). As of ezmlm-idx-0.32, the following tags can be used in DIR/headeradd, and will be substituted: <#n#> for the current message number, <#l#> for the local part of the list (this will be the digest list for digests), <#h#> for the host part of the list name. These substitutions are done at the time of message delivery, in contrast to the ``capital letter'' tags substituted by ezmlm-make(1) when the list is set up.

rfc2369 suggests putting unsubscribe and other list access information into special headers. This should be in the form of a URL, mainly because many mailing list mangers require commands in subject or body. ezmlm already provides the ``Mailing-List:'' header with the list -help address. A message to this address gives all other information on list commands. ezmlm-idx>=0.32 adds the ``List-Help'' and ``List-Unsubscribe'' headers by default to stimulate MUA support for this feature.

To add your own rfc2369 headers, simply put them into DIR/headeradd. For instance:

        List-Post: <mailto: listlocal@listhost>

9.4 Adding a message number header.

A sequence header may be useful for users whose systems don't pass on the ``Return-to:'' header to the MUA.

Use DIR/headeradd with a header of the type ``X-Sequence: <#n#>''.

Bounced messages are identified by their local message numbers, i.e. when ezmlm sends you a message about which messages bounced, it refers to the message number of the sublist. To be consistent with these numbers, and a local sublist archive, use DIR/sequence on the sublist, not the main list. To get consistent message numbering in digests, digest have the message number of the first message in the digest.

ezmlm-idx tries to make message numbering problems with sublists a little easier: sublists use the incoming message number, but only when the sublist is not archived and not indexed. This restriction is necessary for security reasons. Otherwise, an attacker could wreak havoc in the local message archive by sending messages with faked message numbers in the SENDER.

9.5 Removing headers from outgoing messages.

Put the header up to, but excluding the ``:'' in DIR/headerremove.

9.6 Removing MIME parts from messages.

ezmlm-idx>=0.30 can strip parts from composite mime messages based on content type. Just put the appropriate content-types such as ``text/ms-word'' or ``text/html'' into DIR/mimeremove. This is automatically configured when using the ezmlm-make(1) ``-x'' switch.

9.7 Limiting ``Received:'' headers in outgoing messages.

Sendmail still is being used on the majority of mail hubs. Sendmail has very primitive loop detection, bouncing messages based on excessive ``hopcount''. The ``hopcount'' is determined by counting ``Received:'' headers. ezmlm by default propagates ``Received:'' headers to facilitate message tracking. Thus, messages, especially from a sublist, can have a number of ``Received:'' headers that exceeds the ``hopcount'' set on poorly configured sendmail hosts. Subscription confirmation requests, warning, and probe messages have fewer ``Received:'' headers. Thus, a user may be able to receive these, but not (some of the) list messages. Of course, the best is to correct the configuration on the bouncing host, but this is often under the control of neither list owner nor user.

To compensate for this problem, ezmlm-send(1) of ezmlm-idx->=0.313 by default removes all ``Received:'' headers except the top one. They are still written to the archive, an can be retrieved from there using the ``-getv'' command. To cause ezmlm-send(1) to pass on all the ``Received:'' headers, use the ezmlm-send(1) ``-r'' switch.

9.8 Setting ``Reply-To: list@host''.

This is not recommended, since it leads to dissemination via the list of messages returned from bad auto-responders and MTAs. Also, it may lead to public replies to the list where personal replies were intended. In addition, the original ``Reply-To:'' header is lost. If you do want to add a reply-to list header, put ``reply-to'' into DIR/headerremove, and ``Reply-To: list@host.dom'' into DIR/headeradd.

9.9 Configuring the list so posts are not copied to the original sender.

For most mailing lists, you want all subscribers, including the sender of a particular message, to get all messages. This way, the sender sees that the message reached the list. For small lists, such as a project group, it may be annoying for the members to receive their own posts.

ezmlm-send(1) can be configured to exclude the sender from the recipient E-mail addresses if configured with the ``-C'' switch. To add this switch, edit the ezmlm-send(1) line of DIR/editor.

9.10 Customizing ezmlm notification messages.

Most of ezmlm's more commonly used messages are stored in DIR/text/. These messages can be edited manually for a list once it is set up, or on a global basis via modification of ezmlmrc(5). The messages may also be edited via E-mail by remote administrators (remote admin must also be enabled - ezmlm-make switch ``-r'') after the list is established by creating the list using the ezmlm-make(1) ``-n'' (new text files) (see How text file editing works and see Customizing ezmlm-make operation).

The most useful messages are DIR/text/sub-ok (and for subscription moderated lists DIR/text/mod-sub) for new subscriber information (such as the traditional ``welcome'' message, or a list charter or list posting rules/guidelines); DIR/text/unsub-nop is useful for messages to frustrated users unsuccessful in their unsubscribe attempts; DIR/text/help for general help information in reply to list-help@host or unrecognized commands, DIR/text/bottom for inclusion at the bottom of virtually all ezmlm messages; DIR/text/mod-help for moderator information; DIR/text/trailer for a (few) line(s) at the bottom of each post; DIR/text/digest for information in the ``Administrivia'' section of digests.

9.11 Specifying character set and content-transfer-encoding for outgoing ezmlm messages.

All ezmlm replies, except errors handled directly by qmail, can be sent in any character set and optionally with quoted-printable or base64 content-transfer-encoding. DIR/text/ files are always 8-bit files, but even though qmail has no problems with 8-bit mail, other MTAs and MUAs do. Problems due to this can be avoided by assuring that outgoing ezmlm messages are 7bit by using the appropriate content-transfer-encoding.

To specify a character set, put the name in DIR/charset (default: us-ascii). To specify quoted-printable or base64 content-transfer-encoding, add ``:Q'' or ``:B'' after the character set name in DIR/charset.


Next Previous Contents