Zentyal Forum, Linux Small Business Server

Zentyal Server => Installation and Upgrades => Topic started by: G2LOQ on April 17, 2011, 04:33:04 pm

Title: [HOWTO] Mailman
Post by: G2LOQ on April 17, 2011, 04:33:04 pm
Hi,

I've finally successfully installed Mailman on my Zentyal box. As requirement you must have a sub-domain dedicated to yours mailing lists (ex: lists.domain.com). Edit: This sub-domain can not must be referred as a Virtual domain aliase in the Zential web administration (if not, you'll see Relay access denied in mail log).

This has been tested on a system without Zarafa installed. If you do have Zarafa installed further tests must be done.

There're quite a lots of files to modify. So let's go step-by-step...

First of all, install mailman package:
Code: [Select]
$ sudo aptitude install mailman
Create the required mailman list:
Code: [Select]
$ newlist mailman
Check your mailman installation (check permission file) :
Code: [Select]
$ cd /usr/lib/mailman
$ sudo bin/check_perms

if there are errors, type :
Code: [Select]
$ sudo bin/check_perms –f
Create the file /etc/apache2/conf.d/mailman-apache.conf
Code: [Select]
#------------------------------------------------------------
# mailman
#------------------------------------------------------------
# We can find mailman here
ScriptAlias /cgi-bin/mailman /usr/lib/cgi-bin/mailman
# And the public archives:
Alias /pipermail/ /var/lib/mailman/archives/public/
Alias /mailman/public /var/lib/mailman/archives/public
# Logos:
Alias /images/mailman/ /usr/share/images/mailman/
# Redirect to mailman start page
RedirectMatch ^/mailman[/]*$ /cgi-bin/mailman/listinfo

<Directory /usr/lib/cgi-bin/mailman>
    Options ExecCGI
    AllowOverride None
    order deny,allow
    deny from all
    allow from all
</Directory>

<Directory /var/lib/mailman/archives/public>
    Options Indexes Includes FollowSymLinks
    order deny,allow
    deny from all
    allow from all
</Directory>

<Directory /usr/share/images/mailman/>
    AllowOverride None
    Order allow,deny
    Allow from all
</Directory>

Next, modify mailman configuration. Here are the relevant parameters:
/etc/mailman/mm_cfg.py
Code: [Select]
DEFAULT_EMAIL_HOST = 'lists.domain.com'
DEFAULT_URL_HOST   = 'lists.domain.com'
[...]
MTA='Postfix'
POSTFIX_STYLE_VIRTUAL_DOMAINS = ['lists.domain.com']

Postfix must now be informed that we're going to use mailman. We have to modify the stubs files of Zential:
/usr/share/ebox/stubs/mail/main.cf.mas
Code: [Select]
[...]
alias_maps = hash:/etc/aliases, hash:/var/lib/mailman/data/aliases

alias_database = hash:/etc/aliases, hash:/var/lib/mailman/data/aliases
[...]
virtual_alias_maps = ldap:valiases, hash:/var/lib/mailman/data/virtual-mailman
[...]
# Mailman
owner_request_special = no
mailman_destination_recipient_limit = 1
transport_maps = hash:/etc/postfix/transport

And:
/usr/share/ebox/stubs/mail/transport.mas
Code: [Select]
[...]
lists.domain.com    mailman:

Force the templates to be redeployed by restarting the Mail on the Zential dashboard.

You can now create your own mailing list via the web interface (http://.../mailman) or with the command line newlist.

Feedbacks are welcome!!!  ;)
Title: Re: [HOWTO] Mailman
Post by: Jaime Soriano on April 18, 2011, 01:10:44 pm
Hi,

Many thanks for your howto! I've added "Mailing lists" to the new modules wishlist (http://trac.zentyal.org/wiki/Document/Development/Wishlist/Module/New#Mailinglists) referencing it.

Regards,
Jaime.
Title: Re: [HOWTO] Mailman
Post by: G2LOQ on April 19, 2011, 02:31:27 am
That's would be great to have it as module !!!

To finish this howto here are some troubleshooting tips:

If something goes wrong, check your logs:  ;)
Code: [Select]
$ tail -f /var/log/mail.infoSend a test email to your mailing list: mailman-request@lists.domain.com with the subject "help".

1) [...]Recipient address rejected: User unknown in virtual mailbox table[...]
Check that Postfix is searching in the good aliases map:
Code: [Select]
$ postmap -q "mailman-request@lists.domain.com" hash:/var/lib/mailman/data/virtual-mailman
Should return
$ mailman-request
If not, check alias_maps, alias_database, virtual_alias_maps in /etc/postfix/main.cf, and do:
Code: [Select]
$ cd /var/lib/mailman/
$ sudo bin/genaliases

2) The email is not received in the user mailbox.
Check which transport Postfix used to dispatch your email. You should find in your logs:
[...]to=<...@lists.domain.com>, relay=mailman[...]
If you find:
[...]to=<...@lists.domain.com>, relay=dovecot[...]
Check /etc/postfix/transport.  You must have a line lists.domain.com    mailman:.
And do:
Code: [Select]
$ sudo postmap /etc/postfix/transportThis point explains why you need a sub-domain to run mailman. Postfix will use different relays function of the domain. Zarafa uses /etc/postfix/transport as well. I  haven't test this configuration...

Hope that it can help you.

Enjoy Mailman!!!


Title: Re: [HOWTO] Mailman
Post by: christian on April 19, 2011, 11:57:25 am
I'm using mailman too and did more or less what you did  8)

The issue I'm facing is that each and every update modifying "mail" will potentially modify main.cf .mas and kill your mailman service.
Because of this, I've removed automatic update...  :(

This aside, it works pretty well  ;)
What I would like is to have mailman part of standard Zentyal modules.
Title: Re: [HOWTO] Mailman
Post by: Jaime Soriano on April 19, 2011, 06:11:32 pm
You can also use hooks (http://doc.zentyal.org/en/develop.html#service-advanced-customisation) to modify Zentyal files, hooks are not overrided or deleted on upgrades :)
Title: Re: [HOWTO] Mailman
Post by: christian on April 28, 2011, 11:22:54 am
Sure, hook fits here but can be quite complex depending on what you want to introduce in conf files.
That's the reason why I would be much happier with Mailman natively handled (if I can say so) as Zentyal component.
When I write "Mailman", I mean mailing list feature. Mailman is the one I use but some others exist.
Title: Re: [HOWTO] Mailman - listname@domain.com instead of listname@lists.domain.com
Post by: andygraybeal on May 16, 2011, 08:02:46 pm
I've followed through the HOWTO and it works great if I email listname@lists.domain.com.  I'm wondering if it's possible for me to mail listname@domain.com (leaving out the lists hostname).

Thank you for this tutorial!

-Andy
Title: Re: [HOWTO] Mailman
Post by: andygraybeal on May 31, 2011, 12:13:23 am
Got it!  I apt-get purged mailman... then re-installed, following the instructions and removed 'lists' from each domain configuration line so it simply read domain.com... all but the DEFAULT_URL_HOST   setting, i kept that the same ... 'lists.domain.com

yes!! :)

-Andy
Title: Re: [HOWTO] Mailman
Post by: freeoli on February 06, 2013, 12:42:20 pm
Hi All!

Somebody try install mailman to 3.0?

Oli
Title: Re: [HOWTO] Mailman
Post by: swidmer on April 04, 2013, 07:51:17 pm
Yes..But I am receiving Relay Errors.  I am also using Zarfara.  Any Ideas to help stamp-out the bug, I have followed the above instructions, Mailman works well from the local domain, but it will not work from a message sent from any other domain to it.
Title: Re: [HOWTO] Mailman
Post by: swidmer on April 04, 2013, 08:00:44 pm
The below message is received when other domains attempt to access the Mailman Service on my Zentyal 3 w/ Zafara, as I mentioned in the above post.

Your message

  To:      mailman-request@lists.domain.com
  Subject: help
  Sent:    Wed, 3 Apr 2013 23:29:57 -0400

did not reach the following recipient(s):

mailman-request@lists.domain.com on Wed, 3 Apr 2013 23:29:57 -0400
    You do not have permission to send to this recipient.  For
assistance, contact your system administrator.
    <sbshp.myotherdomain.local #5.7.1 smtp;554 5.7.1
<mailman-request@lists.domain.com>: Relay access denied>



Reporting-MTA: dns; sbshp.myotherdomain.local

Final-Recipient: RFC822; mailman-request@lists.domain.com
Action: failed
Status: 5.7.1
X-Supplementary-Info: <sbshp.myotherdomain.local #5.7.1 smtp;554 5.7.1 <mailman-request@lists.domain.com>: Relay access denied>
X-Display-Name: mailman-request@lists.domain.com


ForwardedMessage.eml
Subject:
help
From:
"Stephen Widmer" <SWidmer@my_other_domain.com>
Date:
4/3/2013 23:29
To:
<mailman-request@lists.domain.com>