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.
mailmanWrapper.pl
Description: Binary data