Hello.

Some of you may remember a posting by me a few weeks back regarding integrating 
Mailman into Sune ONE Messenger.  The consensus was that there really was no simple 
solution.  We ended up developing our own and I thought I'd share it.  See attached 
files.

As an aside, I believe it was last friday that somebody sent a similar message with 
their solution attached.  The insightful among you wil notice that they took a 
different approach. 

-morgan


Morgan Jones // [EMAIL PROTECTED]
                          CommNav, Inc.
Installing/Managing Mailman Mailing List Manager with Sun ONE
  Messenger 5.2
Morgan Jones ([EMAIL PROTECTED])
10/14/02


We used /opt/mailman as a our installation path.  We are running Sun
ONE Messenger 5.2 with Sun ONE Directory 5.1.  Our OS is Solaris 8,
hardware 2/02 fully patched.

get mailman from http://www.gnu.org/software/mailman

Most of the following steps are right out of mailman-2.0.13/INSTALL:
groupadd mailman
useradd -d /opt/mailman -s /bin/bash -G mailman mailman
su mailman
cd /tmp
gzip -dc mailman-2.0.13.tgz |tar xf -
cd mailmain-2.0.13

I installed SMCossl (libssl) from sunfreeware.com, so I had to include
    /usr/local/ssl/lib in my LD_LIBRARY_PATH.  I ended up adding
    /usr/local/ssl/lib to ld.config and running crle.  Instructions
    for crle setup are below.
 (you will need to configure --with-mail-gid= the primary groupid of
   your mailsrv user-- mine is 10.)
/configure --prefix=/opt/mailman --with-mail-gid=10
make && make install
cd /path
bin/check_perms
  it should report "No problems found."
(We used the Apache that comes with Solaris 8.)
add a ScriptAlias to httpd.conf:
  ScriptAlias /mailman/ "/opt/mailman/"
The instructions refer to copying icons from /opt/mailman/icons to
  /apache/path/icons.  I found they weren't in the mailman install
  directory but instead in the mailman distribution under the misc
  subdirectory.
add Alias /pipermail/ /opt/mailman/archives/public to httpd.conf
install crontab entries (as mailman user):
  cd /opt/mailman/cron
  crontab crontab.in

Because the wrapper program is called from within Sun ONE messenger
and SMCossl installs libssl in /usr/local/ssl/lib, your best bet is
probably to add /usr/local/ssl/lib to your system default ld search
path.  I ran crle: 

crle -c /var/ld/ld.config -l /usr/lib:/usr/local/lib:/usr/local/ssl/lib

There were permissions problems when I ran crle without arguments to
check the settings.  I had to change /var/ld from mode 770 to 775


This is where the install gets Sun ONE specific,
add owner aliases to the mta LDAP:

dn: CN=mailman,ou=groups,o=domain.com
objectClass: top
objectClass: inetLocalMailRecipient
objectClass: inetMailGroup
objectClass: groupOfUniqueNames
inetMailGroupStatus: active
mail: [EMAIL PROTECTED]
mgrpRFC822MailMember: [EMAIL PROTECTED]
cn: mailman
mailHost: mailhost.domain.com
mailAlternateAddress: [EMAIL PROTECTED]

dn: CN=mailman-owner,ou=groups,o=domain.com
objectClass: top
objectClass: inetLocalMailRecipient
objectClass: inetMailGroup
objectClass: groupOfUniqueNames
inetMailGroupStatus: active
mail: [EMAIL PROTECTED]
mgrpRFC822MailMember: [EMAIL PROTECTED]
cn: mailman-owner
mailHost: mailhost.domain.com
mailAlternateAddress: [EMAIL PROTECTED]


from section 5 of the install guide:

5. Customize Mailman

    You should do these steps using the account you installed Mailman
    under in section 2 above.

    - The file $prefix/Mailman/Defaults.py contains a number of
      defaults for your installation.  If any of these are incorrect,
      override them in $prefix/Mailman/mm_cfg.py, NOT IN Defaults.py!
      See the comments in Defaults.py for details.  Once a list is
      created, editing many of these variables will have no effect
      (you need to configure your lists through the web admin
      interface or through the command line script bin/config_list).

      Specifically check to make sure the variables DEFAULT_HOST_NAME
      and DEFAULT_URL are correct.  The latter MUST end in a slash.

      The install process will not overwrite an existing mm_cfg.py
      file so you can freely make changes to this file.

      Note: Do *not* change HOME_DIR or MAILMAN_DIR.  These are set
      automatically by the configure script.



iPlanet/Sun ONE Messenger requires a mail delivery command to be
    registered with argument list with the MTA prior to execution.
    Mailman requires commands like the below to be run for each
    mailing list.  The problem is that for each new mailing list
    that's created, three new commands would need to be registered
    with the mta.  This would quickly get cumbersome.  As a workaround
    I built mailmanWrapper.pl.  It is a perl script that receives a
    message from mailman, parses the headers and calls the mailman
    wrapper with the appropriate arguments.  It should have been
    included with this documentation.  This allows you to register a
    single command with the mta for all mailing lists.

register the mailman wrapper with the Sun ONE mta:

I put my mailWrapper.pl script in /usr/iplanet/server5/msg-<intance>/imta/programs
    and changed the ownership to mailsrv:
    -rwxr-xr-x   1 mailsrv  other        133 Oct 14 16:46 mailmanWrapper.pl
    
imsimta program -a -m mailmanWrapper -p mailmanWrapper.pl -e postmaster
 
    I had the following problem:
        bash-2.03# imsimta program -a -m mailmanWrapper -p mailmanWrapper.pl -e user
        LDAP add failed, No such object.
        bash-2.03# imsimta program -a -m mailmanWrapper -p mailmanWrapper.pl -e user
        Method 'mailmanWrapper' exists.
        bash-2.03# 

    Our Sun ONE Messenger server has its own LDAP replica.  It
    attempted to add config info to the (read-only) replica:

        [14/Oct/2002:13:50:24 -0400] conn=5835 op=1 ADD 
dn="cn=mailmanWrapper,cn=PipePrograms,cn=configuration,cn=msg-mailhost, cn=iPlanet 
Messaging Suite, cn=Server Group(2), cn=mailhost.domain.com, ou=domain.com, 
o=NetscapeRoot"
        [14/Oct/2002:13:50:24 -0400] conn=5835 op=1 RESULT err=32 tag=105 nentries=0 
etime=0

    despite local.ldaphost being set to the master:
        bash-2.03# imsimta configutil -o local.ldaphost
        ldapmaster.domain.com

    imsimta program -l shows the program:
        # imsimta program -l mailmanWrapper
        ==================================================
        Method_name        : mailmanWrapper
        Program_name       : 
/usr/iplanet/server5/msg-mailhost/imta/programs/mailmanWrapper.pl
        Execute Permission : Postmaster
        ==================================================

    However, messages sent to the list aliases bounce.  The error
        in the bounced message looks something like this:

        Original-recipient: rfc822;[EMAIL PROTECTED]
        Final-recipient: rfc822;%mailmanWrapper@pipe-daemon
        Action: failed
        Status: 5.0.0 (Address not found in database)


    what you need to do is change the local.ugldaphost configutil setting, ours was:
       local.ugldaphost = "mailhost.domain.com ldapconsumer.domain.com"
       
       update the configutil setting to the master:
         configutil -o local.ugldaphost -v ldapmaster.domain.com 
       imsimta cnbuild
       delete the imsimta program value: 
           imsimta program -d -m mailmanWrapper
           It will complain but the delete still worked.
       re-add the program:
           imsimta program -a -m mailmanWrapper -p mailmanWrapper.pl -e user
       change the configutil setting back to what it was
           ("mailhost.domain.com ldapconsumer.domain.com" in our case)
       imsimta cnbuild



Create the site password:
   /opt/mailman/bin/mmsitepass <your-site-password>

generate an initial list: (as mailman)

bash-2.03$ bin/newlist morgantest
Enter the email of the person running the list: [EMAIL PROTECTED]
Initial morgantest password: 
Entry for aliases file:

## morgantest mailing list
## created: 14-Oct-2002 root
morgantest:              "|/opt/mailman/mail/wrapper post morgantest"
morgantest-admin:        "|/opt/mailman/mail/wrapper mailowner morgantest"
morgantest-request:      "|/opt/mailman/mail/wrapper mailcmd morgantest"
morgantest-owner:        morgantest-admin

Hit enter to continue with morgantest owner notification...


when you hit enter it send a message to the list owner with the
password and information on administering the list.

You will need to add the entries to ldap:

dn: cn=morgantest,ou=groups,o=domain.com
mailProgramDeliveryInfo: mailmanWrapper
mailDeliveryOption: program
mailAlternateAddress: [EMAIL PROTECTED]
mail: [EMAIL PROTECTED]
mailHost: mailhost.domain.com
objectClass: top
objectClass: inetLocalMailRecipient
objectClass: inetMailGroup
objectClass: groupOfUniqueNames
inetMailGroupStatus: active
cn: morgantest

dn: cn=morgantest-admin,ou=groups,o=domain.com
mailProgramDeliveryInfo: mailmanWrapper
mailDeliveryOption: program
mailAlternateAddress: [EMAIL PROTECTED]
mail: [EMAIL PROTECTED]
mailHost: mailhost.domain.com
objectClass: top
objectClass: inetLocalMailRecipient
objectClass: inetMailGroup
objectClass: groupOfUniqueNames
inetMailGroupStatus: active
cn: morgantest-admin

dn: cn=morgantest-request,ou=groups,o=domain.com
mailProgramDeliveryInfo: mailmanWrapper
mailDeliveryOption: program
mailAlternateAddress: [EMAIL PROTECTED]
mail: [EMAIL PROTECTED]
mailHost: mailhost.domain.com
objectClass: top
objectClass: inetLocalMailRecipient
objectClass: inetMailGroup
objectClass: groupOfUniqueNames
inetMailGroupStatus: active
cn: morgantest-request

dn: cn=morgantest-owner,ou=groups,o=domain.com
mailAlternateAddress: [EMAIL PROTECTED]
mail: [EMAIL PROTECTED]
mailHost: mailhost.domain.com
objectClass: top
objectClass: inetLocalMailRecipient
objectClass: inetMailGroup
objectClass: groupOfUniqueNames
inetMailGroupStatus: active
cn: morgantest-owner
mgrpRFC822MailMember: morgantest-admin 


If you're not running Sun ONE messenger in direct LDAP mode, run a
dirsync.

>From here you should be able to follow the mailman documentation.

Attachment: mailmanWrapper.pl
Description: Binary data

Reply via email to