ezmlm-send(1)

NAME
ezmlm-send - distribute a message to a mailing list

SYNOPSIS
ezmlm-send [ -cCrRvV ] [ -h header ] dir

DESCRIPTION
ezmlm-send reads a mail message and sends it to the mailing list stored in dir. If dir/archived exists, ezmlm-send records a copy of the message in the dir/archive/ directory. If dir/indexed exists, ezmlm-send adds the subject, author and time stamp of the message to the index, kept with the message in a subdirectory of dir/archive/. The subject is processed to make reply-subject entries identical to original message subject entries. The subject index is used for the archive retrieval functions of ezmlm-get(1). Use ezmlm-idx(1) to create a subject index from a preexisting archive. Subject and author lines are decoded if they are encoded per rfc2047. When split lines are unfolded, the number of escape sequences for iso-2022-* character sets is minimized. For instance, two consequtive toascii sequences are reduced. This processing is done for the character set specified in dir/charset. The result of this process is the same for a given subject, irrespective of encoding. At the beginning of the message, ezmlm-send 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. If dir/listid exists, ezmlm-send will assume that the format is correct and create a ``List-ID:'' header by placing the contents after the text ``List-ID: ''. Next, ezmlm-send prints all the new fields listed in dir/headeradd. Any tags, ``<#h#>'', ``<#l#>'', or ``<#n#>'' found in these headers are replaced by the list host name, list local name, and message number, respectively. ezmlm-send then prints an appropriate Delivered-To line. If dir/replytolist is present, ezmlm-send Adds a Reply-To: header to the outgoing message pointing to the mailing list and removes any incoming Reply-To: header. If it is present, ezmlm-send deletes any incoming fields with names not listed in dir/headerkeep. If not, ezmlm-send deletes any incoming fields with names listed in dir/headerremove. If dir/rewritefrom is present, ezmlm-send removes the original From: header and replaces it with the following:
        From: "Real Name via listname" <listname@hostname>
If the DMARC record for the address in the From: header contains a reject policy, ezmlm-send enables rewritefrom for this message. If replytolist is enabled as above, the original From: header is added to the list as a Cc: header, otherwise as a Reply-To: header. If present, ezmlm-send removes all MIME parts not specified in dir/mimekeep. Otherwise ezmlm-send removes MIME parts specified in dir/mimeremove before archiving and distribution of the message. If dir/text/trailer exists, ezmlm-send adds the trailer to simple text/plain messages in the same encoding as used for the the message. However, if the encoding is ``base64'' it is not safe to do this and the header is suppressed. For composite MIME messages, the trailer is added as a separate part, with the character set and encoding specified in dir/charset. The trailer is not added to multipart/alternative messages. Any tags, ``<#h#>'', ``<#l#>'', or ``<#n#>'' found in dir/text/trailer are replaced by the list host name, list local name, and message number, respectively. If dir/prefix exists, ezmlm-send will prefix the subject line with the first line of this file. A space will be added to separate prefix from the subject text. prefix is ignored for sublists. If dir/prefix contains a ``#'', the last ``#'' will be replaced by the message number. Any prefix starting with text of a reply indicator (``Re:'', ``Re[n]:'', etc) will cause problems. The prefix may be rfc2047 encoded. Rfc2047 Iso-2022-* encoded prefixes must end in ascii. The prefix feature and especially the message number feature modify the message in violation with Internet mail standards. The features have been implemented by popular demand. Use at your own peril. dir/sequence is ignored as of ezmlm-idx-0.32. Use dir/headeradd with substitution to achieve the same goal. If dir/qmqpservers exists, ezmlm-send will use qmail-qmqp(1) to send messages. ezmlm-send does not distribute bounce messages: if the environment variable SENDER is set, and is either empty or #@[], ezmlm-send rejects the message.

OPTIONS

-c  No longer supported. Ignored for backwards compatibility.

-C  No longer supported. Ignored for backwards compatibility. ezmlm-send has to parse the subscriber database.

-h header
    If the list is a sublist, i.e. dir/sublist exists, header is required in all messages to the list. This option is used when ezmlm is used to run a sublist of a lists run by a different mailing list manager that uses header rather than ``Mailing-List'' to identify messages from the list. Anything after the first colon (if present) in header is ignored.

-r  Copy incoming ``Received:'' headers to the outgoing message.

-R  (Default.) Do not copy incoming ``Received:'' headers, except the one added by the (last) listhost, to the outgoing message. In some cases, especially for sublists, the messages can have a large number of ``Received:'' headers. This may lead to bounces for some users due to sendmail ``hopcounts'' set too low somewhere in the mail path. These users can subscribe and receive warning and probe messages, but no list messages, unless the number of ``Received:'' headers is reduced. Pre-list ``Received:'' headers are of little interest to normal list subscribers. ``Received:'' headers are still copied to the archive and available to anyone from there for message tracking purposes.

-v  Display ezmlm-send version information.

-V  Display ezmlm-send version information.

SUBLISTS
If dir/sublist exists, ezmlm-send changes its behavior in several ways. First, if SENDER is set, and the first line of dir/sublist has the form parent@parenthost, ezmlm-send insists that SENDER have the form parent...@parenthost. Second, ezmlm-send demands that the message already have a Mailing-List field. Third, ezmlm-send does not add its own Mailing-List field. Fourth, ezmlm-send uses the incoming message number for the outgoing message, if the list is not archived and the incoming SENDER has the correct format. This allows you to refer bounce warning recipients to the main list for archive retrieval of the missed messages. If the sublist archives message, it is assumed that missed messages will be retrieved from the sublist archive. The list still increments dir/num for each message. If the sublist is archived, use of incoming message number for archive storage would be a security risk. In this case, the local sublist message number is used.

OPTION USAGE
In general, the use of a prefix is discouraged. It wastes subject line space, creates trouble when MUAs add non-standard reply indicators. However, many users expect it not because it is useful, but because they are used to it. The -C switch prevents posts from being set to SENDER. Rather than just copying out subscriber address files, ezmlm-send has to parse them to look for SENDER. This makes it less efficient. Also, it is useful for the SENDER to see the post to know that it has made it to the list, and it's context to other subscribers, i.e. where it came within the traffic of messages on the list. Avoiding SENDER as a recipient is useful in small lists, such as small teams with varying members, where ezmlm serves mainly as an efficient tool to keep the team connected without administrator intervention. Here the overhead of subscriber list parsing is negligible.

CHARACTER SETS
If the list is indexed, ezmlm-send will keep a message index. rfc2047-encoded subject and from lines will be decoded. If dir/charset exists, ezmlm-send will eliminate redundant escape sequences from the headers according to the character set specified in this file. Only character sets using escape sequences need this support. Currently, supported are iso-2022-jp*, iso-2022-kr, and iso-2022-cn*. Only iso-2022-jp has been tested extensively. The character set can be suffixed by ``:'' followed by a code. Recognized codes are ``Q'' for ``Quoted-Printable'', and ``B'' for ``base64''. For ezmlm-send, this affects the format of the trailer, if a trailer is specified and if the message is a multipart mime message

BUGS
Since the MIME parser doesn't decode inner MIME layers of a multipart/* message, mimekeep, mimeremove, and mimereject will be applied to the outer MIME layer only.

SEE ALSO
ezmlm-get(1), ezmlm-idx(1), ezmlm-manage(1), ezmlm-make(1), ezmlm-sub(1), ezmlm-unsub(1), ezmlm-reject(1), ezmlm(5), qmail-qmqp(1)