ezmlm-send(1) ezmlm-send(1) NNAAMMEE ezmlm-send - distribute a message to a mailing list SSYYNNOOPPSSIISS eezzmmllmm--sseenndd [ --aaAAccCCrrRRvvVV ] [ --hh _h_e_a_d_e_r ] _d_i_r DDEESSCCRRIIPPTTIIOONN eezzmmllmm--sseenndd reads a mail message and sends it to the mailing list stored in _d_i_r. If _d_i_r//aarrcchhiivveedd exists, eezzmmllmm--sseenndd records a copy of the mes- sage in the _d_i_r//aarrcchhiivvee// directory. If _d_i_r//iinnddeexxeedd exists, eezzmmllmm--sseenndd adds the subject, author and time stamp of the message to the index, kept with the message in a subdirec- tory of _d_i_r//aarrcchhiivvee//. 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 eezzmmllmm--ggeett((11)). Use eezzmmllmm--iiddxx((11)) 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 charac- ter set specified in _d_i_r//cchhaarrsseett. The result of this process is the same for a given subject, irrespective of encoding. At the beginning of the message, eezzmmllmm--sseenndd prints a new MMaaiilliinngg--LLiisstt field with the contents of _d_i_r//mmaaiilliinngglliisstt. It rejects the message if there is already a MMaaiilliinngg--LLiisstt field. If _d_i_r//lliissttiidd exists, eezzmmllmm--sseenndd will assume that the format is correct and create a ‘‘List-ID:’’ header by placing the contents after the text ‘‘List-ID: ’’. Next, eezzmmllmm--sseenndd prints all the new fields listed in _d_i_r//hheeaaddeerraadddd. Any tags, ‘‘<#h#>’’, ‘‘<#l#>’’, or ‘‘<#n#>’’ found in these headers are replaced by the list host name, list local name, and message number, respectively. eezzmmllmm--sseenndd then prints an appropriate DDeelliivveerreedd--TToo line. eezzmmllmm--sseenndd deletes any incoming fields with names listed in _d_i_r//hheeaaddeerr-- rreemmoovvee. eezzmmllmm--sseenndd removes MIME parts specified in _d_i_r//mmiimmeerreemmoovvee before archiving and distribution of the message. If _d_i_r//tteexxtt//ttrraaiilleerr exists, eezzmmllmm--sseenndd 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 _d_i_r//cchhaarrsseett. The trailer is not added to multipart/alternative mes- sages. Any tags, ‘‘<#h#>’’, ‘‘<#l#>’’, or ‘‘<#n#>’’ found in _d_i_r//tteexxtt//ttrraaiilleerr are replaced by the list host name, list local name, and message number, respectively. If _d_i_r//pprreeffiixx exists, eezzmmllmm--sseenndd will prefix the subject line with the first line of this file. A space will be added to separate pprreeffiixx from the subject text. pprreeffiixx is ignored for sublists. If _d_i_r//pprreeffiixx con- tains 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 _m_u_s_t 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. _d_i_r//sseeqquueennccee is ignored as of ezmlm-idx-0.32. Use _d_i_r//hheeaaddeerraadddd with substitution to achieve the same goal. If _d_i_r//qqmmqqppsseerrvveerrss exists, eezzmmllmm--sseenndd wwiillll uussee qqmmaaiill--qqmmqqpp((11)) to send messages. eezzmmllmm--sseenndd does not distribute bounce messages: if the environment variable SSEENNDDEERR is set, and is either empty or ##@@[[]], eezzmmllmm--sseenndd rejects the message. OOPPTTIIOONNSS --aa eezzmmllmm--sseenndd assumes that there are two trailer files: _d_i_r//tteexxtt//ttrraaiilleerr and _d_i_r//tteexxtt//aallttttrraaiilleerr. eezzmmllmm--sseenndd will scan the message for the occurence of ‘‘##’’. If found, the trailer used (if the message is otherwise suitable for trailer addition) will be _d_i_r//tteexxtt//ttrraaiilleerr. If not found, _d_i_r//tteexxtt//aallttttrraaiilleerr will be used, and a header will be prefixed with ‘‘#’’. In con- junction with the qmail-verh patch to qqmmaaiill--rreemmoottee this allows inclusing of per-subscriber customized unsubscribe instructions in _d_i_r//tteexxtt//aallttttrraaiilleerr in a manner that does not risk message corruption. --aaaa Same as --aa (see that switch), but the message is assumed to be free of ‘‘##’’ without checking. This is espe- cially useful if piping the message directly to eezzmmllmm--sseenndd since it avoids the need to rewind stdin. --AA (Default.) The message is not checked for ‘‘##’’. If _d_i_r//tteexxtt//ttrraaiilleerr exists and the message is otherwise suitable for header addition, that trailer will be added. No signals for qqmmaaiill--rreemmoottee are added. --cc No longer supported. Ignored for backwards compatibility. --CC No longer supported. Ignored for backwards compatibility. eezzmmllmm--sseenndd has to parse the subscriber database. --hh _h_e_a_d_e_r If the list is a sublist, i.e. _d_i_r//ssuubblliisstt exists, _h_e_a_d_e_r 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 _h_e_a_d_e_r rather than ‘‘Mailing- List’’ to identify messages from the list. Anything after the first colon (if present) in _h_e_a_d_e_r is ignored. --rr Copy incoming ‘‘Received:’’ headers to the outgoing message. --RR (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 some- where 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. --vv Display eezzmmllmm--sseenndd version information. --VV Display eezzmmllmm--sseenndd version information. SSUUBBLLIISSTTSS If _d_i_r//ssuubblliisstt exists, eezzmmllmm--sseenndd changes its behavior in several ways. First, if SSEENNDDEERR is set, and the first line of _d_i_r//ssuubblliisstt has the form _p_a_r_e_n_t@@_p_a_r_e_n_t_h_o_s_t, eezzmmllmm--sseenndd insists that SSEENNDDEERR have the form _p_a_r_- _e_n_t......@@_p_a_r_e_n_t_h_o_s_t. Second, eezzmmllmm--sseenndd demands that the message already have a MMaaiilliinngg--LLiisstt field. Third, eezzmmllmm--sseenndd does not add its own MMaaiilliinngg--LLiisstt field. Fourth, eezzmmllmm--sseenndd 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 sub- list archives message, it is assumed that missed messages will be retrieved from the sublist archive. The list still increments _d_i_r//nnuumm 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. OOPPTTIIOONN UUSSAAGGEE 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 --CC switch prevents posts from being set to SENDER. Rather than just copying out subscriber address files, eezzmmllmm--sseenndd 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 traf- fic 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. CCHHAARRAACCTTEERR SSEETTSS If the list is indexed, eezzmmllmm--sseenndd will keep a message index. rfc2047-encoded subject and from lines will be decoded. If _d_i_r//cchhaarrsseett exists, eezzmmllmm--sseenndd 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. Recog- nized codes are ‘‘Q’’ for ‘‘Quoted-Printable’’, and ‘‘B’’ for ‘‘base64’’. For eezzmmllmm--sseenndd, this affects the format of the trailer, if a trailer is specified and if the message is a multipart mime message SSEEEE AALLSSOO 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) ezmlm-send(1)