Next: , Previous: How sublisting can be made transparent to the user, Up: Overview of ezmlm function


4.28 How to service commands in the subject line

Rfc2142 (standards track) says that for each mailing list ‘list@host’, there MUST be an administrative address ‘list-request@host’. This is not the default for ezmlm, but can be added with ezmlm-make(1) -q, which adds a ezmlm-request(1) line before the ezmlm-manage(1) line in DIR/manager. This address is used to manage commands in the ‘Subject:’ line, by translating them into appropriate ezmlm command messages.

When migrating from other mailing list managers which use this method to issue list commands, configuring ezmlm to respond to such commands may be useful. In addition, some software manufacturers sell MUAs and mail gateways that are unable to correctly transport rfc822-compliant Internet mail with certain characters in the local part of the address.

ezmlm-request(1) services the ‘list-request@host’ address per rfc2142 (standards track). It is usually invoked in DIR/manager before ezmlm-get(1) and ezmlm-manage(1). It ignores all requests that are not for the list-request address. For requests to the ‘list-request@host’ address, ezmlm-request(1) parses the ‘Subject:’ line. If a ezmlm command address starting with the contents of DIR/outlocal (e.g. ‘list-get45’) is on the command line, ezmlm-request(1) generates the corresponding full ezmlm request message. If the subject does not start with the contents of DIR/outlocal, ezmlm-request(1) prefixes the line with the contents of DIR/outlocal, thereby building a complete ezmlm command. If a host name is specified, it must match the contents of DIR/outhost, i.e. ezmlm-request(1) in this function will only generate command messages for the local list.

Thus, a subject of ‘subscribe’ to ‘list-request@host’ will be auto-magically rewritten as a message to ‘list-subscribe-userlocal=userhost@host’. Similarly, any ezmlm command or ‘Reply-To:’ address can be pasted into the subject field and sent to ‘list-request@host’. ezmlm-request(1) does not validate the command name, but invalid commands result in a ‘help’ message in reply via ezmlm-manage(1). This allows ezmlm-request(1) to also service custom commands, like ‘list-faq@host’ that you may have created for your list.

If the ‘Subject:’ is empty or does not start with a letter, ezmlm-request(1) will attempt to interpret the first message body line that starts with a letter in the first position.

When ezmlm-request(1) has successfully processed a “request” command, it exits 99 to skip the rest of DIR/manager.

To set up a list to include ezmlm-request processing, use the ezmlm-make(1) -q switch. The default is to not do this.