6. Possible error conditions in ezmlm lists
6.1 What do I do if ezmlm doesn't work?Try to determine where the problem occurs and how to reproduce it:
If you have solved a problem that you believe might be more general, please send a description of the problem and its solution to the authors, ideally as a FAQ item.
6.2 How do I report ezmlm bugs?If you have found a bug in the ezmlm-idx additions, please
send a bug report by E-mail to If you have found a bug in ezmlm proper (unlikely), please send a similar
bug report to
6.3 Where do I send suggestions for ezmlm-idx improvements?E-mail to
6.4 Using ezmlm-check to find setup errors.ezmlm-check(1) is included in the ezmlm-idx distribution. ezmlm-check(1) is an evolving shell script which when put into a .qmail file of a mailing list will return information about the environment variables passed by qmail to ezmlm as well as the list setup. It also attempts to check for common error conditions, such as HOST and DIR/inhost mismatch, missing files, etc. To use ezmlm-check(1), place a line:
where ``DIR'' is the list directory, as the first line in
DIR/editor (for mail to list),
DIR/manager (for mail to list-subscribe ,
list-help, etc), DIR/moderator (for mail to list-accept ,
list-reject ).
ezmlm-check(1) will send its output to
SENDER. The rest of the .qmail file will be ignored.
If you use a non-standard
ezmlm binary directory, change the
ezmlm-check(1) path accordingly.
ezmlm-check(1) in combination with mail logs and ezmlm error messages should make it easy to diagnose setup problems. When done, don't forget to remove the ezmlm-check(1) line. It is not security-proofed against SENDER manipulation and with it in place, the list won't work. ezmlm-check(1) does not check all aspects of list generation, but catches all common errors when lists are created with ezmlm-make(1), an many other errors as well. The ezmlm-check(1) reply is also very valuable for support via E-mail.
6.5 Posts are rejected: Sorry, no mailbox here by that name (#5.1.1).qmail tried to deliver the mail, but there is no mailbox with that name. ezmlm-make(1) was used with incorrect arguments, often in conjunction with a virtual domain setup. If the list is in a virtual domain, the ``host'' argument for ezmlm-make(1) should be the virtual domain, not the real host name. See What names can I use for my mailing lists? and Lists in virtual domains for more info. Other possibilities are that your qmail setup is incorrect.
For a virtual domain controlled by user ``virt'', create
~virt/.qmail-test
containing ``|/bin/echo "It worked";
exit 100''. Now send mail to If these tests worked, but your list still does not, you most likely supplied
an incorrect ``dot'' argument for
ezmlm-manage(1). It should be
~virt/.qmail-test for the list
6.6 Post are not sent to subscribers.
6.7 Subscribe fails: I do not accept messages at this address (#5.1.1).This error occurs because the local part of the recipient address (as
passed in the environment variable ``LOCAL''; e.g. Another potential source of the problem are mistyped ezmlm-make arguments, such as the host name. It is also possible that address rewriting leaves the recipient host name (as passed in the environment variable ``HOST'') different from the name specified in DIR/inhost. In general, these problems are easy to diagnose with the ezmlm-check(1) script (See Using ezmlm-check to find setup errors).
6.8 ezmlm-make fails: usage: ezmlm-make ...The command line you specified is incomplete. Usually, a command line argument has been omitted or a switch was placed after the other arguments rather than before. The same error is issued when you attempt to invoke ezmlm-make(1) with only the ``DIR'' argument without using the ``-e'' or ``-+'' switch. Other command line arguments can be omitted only when editing lists created or previously edited with ezmlm-make from ezmlm-idx>=0.23.
6.9 ezmlm-make fails: Unable to create ...This error occurs when ezmlm-make is used to set up a list, and it tries to create a directory or a .qmail-list link that already exists. Usually, this occurs because the list already exists. If you are creating a new list, first erase remnants of any old test lists by deleting the list directory and the link files: NOTE: DO NOT USE THESE COMMANDS WITHOUT UNDERSTANDING THEM. You may erase more than you intended!
If you want to save some files (such as in DIR/text/), make
backup copies first, run ezmlm-make, then copy the backups to
DIR/text/. Of course, it is usually easier to create a custom
.ezmlmrc,
and than use that for all your lists.
To use ezmlm-make(1) to modify an existing list, without changing the subscriber or moderator lists or the message archive, use the ezmlm-make ``-e'' switch. NOTE: any customization that you've made that is not specified by the ezmlmrc(5) file used will be overwritten. For instance, if you manually added checks to DIR/editor, a pointer to a custom moderator database in e.g. DIR/modsub, or made a change to a DIR/text/ file (such as adding a ``welcome'' message to DIR/text/sub-ok) these changes will be lost. To retain such changes (especially ones that are common for several of your lists), place them in a local ~/.ezmlmrc file instead. You can either make such changes the default for your lists, or you can configure ~/.ezmlmrc so that they are added only if a specific ezmlm-make switch is used. (see Customizing ezmlm-make operation).
6.10 ezmlm-make fails: ... ezmlmrc does not existThere is no readable ezmlmrc(5) file in /etc/ nor in the ezmlm binary directory. If you have .ezmlmrc in ``dotdir'' (see Terminology: dotdir) use the ezmlm-make(1) ``-c'' switch (see Customizing ezmlm-make operation).
6.11 Index/get/thread requests fail quietly or with errors from ezmlm-manage.Make sure this is an indexed list and has an ``ezmlm-get'' line first
in DIR/manager. If not, your commands are fed directly to
ezmlm-manage(1). If they contain ``-'', ezmlm-manage interprets the
rest as an address to which it sends the error message.
Usually, this results in a "trash address" mail log entry and
a bounce, which is why you don't see any error message. The
same happens if you send non-existing commands followed by ``-'' and
arguments. Thus,
6.12 Digest triggering requests fail.If you get an error message, it tells you why the request failed. If you do not, see the previous item. Try using syntax without ``-'' after the ``dig'' command. Also, requests that would result in an empty digest are silently ignored, but the reason why no digest was created is logged to the mail log. This is done so that cron scripts generating daily digest will just fail silently, rather than generating an error, for what isn't really one.
6.13 Remote administration (un)subscribe confirm requests go to the user, not the moderator.Either the list is not set up for remote administration (i.e.
DIR/remote does not exist), or the moderator is sending the
request from an address that is not in the moderator database
(e.g. from
6.14 (Un)subscribers does not receive a (un)subscribe acknowledgementWith normal ezmlm lists, a subscriber confirming a subscription or a non-subscriber confirming a unsubscribe request results in a message to the target address. This message is suppressed when the list is set up for subscription and/or remote administration, so that confirmations from multiple moderators do not result in multiple messages to the target address. The target address is always notified if the subscriber status of the address changes (from non-subscriber to subscriber or vice versa).
6.15 Messages posted to a moderated list are sent out without moderation.The list is not set up as a moderated list. Check DIR/editor. If should contain a ezmlm-store(1) line after the ezmlm-reject line if it is a moderated list. No ezmlm-send(1) line should be in DIR/editor. If there is, the list is not moderated. Also, DIR/modpost must exist. If it does not, ezmlm-store(1) will post the messages directly (via ezmlm-send(1)) without sending them out for moderation first. This makes it easy to temporarily remove message moderation by simply removing DIR/modpost, but may be confusing if the user is unaware of this ezmlm-store(1) feature.
6.16 Messages posted to a moderated list do not result in moderation requests.
6.17 Moderation request replies do not result in the appropriate action.
6.18 Moderator comments with moderation request replies are not added to the post/sent to the poster.Moderator comments are where the moderator chooses to ``reject'' the message and inform the person posting which his/her message was inappropriate. However, if a moderator wants to comment on accepted posts, the moderator may only do so via a follow-up post to the list. This is to avoid anonymously tagged-on text to posts. If a moderator has something to say to the list, they should (and can only) do so in regular posts. If you want to edit posts before sending them to the list, set up a moderated list with you as the only moderator. Into DIR/editor before the ezmlm-store(1) line, put a condredirect(1) line that redirects all messages with a SENDER other than you to your address. You can edit the contents ands repost, the message will pass condredirect(1), and hit ezmlm-store(1). You will be asked to confirm (needed to assure that nobody else can post directly) and when you do, the messages is posted. Moderator comments for ``reject(ed)'' posts need to be enclosed between two lines (yes, the end marker is required), having ``%%%'' starting on one of the first 5 positions of the line. If there are characters before the marker, these will be removed from any comment line that starts with the same characters (e.g. the characters before ``comment2'' in the example below will be removed):
%%% comment %%%or: > %%% comment > comment2 > %%%but not: %% COMMENT %%and not: %%% this is my comment %%%or ezmlm said>%%% comment ezmlm said>%%%
6.19 Some headers are missing from messages in the digest.By default, only a subset of message headers are sent out in any digest and archive retrieval requests. First, headers in DIR/headerremove are stripped. Most non-essential headers are excluded when the default archive retrieval format (``m'') is used. Use the ``v'' or ``n'' format (see ezmlm-get(1)) to get all message headers that are in the archive.
6.20 My Mutt users cannot thread their digest messages.The digest by default removed non-essential headers like ``In-Reply-To:'' from messages. Modern MUAs, like Mutt can split out messages from a digest and then thread them based on such headers. To include these and all other headers in the digest messages, use the ``v'' or ``n'' format as described on the ezmlm-get(1) man page. Normally, the threading done by ezmlm is sufficient and the default format preferred to reduce message and digest size, often by 25% or more.
6.21 Posts fail: Message already has Mailing-List (#5.7.2).The list you are trying to post to is used as a sublist (a list fed with messages from another (ezmlm) list), but not properly set up as a sublist. Put the name of the parent list (``origlist@orighost'') which exactly matches the SENDER of the original (or parent) list into DIR/sublist. Check the ownership of DIR/sublist, to make sure that the user controlling the list can read it. Alternatively, use the
ezmlm-make(1) ``-0
6.22 The last line of a DIR/text/ file is ignored.Only complete lines ending with ``newline'' are copied. The last line in the DIR/text/ file most likely lacks a terminal ``newline''.
6.23 No CONFIRM requests are sent to moderators.Assuming that the user initiated the subscribe request, got a ``confirm'' request, and replied correctly, there are two possible causes for the problem: Either the list is not subscription moderated (in this case the user is subscribed and received a note saying so) or the list is subscription moderated but no moderators have been added ( ezmlm-manage(1) sends out the request and doesn't mind that there are no recipients). Check that the list is subscription moderated:
If this fails the list is not subscription moderated. If it
succeeds with a directory name with a leading ``/'', this is
your ``moddir''. If not:
If this succeeds with a directory name with a leading ``/'',
this is your moddir, otherwise the moddir is ``DIR/mod/''.
Check for moderators:
If there are none, this is your problem. If there are some,
check the mail log to see what happened when the CONFIRM
requests was supposed to have gone out. Assure correct
ownerships for the moderator db:
For ~alias:
Another possible problem is that you are trying to use the
remote admin feature to subscribe a user, but you get no
CONFIRM request. Usually, this is due to your SENDER address
not being in the moderator database.
The CONFIRM request went to the
target address instead, since as far as ezmlm is concerned,
you are a regular user.
6.24 Deliveries fail ``temporary qmail-queue error''Usually, this is due to a corrupted qmail queue (should affect all mail) or a corrupted ezmlm subscriber database (See How to deal with corrupted subscriber lists).
6.25 How to deal with corrupted subscriber listsDan has made ezmlm very robust, but a subscriber list can still become
corrupted due to e.g. disk errors. Usually, this will lead to a
``temporary qmail-queue error'' because an address does not conform to
the standard format. Occasionally, two E-mail addresses are fused, e.g.
``
This will list all E-mail addresses, allow you to edit them, then re-subscribe them. Don't forget to re-enable deliveries.
6.26 Vacation program replies are treated as bounces by ezmlmStandard vacation programs do not reply to messages that contain a ``Precedence: bulk'' header. ezmlm-idx>=0.23 sets up lists with this header in DIR/headeradd. For older lists, use ``ezmlm-make -+'' or ``ezmlm-make -e'' to update them, or just add a ``Precedence: bulk'' line to DIR/headeradd.
6.27 Digests do not come at regular hoursIn the default setup, ezmlm-tstdig(1) determines if a new digest is due every time a message arrives to the list. Thus, even though ezmlm-tstdig is set to produce digests 48 hours after the previous digest, the digest will not be generated until a message arrives. If you'd like digests at a specific time each day, use crond(8) and crontab(1) to daily run:
6.28 Preventing loops from misconfigured subscriber addresses.Occasionally, a subscriber address is misconfigured and automatically sends a message back to the list. Sometimes, the subscriber's setup has removed headers that ezmlm uses for loop detection or the generated messages has nothing in common with the send-out. To block such mail at the list, include the ezmlm-make(1) ``-k'' (kill) switch and add the offending address to DIR/blacklist/ with
ezmlm-unsub(1) and
ezmlm-list(1) can be used similarly to remove or list the
addresses. If your list is configured for remote administration (see
How remote administration works), and you
are a remote administrator, you can
add the address by sending mail
to list-deny-badadr=badhost@listhost . Other subscriber database
commands work as well for list-deny .
In other instances, a configuration error somewhere close to the subscriber creates a local mail loop throwing off messages to you. They are often bounces that are sent to the list address or to ``list-help'' due to configuration errors. Rather than accepting these, or the often resulting double bounces to ``postmaster'', just add a ``|/path/ezmlm-weed'' line first to DIR/editor or DIR/manager. This discards the bounce messages generated by the looping systems. ezmlm-weed(1) is also useful in other settings where excessive numbers of error messages are sent to the wrong address.
6.29 A user can subscribe and receives warning and probe messages, but no messages from the list.ezmlm lists (ezmlm-idx>=0.31) remove ``Received:'' headers from incoming messages by default. This can be prevented with the ezmlm-send(1) ``-r'' switch. When the headers are propagated, especially sublist message may have many (15-20 or more), ``Received:'' headers. If there is a poorly configured sendmail host with a ``hopcount'' set too low, it will bounce these messages, incorrectly believing that the many ``Received:'' headers are due to a mail loop. The reason that administrative from the list do not bounce is that they have fewer ``Received:'' headers, since they originate from the sublist. The message with all headers including the removed ``Received:'' headers can be retrieved from the list archive with the -getv command. The top incoming ``Received:'' header is added by qmail at the receipt to the list (or last sublist) host. This header is not removed, to allow the recipient to determine when the message reached the list.
|
© Copyright 1997, 1998, 1999 Fred Lindberg, lindberg@id.wustl.edu & Fred B. Ringel, fredr@rivertown.net This page was last built on 10/3/99; 1:29:08 PM on the MacOs Comments/Suggestions: webmaster@ezmlm.org |