mailman-2.0.11-1 (Mailing List)

23/Sep/2002 tested by Redhat 7.2

This is GNU Mailman, a mailing list management system distributed under the GNU Public License (GPL). The name of this project is spelled "Mailman" with a leading capital `M' but with a lower case second `m'.

Install

  1. Download mailman-2.0.11-1.i386.rpm from Redhat site
    # rpm -ihv mailman-2.0.11-1.i386.rpm
    Preparing...                ########################################### [100%]
       1:mailman                ########################################### [100%]
    
  2. To set the mailman administrator password.
    # /var/mailman/bin/mmsitepass
    New Password:
    Again to confirm password:
    Password changed.
    
  3. Edit /var/mailman/Mailman/mm_cfg.py to customize mailman's configuration for your site.
    # -*- python -*-
    
    # Copyright (C) 1998 by the Free Software Foundation, Inc.
    #
    # This program is free software; you can redistribute it and/or
    # modify it under the terms of the GNU General Public License
    # as published by the Free Software Foundation; either version 2
    # of the License, or (at your option) any later version.
    #
    # This program is distributed in the hope that it will be useful,
    # but WITHOUT ANY WARRANTY; without even the implied warranty of
    # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    # GNU General Public License for more details.
    #
    # You should have received a copy of the GNU General Public License
    # along with this program; if not, write to the Free Software
    # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
    
    
    """This is the module which takes your site-specific settings.
    
    From a raw distribution it should be copied to mm_cfg.py.  If you
    already have an mm_cfg.py, be careful to add in only the new settings
    you want.  The complete set of distributed defaults, with annotation,
    are in ./Defaults.  In mm_cfg, override only those you want to
    change, after the
    
      from Defaults import *
    
    line (see below).
    
    Note that these are just default settings - many can be overridden via the
    admin and user interfaces on a per-list or per-user basis.
    
    Note also that some of the settings are resolved against the active list
    setting by using the value as a format string against the
    list-instance-object's dictionary - see the distributed value of
    DEFAULT_MSG_FOOTER for an example."""
    
    
    #######################################################
    #    Here's where we get the distributed defaults.    #
    
    from Defaults import *
    import pwd, grp
    
    ##############################################################
    #    Here's where we override shipped defaults with settings #
    #    suitable for the RPM package.                           #
    MAILMAN_UID = pwd.getpwnam('mailman')[2]
    MAILMAN_GID = grp.getgrnam('mailman')[2]
    LOG_DIR     = '/var/log/mailman'
    QUEUE_DIR   = '/var/spool/mailman/qfiles'
    
    ##############################################################
    # Put YOUR site-specific configuration below, in mm_cfg.py . #
    # See Defaults.py for explanations of the values.            #
    
    # DEFAULT_HOST_NAME = 'localhost.localdomain'
    DEFAULT_HOST_NAME = 'www.yourhost.bt'
    DEFAULT_URL       = 'http://%s/mailman/' % DEFAULT_HOST_NAME
    MAILMAN_OWNER     = 'mailman-owner@%s' % DEFAULT_HOST_NAME
    
    # Note - if you're looking for something that is imported from mm_cfg, but you
    # didn't find it above, it's probably in Defaults.py.
    
  4. Edit /var/mailman/Mailman/Defaults.py
    ...
    # SMTP host and port, when DELIVERY_MODULE is 'SMTPDirect'
    SMTPHOST = 'www.yourhost.bt'
    SMTPPORT = 25                                      # default from smtplib
    ...
    
  5. Modify the sendmail configuration to ensure that it is running and accepting connections from the outside world (to ensure that it runs, set "DAEMON=yes" in /etc/sysconfig/sendmail, ensuring that it accepts connections from the outside world may require modifying /etc/mail/sendmail.mc and regenerating sendmail.cf)

  6. Add "Include conf/httpd-mailman.conf" to /etc/httpd/conf/httpd.conf
  7. ...
    Include conf/httpd-mailman.conf
    

Make a new mailing list

  • Make a new mailing list
  • # /var/mailman/bin/newlist
    Enter the name of the list: hogelist
    Enter the email of the person running the list: hoge@yourhost.bt
    Initial hogelist password:
    Entry for aliases file:
    
    ## hogelist mailing list
    ## created: 13-Sep-2002 root
    hogelist:                "|/var/mailman/mail/wrapper post hogelist"
    hogelist-admin:          "|/var/mailman/mail/wrapper mailowner hogelist"
    hogelist-request:        "|/var/mailman/mail/wrapper mailcmd hogelist"
    hogelist-owner:          hogelist-admin
    
    Hit enter to continue with hogelist owner notification...
    
  • add above list to /etc/aliases
    ...
    ## hogelist mailing list
    ## created: 13-Sep-2002 root
    hogelist:                "|/var/mailman/mail/wrapper post hogelist"
    hogelist-admin:          "|/var/mailman/mail/wrapper mailowner hogelist"
    hogelist-request:        "|/var/mailman/mail/wrapper mailcmd hogelist"
    hogelist-owner:          hogelist-admin
    
  • Enable new aliases
    # newaliases
    /etc/aliases: 46 aliases, longest 47 bytes, 632 bytes total
    

    Maintenance

    1. Mailing list administration
    2. http://www.yourhost.bt/mailman/admin

    3. Lists of all the public mailing lists on the server
    4. http://www.yourhost.bt/mailman/listinfo

    5. For a security matter, you should hold an attachment file

      1. Open http://www.yourhost.bt/mailman/admin
      2. Click your maing list
      3. Click "Privacy Options"
      4. In "Hold posts with header value matching a specified regexp"
        content-type: multipart
        x-mmoriginal-content-type: multipart
        

    Full-Text Search for Archive by Namazu

    (This example is on RedHat7.2 box)
    1. Install Namazu (I got it from RedHat7.3 CDROM) and perl-File-MMagic (from RedHat7.2)
      # rpm -ihv --force --nodeps \
      namazu-devel-2.0.10-4.i386.rpm \
      namazu-cgi-2.0.10-4.i386.rpm \
      namazu-2.0.10-4.i386.rpm \
      perl-File-MMagic-1.06-2.i386.rpm
      
    2. Make namazu filter for pipermail in /usr/share/namazu/filter/pipermail.pl
      #
      # -*- Perl -*-
      #
      #     This is free software with ABSOLUTELY NO WARRANTY.
      #
      #  This program is free software; you can redistribute it and/or modify
      #  it under the terms of the GNU General Public License as published by
      #  the Free Software Foundation; either versions 2, or (at your option)
      #  any later version.
      #
      #  This program is distributed in the hope that it will be useful
      #  but WITHOUT ANY WARRANTY; without even the implied warranty of
      #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
      #  GNU General Public License for more details.
      #
      #  You should have received a copy of the GNU General Public License
      #  along with this program; if not, write to the Free Software
      #  Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
      #  02111-1307, USA
      #
      
      package pipermail;
      use strict;
      require 'util.pl';
      require 'gfilter.pl';
      require 'html.pl';
      require 'mailnews.pl';
      
      #
      # This pattern specifies pipermail's file names.
      #
      my $PIPERMAIL_MESSAGE_FILE = '\d{6}\.html';
      
      sub mediatype() {
          return ('text/html; x-type=pipermail');
      }
      
      sub status() {
          return 'yes';
      }
      
      sub recursive() {
          return 0;
      }
      
      sub pre_codeconv() {
          return 1;
      }
      
      sub post_codeconv () {
          return 0;
      }
      
      sub add_magic ($) {
          return;
      }
      
      sub filter ($$$$$) {
          my ($orig_cfile, $contref, $weighted_str, $headings, $fields)
            = @_;
          my $cfile = defined $orig_cfile ? $$orig_cfile : '';
      
          util::vprint("Processing pipermail file ...\n");
      
          unless ($cfile =~ /($PIPERMAIL_MESSAGE_FILE)$/o) 
          {
      	return "is Pipermail's index file! skipped."; # error
          } 
          
      
          pipermail_filter($contref, $weighted_str, $fields);
          html::html_filter($contref, $weighted_str, $fields, $headings);
      
          $$contref =~ s/^\s+//;
          mailnews::uuencode_filter($contref);
          mailnews::mailnews_filter($contref, $weighted_str, $fields);
          mailnews::mailnews_citation_filter($contref, $weighted_str);
      
          gfilter::line_adjust_filter($contref);
          gfilter::line_adjust_filter($weighted_str);
          gfilter::white_space_adjust_filter($contref);
          gfilter::show_filter_debug_info($contref, $weighted_str,
      			   $fields, $headings);
          return undef;
      }
      
      # Assume a normal message files by pipermail (mailman edition)
      sub pipermail_filter ($$) {
          my ($contref, $weighted_str) = @_;
      
          $$contref =~ s/<!--endarticle-->.*//s;
          $$contref =~ s/(<\/H1>).*<!--beginarticle-->/$1/s;
      }
      1;
      
    3. Make working directory for namazu
      # mkdir /var/mailman/namazu
      
    4. Make a script to make an index /var/mailman/namazu/make_namazu
      #!/bin/csh
      # setenv LANG en
      cd /var/mailman/namazu
      /usr/bin/mknmz --media-type='text/html; x-type=pipermail' \
           /var/mailman/archives/public/*
      
    5. Chenge permission and execute it
      # chmod 755 make_namazu
      # ./make_namazu
      
    6. Copy namazu.cgi into mailman cgi directory
      # cp /var/www/cgi-bin/namazu.cgi /var/mailman/cgi-bin/namazu.cgi
      
    7. Make /var/mailman/cgi-bin/.namazurc
      Index         /var/mailman/namazu
      Template      /var/mailman/namazu
      Replace       /var/mailman/archives/public http://www.yourhost.bt/pipermail/
      
    8. Run make_namazu frequently by crontab -e
      0 3 * * * /var/mailman/namazu/make_namazu
      
    9. Open a searching page http://www.yourhost.bt/mailman/namazu.cgi

    10. Change template files at /var/mailman/namazu/

    How to edit mailing list members

    1. Open this URL http://www.yourhost.bt/mailman/admin
    2. Select a mailing list
    3. Type a password
    4. After seeing [General Options Section]. click [Membership Management...].
    5. To add members, click [Mass Subscription] link and enter e-mail addresses in the textbox, and click [Submit Your Changes].
    6. To remove members, click [Membership List] link, click the left side checkbox [unsub] on, and click [Submit Your Changes].

    How to configure the mailing list

    1. Open this URL, select the mailing list and login. http://mail.unsudanig.org/mailman/admin
    2. Click [General Options Section]
    3. Add your mail address to [The list administraotr email addresses] and [The list moderator email addresses] text box.
    4. Add descriptions to [A terse phase identifying this list] and [A introductory description] text box.
    5. Click [No] at [Send monthly password reminders?], [Send welcome message to newly subscribed members?] and [Send goodbye message to members...]
    6. Click [Yes] at [Should the list moderators get immediate notice...], [Shoud administrator get notices of subscribes and unsubscribes?], [Send mail to poster when their posting is held for approval?]
    7. Chenge [Maximum length in kilobytes (KB) of a message body...] to [0] to unlimit the length.
    8. Click [Submit Your Changes] button.
    9. Click [Privacy options...] at the configuration categories.
    10. Click [Sender filters] at the configuration categories.
    11. Click [Accept] at [Action to take for postings from non-members for which no explicit action is defined.]
    12. Click [Recepient filters] at Configuration Categories.
    13. Type [200] at the [Ceiling on acceptable number of recipients for a posting].
    14. Click [Submit Your Changes] button.

    Back
    Google
    Web www.grape-info.com