ezmlm-confirm verifies the cookie sent as part of the action request, and if correct attempts to find the corresponding message in dir/mod/unconfirmed/. If the message is found, it is either discarded or posted to the list, depending on the action request.
Posts to the list are handled by piping the message to ezmlm-send(1) located in the ezmlm binary directory, as set at compile time. This is usually the directory that ezmlm-moderate resides in. ezmlm-send(1) is provided with dir as the first argument.
If the optional second argument is given, ezmlm-confirm pipes the message to that program. No additional parameters are supplied.
dir is passed as an argument to ezmlm-send(1), but NOT to any program specified as the optional ezmlm-confirm command line argument.
ezmlm-confirm does not bother to correctly set sender. ezmlm-send(1) doesn't care, and any other program that might be used can parse the sender from the first line of the message, which is always Return-Path: <address@host.domain> as build from SENDER originally passed to ezmlm-store(1).
Once the message has been successfully accepted or discarded, it is removed from dir/mod/unconfirmed/.
If the message is not found in dir/mod/unconfirmed/, it has timed out and the message or the message stub has been removed by ezmlm-clean(1). In this case, ezmlm-confirm notifies the sender of the failure. Notification is in the form of a fatal error from qmail.
At the beginning of the message, ezmlm-confirm prints a new Mailing-List field with the contents of the TXT_MAILING_LIST message. It rejects the message if there is already a Mailing-List field.
ezmlm-confirm does not distribute bounce messages: if the environment variable SENDER is set, and is either empty or #@[], ezmlm-confirm rejects the message.