home *** CD-ROM | disk | FTP | other *** search
/ ftp.pasteur.org/FAQ/ / ftp-pasteur-org-FAQ.zip / FAQ / mail / list-admin / majordomo-faq next >
Encoding:
Internet Message Format  |  1998-04-07  |  56.4 KB

  1. Path: senator-bedfellow.mit.edu!bloom-beacon.mit.edu!news.kodak.com!news-pen-16.sprintlink.net!newsfeed.nysernet.net!news.nysernet.net!206.229.87.26!news-east.sprintlink.net!news-peer.sprintlink.net!news.sprintlink.net!Sprint!newsfeed.internetmci.com!192.232.20.2!malgudi.oar.net!news.cis.ohio-state.edu!bounce-bounce
  2. From: barr@stumble.cis.ohio-state.edu (Dave Barr)
  3. Newsgroups: comp.mail.list-admin.software,comp.mail.misc,comp.mail.sendmail,comp.mail.smail,comp.answers,news.answers
  4. Subject: Majordomo Frequently Asked Questions
  5. Supersedes: <majordomo-faq_889110181@cis.ohio-state.edu>
  6. Followup-To: comp.mail.list-admin.software
  7. Date: 6 Apr 1998 10:03:02 -0400
  8. Organization: The Ohio State University Dept. of Computer and Info. Science
  9. Lines: 1139
  10. Approved: news-answers-request@MIT.Edu
  11. Expires: 10 May 1998 14:03:01 GMT
  12. Message-ID: <majordomo-faq_891871381@cis.ohio-state.edu>
  13. NNTP-Posting-Host: stumble.cis.ohio-state.edu
  14. Summary: This is a list of frequently asked questions about Majordomo,
  15.     a Perl-based package for managing mailing lists
  16. Article-Names: comp.mail.list-admin.software:faq
  17. Xref: senator-bedfellow.mit.edu comp.mail.list-admin.software:3726 comp.mail.misc:44262 comp.mail.sendmail:55620 comp.mail.smail:4149 comp.answers:30809 news.answers:127160
  18.  
  19. Version: $Id: majordomo-faq.html,v 1.164 1998/04/06 13:33:16 barr Exp barr $
  20. Archive-Name: mail/list-admin/majordomo-faq
  21. Posting-Frequency: monthly
  22.  
  23.    Note: This FAQ has been recently updated to be exclusively for
  24.    Majordomo 1.94 and up.
  25.    
  26.    Table of Contents:
  27.     1. What is Majordomo and how can I get it?
  28.           + 1.1 - What is Majordomo?
  29.           + 1.2 - Where do I get Majordomo?
  30.           + 1.3 - How do I install it?
  31.           + 1.4 - How do I upgrade from an earlier release?
  32.           + 1.5 - Where do I report bugs or get help with Majordomo?
  33.           + 1.6 - Which is better, Majordomo or LISTSERV?
  34.           + 1.7 - How can I access Majordomo via the Web?
  35.     2. Problems setting up Majordomo
  36.           + 2.1 - What are the proper permissions and ownership of all
  37.             Majordomo files and directories?
  38.           + 2.2 - I get a MAJORDOMO ABORT with "chown(...): Not owner" or
  39.             ".. Operation not permitted"
  40.           + 2.3 - I get "sh: wrapper: cannot execute" or "wrapper:
  41.             permission denied"
  42.           + 2.4 - I get "Unknown mailer error" when majordomo runs
  43.           + 2.5 - I get an error "insecure usage" from the wrapper
  44.           + 2.6 - I get "majordomo: No such file or directory" from the
  45.             wrapper
  46.           + 2.7 - I get an error "Can't locate majordomo.pl"
  47.           + 2.8 - I told my majordomo.cf where to archive the list, why
  48.             isn't it working?
  49.           + 2.9 - config-test can't seem to find ctime.pl or resend can't
  50.             find getopts.pl
  51.           + 2.10 - A list is visible via lists, but can't subscribe or
  52.             'get' files
  53.           + 2.11 - I get "sh: wrapper not available for sendmail
  54.             programs"
  55.           + 2.12 - I get "Aliasing/Forwarding Loop Broken"
  56.     3. Setting up mailing lists and aliases
  57.           + 3.1 - How do I direct bounces to the right address?
  58.           + 3.2 - Semi-automated handling of bounced mail
  59.           + 3.3 - What's this Owner-List and List-Owner stuff? Why both?
  60.           + 3.4 - How should I configure resend for Reply-To headers?
  61.           + 3.5 - How can I hide lists so they can't be viewed by
  62.             'lists'?
  63.           + 3.6 - How can I restrict a list such that only subscribers
  64.             can send mail to the list?
  65.           + 3.7 - Can I have the list owner or approval person be
  66.             changeable without intervention from the Majordomo owner?
  67.           + 3.8 - What are all these different passwords?
  68.           + 3.9 - How do I tell majordomo to handle "get"-ing of binary
  69.             files?
  70.           + 3.10 - How do I set up a moderated list?
  71.           + 3.11 - How do I set up a digested version of a list?
  72.           + 3.12 - How do I setup virtual majordomo domains?
  73.     4. Mailer and list admininistration problems
  74.           + 4.1 - Address with blanks are being treated separately
  75.           + 4.2 - Why aren't my digests going out?
  76.           + 4.3 - Why do I get duplicate mail sent to the list?
  77.           + 4.4 - How do I gate my list to and/or from a newsgroup?
  78.           + 4.5 - How can I improve Majordomo's performance?
  79.           + 4.6 - How can I handle X.400 addresses?
  80.           + 4.7 - Why is the Subject of my messages missing?
  81.           + 4.8 - I'm getting mail from majordomo with "BOUNCE:" what do
  82.             I do? How do I stop this?
  83.           + 4.9 - My list configuration doesn't seem to be working.
  84.           + 4.10 - How do I set it up so that the originator of a message
  85.             doesn't get a copy of his/her own message back?
  86.           + 4.11 - With Smail or Exim, users subscribing to a list
  87.             sometimes get mail sent before they subscribed
  88.           + 4.12 - Majordomo doesn't seem to work with sendmail 8.9beta
  89.        
  90.    This FAQ is Copyright 1996 by David Barr and The Ohio State
  91.    University. This document may be reproduced, so long as it is kept in
  92.    its entirety and in its original format.
  93.    
  94.    Credits:
  95.    This FAQ originally written by Vincent D. Skahan. Many thanks to the
  96.    members of the majordomo-workers and majordomo-users mailing lists for
  97.    many of the questions and answers found in this FAQ. Thanks to
  98.    fen@comedia.com (Fen Labalme) for getting an HTML version started.
  99.    
  100.    You can get an HTML version of this FAQ on the World Wide Web at
  101.    http://www.cis.ohio-state.edu/~barr/majordomo-faq.html. You can
  102.    request a copy by email by sending a message to
  103.    mail-server@rtfm.mit.edu, with the following text in the body:
  104.    
  105. send usenet/comp.mail.list-admin.software/Majordomo_Frequently_Asked_Questions
  106.  
  107.    If you have any questions or submissions regarding this FAQ, send them
  108.    to barr@cis.ohio-state.edu (David Barr).
  109.      _________________________________________________________________
  110.    
  111. Section 1: What is Majordomo and how can I get it?
  112.  
  113.   1.1 - What is Majordomo?
  114.   
  115.    Majordomo is a program which automates the management of Internet
  116.    mailing lists. Commands are sent to Majordomo via electronic mail to
  117.    handle all aspects of list maintainance. Once a list is set up,
  118.    virtually all operations can be performed remotely, requiring no
  119.    intervention upon the postmaster of the list site.
  120.    
  121.    See the main Majordomo web page at:
  122.    http://www.greatcircle.com/majordomo/
  123.    
  124.    Majordomo controls a list of addresses for some mail transport system
  125.    (like sendmail or smail) to handle. Majordomo itself performs no mail
  126.    delivery (though it has scripts to format and archive messages).
  127.    
  128.      majordomo - n: a person who speaks, makes arrangements, or takes
  129.      charge for another. From latin "major domus" - "master of the
  130.      house". 
  131.      
  132.    Majordomo is written in Perl. It will work with Perl 4.036 or Perl
  133.    5.002 or greater. It will not work with Perl 5.001!!!. It is
  134.    recommended that you use the latest release of Perl that you can get,
  135.    which can be found at http://www.perl.com/perl/. You must upgrade to
  136.    version 1.94.3 in order for it to work with Perl 5.004, due to changes
  137.    in regular expressions. While Majordomo is still compatible with Perl
  138.    4.036, future versions will likely be Perl 5 only.
  139.    
  140.    Many people have been having problems with DEC OSF/1 AXP systems with
  141.    Majordomo. Apparently Perl on the Alphas is not as stable as compared
  142.    to other platforms, and Majordomo tickles bugs in that port of Perl.
  143.    If you are having problems, please make sure you are running the very
  144.    latest version of Perl (version 5.002 is known to work).
  145.    
  146.    There have also been reported problems with the native compiler for
  147.    AIX 3.2.5. Perl compiled with that compiler will crash when running
  148.    Majordomo (even though it passes all the regression tests), however if
  149.    you compile Perl with gcc it will work.
  150.    
  151.    Majordomo was developed under UNIX based systems, but will probably
  152.    work on others. If you can get Perl to compile and run cleanly on your
  153.    system, and can send Internet mail by piping or calling an external
  154.    program (and that external program reads its list of recipients from a
  155.    plain text file), you can probably get Majordomo to work on a wide
  156.    variety of UNIX-based and non-UNIX based systems. There is no known
  157.    port of Majordomo to Windows NT or Win95.
  158.    
  159.    Here's a short list of some of the features of Majordomo.
  160.    
  161.      * supports various types of lists, including moderated ones.
  162.      * List options can be set easily through a configuration file,
  163.        editable remotely.
  164.      * Supports archival and remote retrieval of messages.
  165.      * Supports digests.
  166.      * Written in Perl, - easily customizable and expandable.
  167.      * Modular in design.
  168.      * Includes support for FTPMAIL.
  169.      * Supports confirmation of subscriptions (to protect against forged
  170.        subscription requests).
  171.      * List filters
  172.        
  173.   1.2 - Where do I get Majordomo?
  174.   
  175.    Via the Web at:
  176.    http://www.greatcircle.com/majordomo/ Via anonymous FTP at:
  177.    ftp://ftp.greatcircle.com/pub/majordomo/
  178.    ftp://ftp.sgi.com/other/majordomo/
  179.    ftp://ftp.sgi.com/other/majordomo/
  180.    
  181.    The current version is 1.94.4. It includes a security fix for a bug
  182.    found in 1.94.3 and prior.
  183.    
  184.    If you don't have Perl, you can get it from:
  185.    
  186.    http://www.perl.com/perl/
  187.    
  188.    Use that link for more information about Perl, too. The FTPMAIL
  189.    package can be found in ftp://src.doc.ic.ac.uk/packages/ftpmail or any
  190.    comp.sources.misc archive (volume 37).
  191.    
  192.   1.3 - How do I install it?
  193.   
  194.    Majordomo comes with a rather extensive INSTALL file. Read this file
  195.    completely. There's also a README file which also covers some common
  196.    problems. This FAQ is meant to be a supplement to Majordomo's
  197.    documentation, not a replacement for it. If you have any questions
  198.    that this FAQ doesn't cover, chances are that it is covered in the
  199.    documentation in the Majordomo distribution. For anyone who is going
  200.    to run a list, you must read Doc/list-owner-info before trying to do
  201.    anything. If you don't have access to the system where your list is
  202.    being run, the Majordomo maintainer who set up your list should have
  203.    sent it to you. Bug him if he didn't.
  204.    
  205.    If you have permission problems unpacking the distribution, try using
  206.    the 'o' flag to tar to ignore user/group information.
  207.    
  208.   1.4 - How do I upgrade from an earlier release?
  209.   
  210.    Be sure to browse the "Changelog" file to get an idea what has
  211.    changed. There currently is no canned set of instructions for
  212.    upgrading from an earlier release. The most straightforward method is
  213.    to simply install the current release in a different directory, (with
  214.    the same list/archive/digest directories) and change the mail aliases
  215.    for each list to use the new Majordomo scripts as soon as you feel
  216.    comfortable with the new setup.
  217.    
  218.    Be careful in upgrading to 1.94 that you update your $mailer and
  219.    $bounce_mailer variables in your majordomo.cf! There are also some
  220.    other new variables too. You may want to update the list .config files
  221.    so they contain any new variables found in the new release. You just
  222.    need to do a 'writeconfig' for each list, and majordomo will update
  223.    the .config file using the existing values in the old .config file.
  224.    Any new variables will be set to defaults for a new list.
  225.    
  226.   1.5 - Where do I report bugs or get help with Majordomo?
  227.   
  228.    Please DO NOT ask the FAQ maintainer for help on Majordomo. I will
  229.    probably accidently delete your message. Let me say that about 90% of
  230.    the answers I give are from the documentation or this FAQ. Most of the
  231.    rest are answered by reading the source. It's really not that hard to
  232.    figure out.
  233.    
  234.    If you need help, there is a mailing list
  235.    majordomo-users@greatcircle.com, which is frequented by lots of users
  236.    of Majordomo. Report actual bugs to majordomo-workers@greatcircle.com.
  237.    It's a good idea to search an browse the list archives below for the
  238.    last couple months since many of the same questions are asked (and
  239.    answered) over and over again. There are searchable list archives
  240.    (thanks to Jason Tibbitts) at http://www.hpc.uh.edu/majordomo-users/
  241.    and http://www.hpc.uh.edu/majordomo-workers/.
  242.    
  243.    Be sure always to include which version of Majordomo you are using.
  244.    You should also include what operating system you are using, what
  245.    version of Perl, and what mailer (sendmail, smail, qmail, etc) and
  246.    version you are using, especially if you can't get Majordomo to work
  247.    at all. But first, you must have thoroughly read the ALL documentation
  248.    in the Majordomo distribution and this FAQ. If you got this FAQ from
  249.    the Majordomo distribution, or anywhere except from the WWW site at
  250.    the top of this document don't expect it to be up-to-date. It's
  251.    probably not.
  252.    
  253.    There is an FTP site for unofficial patches. See
  254.    ftp://sol.ccsf.cc.ca.us/majordomo-patches/ . What's in it? Messages
  255.    that are saved from the majordomo-users and -workers mailing lists.
  256.    There are INDEX files in each part with one-line summaries of each
  257.    patch, and a README file in the top directory with overall
  258.    information. If you have patches that you think should be in the
  259.    archive, you can FTP or email them in. The top-level README file tells
  260.    how to do it. Please contribute -- to save other people the headaches
  261.    you had. NOTE: The patches are NOT "official" patches approved by Chan
  262.    Wilson or anyone else. Use your own judgement before (and after) you
  263.    apply them.
  264.    
  265.    Nick Perry also has various patches for 1.94.3 at
  266.    ftp://ftp.amulation.co.uk/pub/majordomo_patches/. They are patches
  267.    which add various functions to majordomo.
  268.    
  269.    Do NOT ask questions about Majordomo on the
  270.    list-managers@greatcircle.com list. That list is for general
  271.    discussions about running mailing lists, not for help on specific
  272.    packages. The same goes for the Usenet group
  273.    comp.mail.list-admin.policy.
  274.    
  275.    There is a good guide for people running majordomo lists at
  276.    http://docuspace.uchicago.edu/g_maj-adm.html.
  277.    
  278.    Look for a great book coming out from O'Reilly and Associates called
  279.    "Managing Mailing Lists", by Alan Schwartz. You can read my review of
  280.    the book at
  281.    http://www.cis.ohio-state.edu/~barr/managing-maillist-review.html . I
  282.    was one of the book's technical reviewers. Sorry, I don't know when it
  283.    will hit the bookshelves.
  284.    
  285.   1.6 - Which is better, Majordomo or LISTSERV?
  286.   
  287.    For a good comparison of various mailing list managers (MLM's) there's
  288.    a good FAQ by Norm Aleks. It is posted monthly to news.answers and
  289.    comp.mail.list-admin.software. It's also mirrored at the following
  290.    URL.
  291.    ftp://ftp.uu.net/usenet/news.answers/mail/list-admin/software-faq.
  292.    Contact naleks@library.ummed.edu (Norm Aleks) for more information.
  293.    
  294.   1.7 - How can I access Majordomo via the Web?
  295.   
  296.    There are various Web interfaces to Majordomo available.
  297.      * LWGate - http://www.netspace.org/users/dwb/lwgate.html
  298.      * Regan's - http://www.peak.org/peak_info/mlists/Majordomo.html
  299.      * MajorCool - http://ncrinfo.ncr.com/pub/contrib/unix/MajorCool/
  300.      * MailServ - http://iquest.com/~fitz/www/mailserv/
  301.      * Pandora - http://www.ed.umuc.edu/products/pandora.html
  302.      * Maitre-d - http://www.outer.net/wps/content2.htm#ch12
  303.      * Gutierrez' - http://gaia.gutierrez.com/majordomo/
  304.      * Marcos' - http://www.inf.utfsm.cl/~marcos/majordomo/www.html
  305.      * ListTool - http://www.listtool.com/
  306.        
  307. Section 2: Problems setting up Majordomo
  308.  
  309.   2.1 - What are the proper permissions and ownership of all Majordomo files
  310.   and directories?
  311.   
  312.    By far the biggest problem in setting up Majordomo is getting all the
  313.    permissions and ownerships right. In part this is due to the security
  314.    model that Majordomo uses, and it's also due to the fact that it's
  315.    hard to automate this process. Once you install majordomo, run
  316.    "./wrapper config-test" as some other user (like you) and read the
  317.    results. Do NOT run "./wrapper config-test" as 'root' or your
  318.    'majordom' user. That will defeat the test of the wrapper operation.
  319.    The config-test script will check your installation for correct
  320.    permissions (as well as other tests) and report any problems. It's not
  321.    quite perfect, but it catches 95% of all problems.
  322.    
  323.    Majordomo works by using a small C "wrapper" which works by allowing
  324.    Majordomo to always run as the "majordom" user and group that you
  325.    create. (note that the wrapper may disappear in a future release,
  326.    since its function could safely be replaced by features found in Perl
  327.    5) You can use a different name than "majordom" for your user and
  328.    group, but that is what is assumed for the explanations found in this
  329.    document. The 1.94.3 INSTALL file suggests using 'daemon' as your
  330.    majordomo group. This is the group that 'sendmail' runs as, and allows
  331.    you to have $homedir permissions set to 750. This has the disadvantage
  332.    in environments where there may be one or more administrators of the
  333.    Majordomo system or where you don't want to always have to 'su' the
  334.    the majordomo user to do administration. (you don't really want to put
  335.    other normal users in the 'daemon' group for security reasons) If you
  336.    create a separate 'majordom' group and add yourself and other
  337.    majordomo administrators to it, then you'll need to make sure the
  338.    $homedir and wrapper have world execute permission, and you may have
  339.    to add 'majordom' to the 'trusted' list of users in your sendmail.cf.
  340.    (otherwise sendmail 8.x will probably give
  341.    "X-Authentication-Warning:"'s)
  342.    
  343.    Because Majordomo does not run with any "special" (root) priviliges,
  344.    and because of the fact that Majordomo does a lot of .lock-style
  345.    locking (with shlock.pl), permissions on all files and directories are
  346.    critical to the correct operation of Majordomo.
  347.    
  348.     The wrapper
  349.     
  350.    The wrapper is compiled in one of two ways, by uncommenting the
  351.    correct section in the Makefile for your type of system. If you are
  352.    unsure if your system is POSIX or not, I would suggest you assume that
  353.    your system is not. (The default is POSIX) If things don't work right
  354.    (for example you get symptoms of permission problems or you get an
  355.    error from the wrapper saying to recompile using POSIX flags), then
  356.    try POSIX.
  357.    
  358.    Some systems which are non-POSIX: SunOS 4.x, Ultrix, most BSD 4.2 and
  359.    4.3-based systems. POSIX systems include: Solaris 2.x, IRIX 5.x, BSDI
  360.    (and other 4.4 BSD-based systems), Linux.
  361.    
  362.    Make sure W_PATH is right in the Makefile. On IRIX 5.x, you need to
  363.    add /usr/bsd to the W_PATH to get the hostname (needed by Perl)
  364.    command. (IRIX doesn't have a /usr/ucb). If you are on a non-POSIX
  365.    system, the wrapper must be both suid and sgid (mode 6755) to
  366.    "majordom". It must not be setuid root!
  367.    
  368.    OR
  369.    
  370.    On a POSIX system the wrapper must be setuid root, and double-check
  371.    that W_USER and W_GROUP are the uid and gid of the "majordom" user and
  372.    group. Don't ever set W_USER to be 0!
  373.    
  374.    Then compile the wrapper and install it. Do not install the wrapper on
  375.    an NFS filesystem mounted with the "nosuid" option set. This will
  376.    prevent the wrapper from working.
  377.    
  378.     Majordomo files
  379.     
  380.    All files that majordomo creates will be mode 660, user "majordom",
  381.    group "majordom" if it is running correctly (see $config_umask in the
  382.    majordomo.cf). The "Log" file that Majordomo writes logging
  383.    information to must have this same permission and ownership. Make sure
  384.    any files you create by hand (.config, subscription lists) have this
  385.    same permission and ownership. (they can also be mode 664 if you don't
  386.    need the contents to be private to others) The permissions/ownership
  387.    of the Majordomo programs and related files themselves aren't as
  388.    critical, but the must all be readable to the "majordom" user/group.
  389.    All Majordomo programs (majordomo, resend, etc.) must have the execute
  390.    bit set. All Majordomo programs must have the correct path to Perl in
  391.    the #! line in the beginning of the script. The 'make install' process
  392.    should do this all automatically for you.
  393.    
  394.     Majordomo directories
  395.     
  396.    All directories under Majordomo's control ($homedir, $listdir,
  397.    $digest_work_dir, $filedir, as defined in your majordomo.cf) must be
  398.    at least mode 750 (or 755). They should be user and group owned by
  399.    "majordom". If want to allow a local user to be able to directly
  400.    modify files or for example copy files into a list's archive
  401.    directory, you may make the directory or file owned by that user.
  402.    However directories and files must be then group-"majordom" writeable
  403.    (770 or 775).
  404.    
  405.   2.2 - I get a MAJORDOMO ABORT with "chown(...): Not owner" or ".. Operation
  406.   not permitted"
  407.   
  408.    Most likely your wrapper is not installed correctly. Re-check the
  409.    Makefile and see if the wrapper was compiled with the right UID and
  410.    GID. See the README and the above section on how to set the
  411.    permissions correctly. Make sure after you fix the wrapper that you
  412.    remove (or rename) any "listname.new" or "L.listname" files found in
  413.    your lists directory. These will likely have the wrong ownerships, and
  414.    cause you problems.
  415.    
  416.    You should have seen an error if you ran "./wrapper config-test". If
  417.    not, it's a bug in config-test and should be fixed.
  418.    
  419.   2.3 - I get "sh: wrapper: cannot execute" or "wrapper: permission denied"
  420.   
  421.    This is a bug in the 1.94 Makefile. You'll see this in new installs of
  422.    Majordomo if you don't use a majordomo group of 'daemon'. The
  423.    majordomo $homedir needs to have permission of at least 751 (or 755),
  424.    not 750. Otherwise, sendmail won't have permission to execute the
  425.    wrapper. You'll need to do a 'chmod 755 $homedir' after you install
  426.    majordomo. Make sure 'wrapper' also has world execute permission. Some
  427.    people also have put the user 'daemon' in the 'majordom' group. This
  428.    works too.
  429.    
  430.   2.4 - I get "Unknown mailer error" when majordomo runs
  431.   
  432.    If something is wrong with your setup, the wrapper will often exit
  433.    with various return codes depending on what the problem is. In order
  434.    to really understand what is going on, look at the session transcript
  435.    further down in the bounce message to see the error which is returned
  436.    from the wrapper or from Majordomo. You should usually see some sort
  437.    of error message. If you just get a return code, check the Majordomo
  438.    README for futher explanation on sendmail return codes. If you get
  439.    "Unknown mailer error XX" where XX is less than 255, look for the
  440.    error in /usr/include/errno.h . Otherwise, see the README.
  441.    
  442.    See section 1.1 above for what versions of Perl won't work with
  443.    Majordomo.
  444.    
  445.    [reported by Russell Street]
  446.    You may also get problems when messages to majordomo are queued (for
  447.    example if you change sendmail's behavior to always queue messages
  448.    rather than perform immediate delivery). The problem was that if
  449.    sendmail queues a message it smashes the case in command lines and
  450.    addresses when the queue gets processed. This is in spite of the lines
  451.    shown by mailq. This is sendmail 5.x on Solaris 2.3, but it might
  452.    apply to other versions of sendmail.
  453.    
  454.   2.5 - I get an error "insecure usage" from the wrapper
  455.   
  456.    The argument to "wrapper" should be simply be the command, not the
  457.    full path to the command. "wrapper" has where to look compiled in to
  458.    it (the "W_HOME" setting in the Makefile) and for security reasons
  459.    will not let you specify another directory.
  460.    
  461.    Your alias should say for example:
  462.    
  463.    |"/path/to/majordomo/wrapper majordomo"
  464.    
  465.   2.6 - I get "majordomo: No such file or directory" from the wrapper
  466.   
  467.    Make sure that the #! statement at the beginning of all the Majordomo
  468.    Perl executables contain the correct path to the perl program (the
  469.    default is /usr/local/bin/perl). Note many UNIXes have a 32 character
  470.    limit on that path -- make sure it doesn't exceed this limit. Make
  471.    sure also that majordomo and all the related scripts are in the W_HOME
  472.    directory as defined in the Makefile when you compiled the wrapper.
  473.    
  474.   2.7 - I get an error "Can't locate majordomo.pl"
  475.   
  476.    [from Brent Chapman]
  477.    Majordomo adds "$homedir" from the majordomo.cf file to the @INC array
  478.    before it goes looking for "majordomo.pl". Since it's not finding it,
  479.    I'd guess you have one of two problems:
  480.    
  481.    1) $homedir is set improperly (or not set at all; there is no default)
  482.    in your majordomo.cf file.
  483.    
  484.    2) majordomo.pl is not in $homedir, or is not readable.
  485.    
  486.    [from John P. Rouillard]
  487.    3) Note that the new majordomo.cf file checks to see if the
  488.    environment variable $HOME is set first, and uses that for $homedir.
  489.    Since the wrapper always sets HOME to the correct directory, you get a
  490.    nice default, unless you are running a previously built wrapper, in
  491.    which case you may get the wrong directory.
  492.    
  493.    [from Andreas Fenner]
  494.    4) I had the same problem when I installed majordomo (1.62). My
  495.    Problem was a missing ";" in the majordomo.cf file - just in the line
  496.    before setting homedir .... My hint for you: Check your perl-files
  497.    carefully.
  498.    
  499.   2.8 - I told my majordomo.cf where to archive the list, why isn't it working?
  500.   
  501.    [From John Rouillard]
  502.    The archive variables in majordomo.cf aren't used to archive anything.
  503.    You have to use a separate archive program, or a sendmail alias to do
  504.    the archiving. The info is used to generate a directory where the
  505.    archive files are being placed by some other mechanism.
  506.    
  507.    You are telling majordomo to look in the directory:
  508.    /usr/local/mail/majordomo/archive/listname
  509.    
  510.    for files that it should allow to be gotten using the get command.
  511.    
  512.    Majordomo comes with three different archive programs that run under
  513.    wrapper, that do various types of archiving. Look in the contrib
  514.    directory.
  515.    
  516.   2.9 - config-test can't seem to find ctime.pl or resend can't find getopts.pl
  517.   
  518.    ctime.pl and getopts.pl are included in the standard Perl
  519.    distribution. If it can't find it, it means Perl was not installed
  520.    correctly. Re-install Perl. (you may want to take the opportunity to
  521.    upgrade Perl, too)
  522.    
  523.   2.10 - A list is visible via lists, but can't subscribe or 'get' files
  524.   
  525.    [From Brent Chapman]
  526.    I'll bet your list name has capital letters in it... Majordomo smashes
  527.    all list names to all-lower-case before attempting to use the list
  528.    name as part of a filename. So, while it's OK to advertise (for
  529.    instance) "Majordomo-Users" and have the headers say
  530.    "Majordomo-Users", the file names and archive directory names
  531.    themselves all need to be in lower case. If you want to use mixed
  532.    case, simply configure the list using the lower-case names everywhere,
  533.    except put the mixed-case version in the "-l" and "-h" flags to
  534.    resend.
  535.    
  536.   2.11 - I get "sh: wrapper not available for sendmail programs"
  537.   
  538.    You're on a system which uses smrsh. (sendmail restricted shell). You
  539.    have to configure smrsh to allow it to execute the wrapper. Normally
  540.    this is done by creating a symlink in /var/adm/sm.bin to Majordomo's
  541.    wrapper program.
  542.    
  543.   2.12 - I get "Aliasing/Forwarding Loop Broken"
  544.   
  545.    [ Reported by Wade Williams ] Some people have noted sendmail will
  546.    generate a bounce message if you send to a list, but the list file is
  547.    empty (there are no subscribers). Add a subscriber to the list and the
  548.    error should go away.
  549.      _________________________________________________________________
  550.    
  551. Section 3: Setting up mailing lists and aliases
  552.  
  553.   3.1 - How do I direct bounces to the right address?
  554.   
  555.    You should use 'resend' to filter all messages. Make sure the "sender"
  556.    variable in the list config file points to "owner-listname" and that
  557.    you have defined the "owner-listname" alias to point to the owner of
  558.    the list.
  559.    
  560.    What this does is force outgoing mail to have the out-of-band envelope
  561.    FROM be "owner-listname", and thus all bounces will be redirected to
  562.    that address. (This address is what gets copied into the message body
  563.    as the "From " or "Return-Path:" header). 'resend' also inserts a
  564.    "Sender:" line with the same address to help people identify where it
  565.    came from, but that header is not used in the bounce process.
  566.    
  567.    If you are using sendmail v8.x, you don't have to use 'resend' to do
  568.    the same thing. You simply have to define an alias like this:
  569.    
  570.    owner-sample: joe,
  571.    
  572.    Note the trailing comma is necessary to prevent sendmail from
  573.    resolving the alias first before putting it in the header. Without the
  574.    comma, it will put "joe" in the envelope from instead of
  575.    "owner-sample". Either address will work, of course, but the generic
  576.    address is preferred should the owner ever change.
  577.    
  578.    However if you choose not to use 'resend', you will have to do without
  579.    most of majordomo's other features like moderating, administrivia
  580.    checks, and others.
  581.    
  582.   3.2 - Semi-automated handling of bounced mail
  583.   
  584.    This is not true automation of bounced mail. What this does is the
  585.    next best thing. You unsubscribe the user from the list, but add the
  586.    user to a special 'bounces' list (there's a perl script in the
  587.    distribution called bounceyou run to make this easier) The majordomo
  588.    maintainer then runs (out of cron) the 'bounce-remind' script
  589.    periodically, which sends mail to all the people on the bounces list,
  590.    saying essentially "you were removed from list 'foo' because mail to
  591.    you bounced. To subscribe yourself back to the list, send the
  592.    following commands ...". There's no facility yet for trimming the
  593.    bounces list, but it's easy to write one because the date the person
  594.    was added to the bounces list is included (so you could write a perl
  595.    script which removes anyone on the list for more than one week,
  596.    assuming you run bounce-remind more than once a week). There's no
  597.    facility for automatically detecting what addresses are failing. You
  598.    have to determine that based on the bounce messages you receive from
  599.    other sites.
  600.    
  601.    [From John Rouillard]
  602.    Just create a mailing list called "bounces". I usually set mine up as
  603.    an auto list just to make life easier.
  604.    
  605.    All that "bounce" script does is create an email message to majordomo
  606.    that says:
  607.  
  608.    approve [passwd] unsubscribe [listname] [address]
  609.    approve [passwd] subscribe bounces [address]
  610.  
  611.    The [address] and [listname], are given on the command line to bounce.
  612.    The address of the majordomo, and the passwords are retrieved from the
  613.    .majordomo file in your home directory.
  614.    
  615.    A sample .majordomo file might look like (shamelessly stolen from the
  616.    comments at the top of the bounce script):
  617.  
  618.    this-list       passwd1         Majordomo@This.COM
  619.    other-list      passwd2         Majordomo@Other.COM
  620.    bounces         passwd3         Majordomo@This.COM
  621.    bounces         passwd4         Majordomo@Other.COM
  622.  
  623.    A command of "bounce this-list user@fubar.com" will mail the following
  624.    message to Majordomo@This.COM:
  625.  
  626.    approve passwd1 unsubscribe this-list user@fubar.com
  627.    approve passwd3 subscribe bounces user@fubar.com (930401 this-list)
  628.  
  629.    while a command of "bounce other-list user@fubar.com" will mail the
  630.    following message to Majordomo@Other.COM:
  631.  
  632.    approve passwd2 unsubscribe other-list user@fubar.com
  633.    approve passwd4 subscribe bounces user@fubar.com (930401 this-list)
  634.  
  635.    Note that the date and the list the user was bounced from are included
  636.    as a comment in the address used for the "subscribe bounces" command.
  637.    
  638.   3.3 - What's this Owner-List and List-Owner stuff? Why both?
  639.   
  640.    [From David Barr]
  641.    The "standard" is spelled out in RFC 1211 - "Problems with the
  642.    Maintenance of Large Mailing Lists".
  643.    
  644.    It's here where the "owner-listname" and "listname-request" concepts
  645.    got their start. (well it was before this, but this is where it was
  646.    first spelled out)
  647.    
  648.    Personally, I don't use "listname-owner" anywhere. You don't really
  649.    have to put both, since the "owner" alias is usually only for bounces,
  650.    which you add automatically anyway with resend's "-f" flag, or having
  651.    Sendmail v8.x's "owner-listname" alias.
  652.    
  653.    (while I'm on the subject) The "-approval" is a Majordomo-ism, and is
  654.    only necessary if you want bounces and approval notices to go to
  655.    different mailboxes. (though you'll have to edit some code in
  656.    majordomo and request-answer if you want to get rid of the -approval
  657.    alias, since it's currently hardwired in)
  658.    
  659.    So, to answer your question, I'd say "no". You don't have to have
  660.    both. You should just have "owner-list".
  661.    
  662.   3.4 - How should I configure resend for Reply-To headers?
  663.   
  664.    Whether you should have a "Reply-To:" or not depends on the charter of
  665.    your list and the nature of its users. If the list is a discussion
  666.    list and you generally want replies to go back to the list, you can
  667.    include one. Some people don't like being told what to do, and prefer
  668.    to be able to choose whether to send a private reply or a reply to the
  669.    list just by using the right function on their mail agent. Take note
  670.    that if you do use a "Reply-To:", then some mail agents make it much
  671.    harder for a person on the list to send a private reply. The most
  672.    important reason why Reply-To: to the list is bad is that it can cause
  673.    mail loops if any of the members of your list are running
  674.    fairly-common but broken software which doesn't know what an envelope
  675.    address is. (Many Microsoft products, as well as many other PC-based
  676.    non-SMTP/Internet mail systems which work through an SMTP gateway.)
  677.    
  678.    You should read the following FAQ on why you shouldn't set the
  679.    Reply-To: field. http://www.unicom.com/FAQ/reply-to-harmful.html
  680.    
  681.    If you are using resend, use the 'reply_to' configuration variable in
  682.    the list .config file.
  683.    
  684.   3.5 - How can I hide lists so they can't be viewed by 'lists'?
  685.   
  686.    That is what advertise and noadvertise are for. These two variables
  687.    take regular expressions that are matched against the from address of
  688.    the sender. A list display follows the rules:
  689.    
  690.     1. If the from address is on the list, it is shown.
  691.     2. If the from address matches a regexp in noadvertise (e.g. /.*/)
  692.        the list is not shown.
  693.     3. If the advertise list is empty, the list is shown unless 2
  694.        applies.
  695.     4. If the advertise list is non-empty, the from address must match an
  696.        address in advertise. Otherwise the list is not shown. Rule 2
  697.        applies, so you could allow all hosts in umb.edu except hosts in
  698.        cs.umb.edu.
  699.        
  700.   3.6 - How can I restrict a list such that only subscribers can send mail to
  701.   the list?
  702.   
  703.    See the restrict_post variable in the config file. Just set it to the
  704.    filename that holds the list of subscribers, which is just simply the
  705.    name of the list. ("restrict-post = listname"). However, there is a
  706.    problem with either of these methods. Majordomo works by filtering the
  707.    messages coming in through the "listname" alias, doing its dirty work,
  708.    then passing the resulting message out to another alias you define
  709.    like "listname-outgoing". If you trust people to not send mail
  710.    directly to the "listname-outgoing" alias, then you'll be fine. If
  711.    however you're not trusting, there are several steps to make sure
  712.    people don't bypass the restrictions of the list.
  713.    
  714.    There are several methods. First you need to change your
  715.    "listname-outgoing" alias such that it is not obvious. (That means
  716.    don't use something easy to guess like "-outgoing" or "-list"). Next,
  717.    you need to make it such that people can't find out what your
  718.    -outgoing alias is.
  719.    
  720.    You can use the "@filename" directive in resend to move the
  721.    command-line options of resend into a file readable only by the
  722.    majordomo user/group. This will make it such that you can't find out
  723.    the -outgoing address by connecting to your mailer and doing an EXPN
  724.    or VRFY. The "@filename" directive seems to have fallen into
  725.    undocumentation for some reason. This should be fixed in future
  726.    releases. This doesn't prevent a user reading the local /etc/aliases
  727.    file (if they can), however.
  728.    
  729.    Another approach is to simply disable EXPN or VRFY altogether. See the
  730.    documentation for your mailer on how to do this. However this doesn't
  731.    prevent a local user reading of the aliases file. This isn't generally
  732.    a problem if your mail server is restricted to staff only users.
  733.    
  734.    Sendmail 8.x will unfortunately log your -outgoing alias in the
  735.    "Received:" lines. To prevent this you need to specify more than one
  736.    address for the list name argument to resend. (for example
  737.    "mylist:|"/usr/local/lib/majordomo/wrapper resend -h foo.org -l mylist
  738.    mylist-seekrit,nobody"" where nobody is an alias for /dev/null) For
  739.    Sendmail 8.x you must not define an alias 'owner-mylist-seekrit' to be
  740.    something like 'owner-mylist,' (with the commma). Otherwise sendmail
  741.    will set the envelope address of outgoing mail to contain your secret
  742.    outgoing alias. Again if you're using the @filename directive, the
  743.    entire command line is simply put into the specified file (starting
  744.    with "-h foo.org ...".
  745.    
  746.    Finally it should be noted that it is impossible with any method to
  747.    prevent people from forging mail as someone on the list, and sending
  748.    to the list that way.
  749.    
  750.   3.7 - Can I have the list owner or approval person be changeable without
  751.   intervention from the Majordomo owner?
  752.   
  753.    Sure! Just make owner-listname and/or listname-approval be another
  754.    majordomo list. (probably hidden, for simplicity's sake)
  755.    
  756.   3.8 - What are all these different passwords?
  757.   
  758.    Think of three separate passwords:
  759.     1. A master password that can be used by both resend and majordomo
  760.        contained in [listname].passwd. To be used by the master list
  761.        manager when using writeconfig commands etc. This allows someone
  762.        who handles a number of mailing lists all using the same password.
  763.        This is also a "backup password" in case the .config file gets
  764.        corrupted.
  765.     2. A password for the manager of this one list. The admin_passwd can
  766.        be used by subsidiary majordomo list maintainers.
  767.     3. A password for those concerned with the list content
  768.        (approve_passwd)
  769.        
  770.    This way the administration and moderation functions can be split. The
  771.    original reason for maintaining [listname].passwd was to allow a new
  772.    config file to be put in if the config file was trashed and the
  773.    admin_password was obliterated, and may still be useful to allow a
  774.    single password to be used for admin functions by the majordomo admin
  775.    or some other "superadmin".
  776.    
  777.    Note that the admin passwd in the config file is not a file name, but
  778.    the password itself. This is the only way that the list-maintainer
  779.    could change the password since they wouldn't have access to the file.
  780.    
  781.   3.9 - How do I tell majordomo to handle "get"-ing of binary files?
  782.   
  783.    Majordomo is not designed to be a general-purpose file-by-mail system.
  784.    If you want to do anything more than trivial "get"-ing of text files
  785.    (archives, etc) than you should get and install ftpmail. Majordomo has
  786.    hooks to allow transparent access to files via ftpmail (see
  787.    majordomo.cf). See the beginning of this FAQ for where to get ftpmail.
  788.    
  789.   3.10 - How do I set up a moderated list?
  790.   
  791.    First, you need to tell Majordomo that the list is moderated. In the
  792.    configuration file for the list, you set "moderated = yes". Do not try
  793.    to use the now-deprecated "-A" option to resend. In fact you shouldn't
  794.    be using ANY options to resend except "-h" and "-l", since all the
  795.    others are handled in the config file.
  796.    
  797.    Any mail which is not "approved", gets bounced with "Approval
  798.    required". If the moderator wishes to approve the message for the
  799.    list, then you need to tag the message as "approved" and send it to
  800.    the list. The "approve" script which comes with Majordomo does this
  801.    for you. If you don't have access to "approve" (e.g. you're not on a
  802.    UNIX system with Perl), you have to do it by hand. The easiest way is
  803.    to forward the original message to the list, add the line "Approved:
  804.    approval-password" to the very first line of the body, and then the
  805.    entire contents of the original message. (meaning there should not be
  806.    a blank line before and after the "Approved:" line.)
  807.    
  808.   3.11 - How do I set up a digested version of a list?
  809.   
  810.    [ Modified from explanation given by jmb@kryten.atinc.com (Jonathan M.
  811.    Bresler)]
  812.      * Create aliases for the mailing list and the digest. See section
  813.        2.2 of the README for an example.
  814.      * create an alias for the majordom(o) user, so that his cron
  815.        generated mail comes to me, rather than just piling up in
  816.        /usr/local/mail/majordom.
  817.      * create the list's and the digest's files, (widget, widget-digest,
  818.        widget.config, widget-digest.config, etc.). Edit the
  819.        widget-digest.config file and make sure all the digest options are
  820.        set to your tastes.
  821.      * create the digest directory and archive directory. See FAQ section
  822.        2 on how to set permissions on all majordomo files and
  823.        directories. You must have archives if you have digests so the
  824.        digester can make the digest. You can purge the archive after the
  825.        digest is generated.
  826.      * Add yourself to both the mailing list and its digest so you can
  827.        monitor what happens...at least for a while (not a bad idea to
  828.        create a dummy user, and subscribe him to both the mailing list
  829.        and its digest. This preserves a record of messages for debugging.
  830.        Don't forget to remove this account and unsubscribe it after
  831.        debugging.)
  832.      * Optionally you may use cron to send a mkdigest to push out a
  833.        digest at set intervals regardless of the number of queued
  834.        messages. See the question Why aren't my digests going out?".
  835.        
  836.   3.12 - How do I setup virtual majordomo domains?
  837.   
  838.    [From Alan Millar, et. al.]
  839.    Set up a majordomo.cf file for each virtual domain, defining $whereami
  840.    as appropriate. Use your mailer's virtual domain stuff to get to it,
  841.    making an alias for it if necessary.
  842.    
  843.    For sendmail, be sure to check out
  844.    http://www.sendmail.org/virtual-hosting.html first.
  845.    
  846.    Alias entry:
  847.    
  848.   majordomo-domain2: |/your/wrapper majordomo -C /your/domain2.cf
  849.  
  850.    Virtual domain stuff (in your virtusertable):
  851.    
  852.   majordomo@domain2         majordomo-domain2
  853.   majordomo-owner@domain2   whoever
  854.  
  855.    I use the sendmail virtual domain examples right off the Sendmail FAQ.
  856.    Works for me.
  857.    
  858.    You'll need to modify request-answer slightly if you want the virtual
  859.    host to be used there in replies. Look for:
  860.  
  861. From: $list-request
  862.  
  863.    in the source and change it to:
  864. From: $list-request\@$whereami
  865.  
  866.    Don't forget to use the -C option to request-answer for your virutal
  867.    aliases.
  868.      _________________________________________________________________
  869.    
  870. Section 4: Mailer and list admininistration problems
  871.  
  872.   4.1 - Address with blanks are being treated separately
  873.   
  874.    If a subscriber to the list is
  875.    John Doe < jdoe@node.com>
  876.    
  877.    it gets treated these as the three addresses:
  878.    John
  879.    Doe
  880.    < jdoe@node.com>
  881.    
  882.    [From Alan Millar]
  883.    Majordomo does not treat these as three addresses. Apparently your
  884.    mailer does.
  885.    
  886.    Remember that all Majordomo does is add and remove addresses from a
  887.    list. Majordomo does not interpret the contents of the list for
  888.    message distribution; the system mailer (such as sendmail) does.
  889.    
  890.    I'm using SMail3 instead of sendmail, and it has an alternative (read
  891.    "stupid") view of how mixed angle-bracketed and non-angle-bracketed
  892.    addresses should be interpreted. I found that putting a comma at the
  893.    end of each line was effective to fix the problem, and I got to keep
  894.    my comments. So I patched Majordomo to add the comma at the end of
  895.    each address it writes to the list file.
  896.    
  897.    You can also change to "strip = yes" in the config file so that none
  898.    of the addresses are angle-bracketed.
  899.    
  900.   4.2 - Why aren't my digests going out?
  901.   
  902.    [from John Rouillard]
  903.  
  904.   echo mkdigest [digest-name] [digest-password] | mail majordomo@...
  905.  
  906.    This will force a digest to be created. Or you can set the max size in
  907.    the digest list config file down low, and force automatic generation.
  908.    
  909.   4.3 - Why do I get duplicate mail sent to the list?
  910.   
  911.    If you're running MMDF, read on: [From Gunther Anderson]
  912.    Well, I can tell you what happened to me recently. We use MMDF here,
  913.    which certainly colors the picture a little. What was happening here
  914.    was that MMDF was verifying the validity of the whole mailing list
  915.    before returning from the Submit call. The thing calling the Submit
  916.    would time out and close, but the Submit itself would still be running
  917.    somewhere. The calling routine would believe that the message had
  918.    failed in its delivery, but the Submit would eventually succeed. The
  919.    calling process would try again some time later. This, of course, is
  920.    bad. The larger the list got, the more addresses there were to verify
  921.    (verification was really just a DNS search on the target machine
  922.    name), the more likely, under load, that the message would duplicate.
  923.    We finally got so large, with so many international addresses (which
  924.    seem to timeout on DNS queries much more ofen than US addresses) that
  925.    we were always duplicating. Infinitely (until I killed the original
  926.    submitter).
  927.    
  928.    The solution for us was MMDF-specific. We used a different channel for
  929.    submission and delivery, one which deliberately doesn't verify the
  930.    addresses before accepting a job. We used the list-processor channel,
  931.    and only had to check that the listname-request name was set properly,
  932.    because list-processor insists on making listname-request the envelope
  933.    "From " header name.
  934.    
  935.    If you're running Sendmail, this is more rare. There have been
  936.    unconfirmed reports that on some systems having the queue process
  937.    interval set too short can cause problems, even though sendmail is
  938.    supposed to handle this. Workarounds are to increase your queue
  939.    process interval (-q flag), or decrease the interval between queue
  940.    checkpoints (OC flag in sendmail.cf).
  941.    
  942.    There have been many reports from Linux users complaining about
  943.    duplicate mail. The problem seems to be that flock() under Linux is
  944.    broken. This may be fixed in a future release, but for now in
  945.    sendmail's conf.h in the #ifdef __linux__ section add a line #define
  946.    HASFLOCK 0. There are also reports that some versions of the libc have
  947.    problems, and that linking with the libresolv.a from a recent BIND
  948.    version will work around the problem.
  949.    [ Please let me know if you have any more information --ed ]
  950.    
  951.   4.4 - How do I gate my list to and/or from a newsgroup?
  952.   
  953.    The easiest method is to use a program called newsgate. You can find
  954.    it at ftp://ftp.isc.org/isc/inn/contrib/. Installation instructions
  955.    are straightforward, it provides sample entires for your newsfeeds/sys
  956.    file and aliases entries. The newsgate package includes news2mail and
  957.    mail2news.
  958.    
  959.   4.5 - How can I improve Majordomo's performance?
  960.   
  961.     Mail to list throughput
  962.     
  963.    Majordomo does very little except pass each message to the list
  964.    through 'resend', and then pass it on to your mailer for distribution.
  965.    Improving your mailer is the first step to improving speed of delivery
  966.    of mail to the list. Upgrading your sendmail to version 8.x will
  967.    improve things greatly, as this version has a lot of enhancements
  968.    which use connections more efficiently. For most lists, this is
  969.    enough. Majordomo itself doesn't use very much in the way of resources
  970.    except perhaps memory. Adding more memory will help if your machine
  971.    does a lot of paging during mail delivery. Using other mailers instead
  972.    of sendmail like ZMailer has met with varying success. qmail has been
  973.    used with majordomo, and performance there I'm told generally far
  974.    exceeds that of sendmail. qmail also is written in a far more secure
  975.    way than sendmail. See http://www.qmail.org. The qmail site includes
  976.    at least one way to get majordomo to work with qmail. Note that it is
  977.    possible to get majordomo working under qmail without using the
  978.    'wrapper', which is a nice idea. Some majordomo-under-qmail solutions
  979.    just involve qmail's sendmail emulation feature. For more info, see
  980.    the Using Majordomo with qmail FAQ, written by Russ Allbery.
  981.    
  982.    If your lists are very large you may try installing bulk_mailer, by
  983.    Keith Moore. It pre-sorts the list into chunks grouped by site, and
  984.    passes the resulting chunks off to individual sendmail processes for
  985.    delivery (see note next paragraph). Get it from
  986.    ftp://cs.utk.edu/pub/moore/bulk_mailer/. It installs simply by
  987.    replacing your usual -outgoing alias with (line wrapped for clarity):
  988.  
  989. sample-outgoing: |"/path/to/bulk_mailer owner-sample@your.site
  990.     /path/to/lists/sample"
  991.  
  992.    bulk_mailer has reportedly resulted in dramatic speedups in delivery
  993.    times, on the order of several times faster. Note this works just as
  994.    well on digested lists as well as normal lists. bulk_mailer did have
  995.    one problem. Until version 1.3 it didn't understand parenthesized
  996.    comments in addresses, resulting in incorrect sorting and reduced
  997.    performance. Your list must be configured with strip=yes in the
  998.    configuration file if you don't upgrade to 1.3.
  999.    
  1000.    TLB is another package which is like bulk_mailer, but has other
  1001.    features. You can get it from ftp://ftp.hpc.uh.edu/pub/tlb/. The
  1002.    advantage of TLB is its greater configuration flexibility, and also
  1003.    the fact that it's possible with TLB to eliminate the -outgoing
  1004.    address, making configuration easier and lists more secure.
  1005.    
  1006.    The restrict_post list option with large lists can cause a significant
  1007.    slowdown in mail delivery, since resend has to do a sequential search
  1008.    through the subscription list for each mail sent to the list (to
  1009.    verify that the sender is subscribed to the list). Think twice about
  1010.    using this option with very large lists.
  1011.    
  1012.     Majordomo command processing
  1013.     
  1014.    Most of the improvements in this are are experimental and not widely
  1015.    available or not yet completed but scheduled for future releases. Some
  1016.    areas include: improvements in shlock.pl to use exponential backoffs
  1017.    to reduce contention and starvation of locks, using some sort of
  1018.    dbz-style database for subscription lists to speed up subscribe and
  1019.    unsubscribe commands, and changes in the configuration file system to
  1020.    allow faster parsing and faster execution of certain commands such as
  1021.    "lists". If you are interested in working on improvements in this
  1022.    area, join the majordomo-workers list mentioned above. If you make any
  1023.    specific patches or additions available, please let me know so I can
  1024.    add references to it here.
  1025.    
  1026.   4.6 - How can I handle X.400 addresses?
  1027.   
  1028.    Majordomo by default treats addresses starting with "/" as "hostile",
  1029.    and won't let people subscribe. This is to prevent someone from
  1030.    subscribing a majordomo-owned filename to the list, and being able to
  1031.    write by sending mail to the list. Unfortunately, all X.400 addresses
  1032.    begin with a "/". See the $no_x400at and $no_true_x400 variables and
  1033.    the associated comments in the majordomo.cf. There is a reported bug
  1034.    in 1.94 - you may need to change both tests for these variables in
  1035.    majordomo.pl to put "main'" before them. Like this:
  1036.  
  1037.         if (!$main'no_x400at) {
  1038.  
  1039.  
  1040.         if (!$main'no_true_x400) {
  1041.  
  1042.    This is fixed in Majordomo 1.94.1 and higher.
  1043.    
  1044.   4.7 - Why is the Subject of my messages missing?
  1045.   
  1046.    [from Dave Wolfe]
  1047.    But it's not. Oh, you probably mean "Why is the subject line of
  1048.    messages to my moderated list blank?" Because you didn't include any
  1049.    headers after the Approved: header in the body of the messages. Or you
  1050.    deleted them when you approved the bounced messages.
  1051.    
  1052.    When resend finds an Approved: header in the first line of the body,
  1053.    it throws away all the headers it's collected for the message and
  1054.    looks for more headers following the Approved: header (which is the
  1055.    format of a bounced message). So if you put the Approved: header in an
  1056.    original message (as opposed to a bounced message), you have to also
  1057.    fill in some headers to be sent out, such as Subject:, To:, and From:.
  1058.    
  1059.    See the file Doc/list-owner-info on the correct procedure(s) for
  1060.    approving mail with Majordomo.
  1061.    
  1062.   4.8 - I'm getting mail from majordomo with "BOUNCE:" what do I do? How do I
  1063.   stop this?
  1064.   
  1065.    Whenever majordomo encounters mail to the list which it sees a problem
  1066.    with, it forwards it to person at the approval address to deal with
  1067.    manually. There are lots of reasons Majordomo does this. Majordomo
  1068.    will tell you why in the Subject of the message. Here's a list of the
  1069.    most common bounce reasons:
  1070.    
  1071.    An "Admin request" bounce means that the list is configured to filter
  1072.    out what it thinks are "administrivia" messages, and it thought that
  1073.    message was one. These are messages such as "subscribe" or
  1074.    "unsubscribe" or "help", which get sent to the list instead of
  1075.    majordomo. Lists generally have this turned on by default. If you
  1076.    don't like it, set "administrivia=no" in the list config file. If that
  1077.    doesn't work, check your aliases to make sure the "-s" option to
  1078.    resend isn't being used on that list. An "Approval required" bounce
  1079.    means that the list is moderated, and the message needs to be
  1080.    approved. (see section 3.10 of this FAQ)
  1081.    
  1082.    A "Message too long" bounce means that the message was longer than the
  1083.    "maxlength" setting in the list config file.
  1084.    
  1085.    If you get any of these bounces messages and you think the mail is OK
  1086.    to send to the list, you'll need to approve it. See the file
  1087.    Doc/list-owner-info on the correct procedure(s) for approving mail
  1088.    with Majordomo. It's also covered in section 3.10 of this FAQ.
  1089.    
  1090.   4.9 - My list configuration doesn't seem to be working.
  1091.   
  1092.    If you changed your list configuration and the list doesn't seem to be
  1093.    behaving any differently, make sure that the list is being sent
  1094.    through "resend". See the installation documentation and section 3.1
  1095.    of this FAQ on how to set up the aliases for the list correctly to
  1096.    pipe mail through "resend".
  1097.    
  1098.    Other things to check would be that the arguments to "resend" are only
  1099.    "-h", and "-l" (and perhaps "-C" if you use virtual domains). resend
  1100.    used to be configured with other command line flags to do things such
  1101.    as have moderated lists. However these flags override any config file
  1102.    settings, so remove them if they are present. All configuration should
  1103.    be done now through the config file.
  1104.    
  1105.   4.10 - How do I set it up so that the originator of a message doesn't get a
  1106.   copy of his/her own message back?
  1107.   
  1108.    You can't. Sorry. The "metoo" setting in sendmail has no effect after
  1109.    a message is piped through an external program. Unless you're willing
  1110.    to give up piping messages through "resend", there's no way to stop
  1111.    this.
  1112.    
  1113.   4.11 - With Smail or Exim, users subscribing to a list sometimes get mail
  1114.   sent before they subscribed
  1115.   
  1116.    [from Lazlo Nibble and Philip Hazel]
  1117.    This is due to the way Smail and Exim deliver mail. With sendmail, it
  1118.    expands its delivery list when the mail first arrives. If the list
  1119.    gets changed, the message will still get delivered to the original
  1120.    recipient list, since the original list is never referred to again. As
  1121.    sendmail delivers mail, it removes addresses from its expanded list as
  1122.    they get delivered.
  1123.    
  1124.    However Smail and Exim don't expand the list when the message is first
  1125.    queued. Instead as they go through the queue of pending messages to
  1126.    deliver, and maintain state on what addresses they have successfully
  1127.    delivered mail to and compare that with the current list contents. As
  1128.    long as the message is queued waiting for one or more addresses in the
  1129.    list, it will get sent to any new recipients whenever the queue gets
  1130.    processed next. This is rather unexpected for those used to sendmail's
  1131.    behavior.
  1132.    
  1133.    The advantage of smail and exim's approach is that if an address in
  1134.    your list is unreachable (or has a bad .forward file), you can change
  1135.    the list contents (or the .forward file) and the message will be
  1136.    delivered to the new address when the queue next gets processed. It
  1137.    won't deliver to the old, bad address.
  1138.    
  1139.    There really isn't an easy solution to this, but it's really not a
  1140.    serious problem.
  1141.    
  1142.   4.12 - Majordomo doesn't seem to work with sendmail 8.9beta
  1143.   
  1144.    Several people have reported that sendmail 8.9beta apparently drops
  1145.    mail from majordomo lists.
  1146.    
  1147.    The new security features of sendmail don't allow :include:
  1148.    directories to be group writeable. Unfortunately, by default these
  1149.    directories are group writeable with Majordomo.
  1150.    
  1151.    The solution appears to be to add:
  1152.    
  1153. O DontBlameSendmail=/path/to/include/dir
  1154.  
  1155.    in your sendmail.cf and restart sendmail. This path is the path to the
  1156.    majordomo lists directory. I don't know if this will be there in
  1157.    8.9final. I sure hope not.
  1158.