| 1 | .TH ezmlm-moderate 1 |
| 2 | .SH NAME |
| 3 | ezmlm-moderate \- process moderator actions for message |
| 4 | acceptance and rejection |
| 5 | .SH SYNOPSIS |
| 6 | .B ezmlm-moderate [-cCmMrRvV] |
| 7 | .B [-t\fI reply-to@host\fB] |
| 8 | .I dir ['/path/program args'] |
| 9 | |
| 10 | .SH DESCRIPTION |
| 11 | .B ezmlm-moderate |
| 12 | reads a mail message, expecting it to contain an |
| 13 | .I -accept |
| 14 | or |
| 15 | .I -reject |
| 16 | action request for the mailing list stored in |
| 17 | .I dir. |
| 18 | |
| 19 | .B ezmlm-moderate |
| 20 | verifies the cookie sent as part of the action request, and if correct |
| 21 | attempts to find the corresponding message in |
| 22 | .IR dir\fB/mod/pending/ . |
| 23 | If the message is found, it is either rejected or posted to the list, |
| 24 | depending on the action request. |
| 25 | |
| 26 | Posts to the list are handled by |
| 27 | piping the message to |
| 28 | .B ezmlm-send(1) |
| 29 | located in the ezmlm binary directory, as set at compile time. This is |
| 30 | usually the directory that ezmlm-moderate resides in. |
| 31 | .B ezmlm-send(1) |
| 32 | is provided with |
| 33 | .I dir |
| 34 | as the first argument. |
| 35 | |
| 36 | If the optional second argument is given, |
| 37 | .B ezmlm-moderate |
| 38 | pipes the message to that program, as executed by sh. |
| 39 | No parameters are supplied. |
| 40 | |
| 41 | .I dir |
| 42 | is passed as an argument to |
| 43 | .BR ezmlm-send(1) , |
| 44 | but NOT to any program specified as the optional |
| 45 | .B ezmlm-moderate |
| 46 | command line argument. |
| 47 | |
| 48 | .B ezmlm-moderate |
| 49 | does not bother to correctly set sender. |
| 50 | .B ezmlm-send(1) |
| 51 | doesn't care, and any other program that might be used can parse the |
| 52 | sender from the first line of the message, which is always |
| 53 | .I Return-Path: <address@host.domain> |
| 54 | as build from SENDER originally passed to |
| 55 | .BR ezmlm-store(1) . |
| 56 | |
| 57 | If the message is rejected, an optional moderator comment is copied into the |
| 58 | notification to the message sender. |
| 59 | A moderator comment is any text in the |
| 60 | .I -reject |
| 61 | request found between two lines with ``%%%'' starting in one of the first |
| 62 | 5 positions of the line. The easiest is to use lines consisting of ``%%%'' |
| 63 | only. If the characters preceeding the ``%%%'' are found at the beginning |
| 64 | of any lines within the comment, the characters are removed. This is to |
| 65 | appropriately ignore any ``quote marks'' that you mail program might place at |
| 66 | the beginning of lines in a reply. |
| 67 | |
| 68 | .B ezmlm-moderate |
| 69 | messages are sent ``From:'' |
| 70 | .IR list-owner@listhost . |
| 71 | This allows the poster to easily complain to the owner of the list, in case |
| 72 | s/he objects. An optional ``Reply-To:'' header can be added via the |
| 73 | .BR \-r\fI\ reply-to@host . |
| 74 | |
| 75 | Once the message has been successfully accepted or rejected, it is removed from |
| 76 | .I dir\fB/mod/pending/ |
| 77 | and a stub is created in |
| 78 | .I dir\fB/mod/accepted/ |
| 79 | or |
| 80 | .IR dir\fB/mod/rejected/ , |
| 81 | respectively. |
| 82 | This is done in order to be able to notify the senders of later moderation |
| 83 | requests about the fate of the message. |
| 84 | |
| 85 | A failure to find the message in |
| 86 | .I dir\fB/mod/pending/ |
| 87 | is most often caused by the message already having been accepted or rejected |
| 88 | by another moderator. Therefore, |
| 89 | .B ezmlm-moderate |
| 90 | looks in |
| 91 | .I dir\fB/mod/accepted/ |
| 92 | and |
| 93 | .I dir\fB/mod/rejected/ |
| 94 | for a message stub. If found, |
| 95 | .B ezmlm-moderate |
| 96 | notifies the sender in the form of a fatal error |
| 97 | if the fate of the message was different from |
| 98 | that intended by the current action request. |
| 99 | Otherwise, the fate of the message is silently logged. |
| 100 | |
| 101 | If the message is not found, it has timed out and the message or |
| 102 | the message stub has been removed by |
| 103 | .BR ezmlm-clean(1) . |
| 104 | In this case, |
| 105 | .B ezmlm-moderate |
| 106 | notifies the moderator of the failure, but can no longer discern the fate |
| 107 | of the original message. Again, notification is in the form of a fatal |
| 108 | error from qmail. |
| 109 | |
| 110 | At the beginning of the message, |
| 111 | .B ezmlm-moderate |
| 112 | prints a new |
| 113 | .B Mailing-List |
| 114 | field with the contents of |
| 115 | .IR dir\fB/mailinglist . |
| 116 | It rejects the message if there is already a |
| 117 | .B Mailing-List |
| 118 | field. |
| 119 | |
| 120 | .B ezmlm-moderate |
| 121 | does not distribute bounce messages: |
| 122 | if the environment variable |
| 123 | .B SENDER |
| 124 | is set, and is either empty or |
| 125 | .BR #@[] , |
| 126 | .B ezmlm-moderate |
| 127 | rejects the message. |
| 128 | .SH OPTIONS |
| 129 | .TP |
| 130 | .B \-cCrR |
| 131 | Passed on to ezmlm-send(1). |
| 132 | .TP |
| 133 | .B \-m |
| 134 | (Default.) |
| 135 | The rejected post is sent as a MIME enclosure. |
| 136 | .TP |
| 137 | .B \-M |
| 138 | The rejected post is appended to the message. |
| 139 | .TP |
| 140 | .B \-t\fI reply-to@host |
| 141 | A ``Reply-To: |
| 142 | .IR reply-to@host '' |
| 143 | header will be added to the moderation request. |
| 144 | .TP |
| 145 | .TP |
| 146 | .B \-v |
| 147 | Display |
| 148 | .B ezmlm-moderate |
| 149 | version information. |
| 150 | .TP |
| 151 | .B \-V |
| 152 | Display |
| 153 | .B ezmlm-moderate |
| 154 | version information. |
| 155 | .SH "CHARACTER SETS" |
| 156 | If |
| 157 | .I dir\fB/charset |
| 158 | exists, |
| 159 | .B ezmlm-moderate |
| 160 | will use the character set listed for all messages. Otherwise, the |
| 161 | default ``us-ascii'' will be used. The character set can be suffixed |
| 162 | by ``:'' followed by a code. If the code is ``Q'', outgoing messages are |
| 163 | sent as ``Quoted-Printable'', if it is ``B'' they are sent ``base64'' encoded. |
| 164 | Otherwise, text is sent as is. |
| 165 | .SH "SEE ALSO" |
| 166 | ezmlm-clean(1), |
| 167 | ezmlm-make(1), |
| 168 | ezmlm-send(1), |
| 169 | ezmlm-store(1), |
| 170 | ezmlm(5) |