Registering Mail Handlers

To register a handler, run the following command:

# ./mail_handlers_control --add 
                --priority=<number>
                --name=<handler name>
                --mailname=<mailname>
                --queue=<before-local|before-remote|before-queue|before-data>
                --type=<sender|recipient|sender-domain|recipient-domain|global>
                --executable=<executable file>
                [ --context=<context> ]
                [ --enabled ]

The arguments are explained in the following table.

Argument Definition

--name

Specifies the handler name. The string is allowed to contain any character allowed in UNIX file name (that is, anything except slash and NUL). Registration will fail if a handler with the specified name has already been registered.

--type

Specifies the type of a handler, may take the following values:

  • global
    handler is called for all messages.
  • sender-domain
    handler is called for messages whenever the domain part of the sender address matches the specified domain
  • recipient-domain
    handler is called for messages whenever the domain part of one of the recipient addresses matches the specified domain
  • sender
    handler is called for messages whenever the sender address matches the specified address
  • recipient
    handler is called for messages whenever any of the recipient addresses matches the specified address

--mailname

Specifies a domain or a mail address for the handler-type.

Not required if the handler type is global.

--priority

Specifies the hook priority in the queue of hooks.

--executable

Specifies the handler executable file.

Registration will fail if the file does not exist.

--context

Specifies the context. This is an opaque string to be passed to the handler on the command line.

--enabled

Specifies whether to enable the handler.

--queue

Specifies the hooking point. Should be one of: before-queue, before-local, before-remote, before-data.

See Hooking Points for details.

 

 

The following handler is added to filter correspondence before local delivery:

# ./mail_handlers_control --add
    --name=1my_handler-ld
    --type=sender
    --mailname=myema@example.com
    --executable=/usr/local/bin/my_handler.sh
    --context='context'
    --queue=before-local
    --priority=33
    --enabled