Difference between revisions of "Mailman"
Unnilennium (talk | contribs) |
|||
(84 intermediate revisions by 10 users not shown) | |||
Line 1: | Line 1: | ||
+ | {{Languages|Mailman}} | ||
==Mailman== | ==Mailman== | ||
+ | === Maintainer === | ||
+ | [mailto:stephdl@de-labrusse.fr stephdl] Stéphane de Labrusse AKA [[User:stephdl|Stephdl]]<br /> | ||
+ | === Version === | ||
+ | {{ #smeversion: smeserver-mailman }} | ||
===Description=== | ===Description=== | ||
Line 8: | Line 13: | ||
=== Installation === | === Installation === | ||
+ | <tabs container><tab name="For SME 10"> | ||
+ | yum install smeserver-mailman --enablerepo=smecontribs | ||
+ | </tab><tab name="For SME 9 and SME 8"> | ||
+ | * for sme8, sme9 | ||
+ | yum install smeserver-mailman --enablerepo=smecontribs | ||
+ | signal-event mailman-update | ||
+ | or if you want to restart your server | ||
+ | signal-event post-upgrade;signal-event reboot | ||
+ | </tab> | ||
+ | </tabs> | ||
− | + | You should now see a Mailman section under the Configuration section of the server-manager. Please see Known issues below to set up your mailman session. Keep in mind that the mailman administrator password is not the same as the SME Server one, [[Mailman#Error:_You_are_not_authorized_to_create_new_mailing_lists|Read the section below to see how find your password]]. | |
− | |||
− | |||
− | You | + | === Configuration === |
+ | |||
+ | ==== Configure access ==== | ||
+ | By default only listing public lists is enabled from outside the LAN. Admin is reserved for LAN access, and also Archive browsing. | ||
+ | |||
+ | Option setting is also attached to the public listing access, so external users can modify their preferences. | ||
+ | |||
+ | To modify those setting just go to server-manager and modify according to your needs. | ||
+ | |||
+ | ==== Creating lists ==== | ||
+ | ===== Error: You are not authorized to create new mailing lists===== | ||
+ | |||
+ | The administrator of SME Server isn't allowed to create Lists (even from the server-manager), this is how obtain the mailman administrator password. see [[bugzilla:7836]] | ||
+ | |||
+ | {{Tip box|The mailman password is different of the admin password of SME Server, therefore to know the mailman Password you can issue the following command in a root terminal}} | ||
+ | [root@sme8dev64 ~]# config show mailman | ||
+ | mailman=service | ||
+ | SitePass=[YOUR_PASSWORD_IS_HERE] | ||
+ | status=enabled | ||
+ | |||
+ | You have to use the value of SitePass as your mailman password to create Lists. If you change the password later with '''/usr/lib/mailman/bin/mmsitepass''' you '''*SHOULD*''' update SitePass using | ||
+ | |||
+ | config setprop mailman SitePass YOUR_PASSWORD | ||
+ | |||
+ | ===== Error: Unknown virtual host: xxxxxx.xx===== | ||
+ | Go to http://domain.name/mailman to create new lists. | ||
+ | |||
+ | If your SMEServer has multiple domains configured, do not prepend www. before the virtual domain. | ||
+ | |||
+ | For example: go to http://virtualdomain.name/mailman to create lists for that domain name. | ||
− | === | + | Keep in mind that '''no list can have the same name as an ibay, group or an user''' so choose the name carefully. |
+ | {{Note box|msg=Always use http://domain.name/mailman to create your list, where domain.name is the exact domain you want to be used after the "@". Failing to do so, will lead to denial to relay error. As an example do not go to http://hostname.domain.name/mailman to create a mailing list for mailinglist@domain.name but to http://domain.name/mailman. see [[Bugzilla:5976]] | ||
+ | |||
+ | '''If you don't use a FQDN domain Name as described above''', you can have an error like this one | ||
+ | Error: Unknown virtual host: xxxxxx | ||
+ | where xxxxxx is the hostname of your Server. see [[bugzilla:7837]] | ||
+ | }} | ||
+ | |||
+ | {{Tip box|Further more You have to define the concerned domain in the server-manager's domain panel. You can select whether this domain is resolved locally, passed to the corporate DNS servers, or resolved by the Internet DNS servers, otherwise you will have the message: '''Error: Unknown virtual host: xxxxxx'''}} | ||
+ | |||
+ | ===== "www" instead of "apache" ===== | ||
+ | But if you are not running the contribs compiled version, Mailman's management interface shows up with a CGI error message. It complains about group mismatch error between "www" and "apache". Login as root and apply the following workaround, which was suggested in [[bugzilla:6425]]: | ||
+ | |||
+ | id -u apache # should yield 48 | ||
+ | id -u www # should yield 102 | ||
+ | usermod -u 102 -o apache # makes apache user and www user identical | ||
+ | groupmod -g 102 -o apache # make apache group and www group identical | ||
==== File locations ==== | ==== File locations ==== | ||
− | {| | + | {|border="1" |
|- | |- | ||
! Location | ! Location | ||
Line 33: | Line 91: | ||
| location of qmail alias files | | location of qmail alias files | ||
|} | |} | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
==== Command line options ==== | ==== Command line options ==== | ||
You can do a lot using the command line scripts located in /usr/lib/mailman/bin | You can do a lot using the command line scripts located in /usr/lib/mailman/bin | ||
For example | For example | ||
− | {| | + | {|border="1" |
|- | |- | ||
| /usr/lib/mailman/bin/mmsitepass | | /usr/lib/mailman/bin/mmsitepass | ||
− | | will set the master password for all lists | + | | will set the master password for all lists |
|- | |- | ||
− | | /usr/lib/mailman/bin/list- | + | | /usr/lib/mailman/bin/list_members [listname] |
− | | will list | + | | will list the members of [listname] |
+ | |- | ||
+ | | /usr/lib/mailman/bin/list_admins [listname] | ||
+ | | will list all admins of [listname] | ||
+ | |- | ||
+ | | /usr/lib/mailman/bin/list_lists | ||
+ | | will list your mailling lists | ||
+ | |- | ||
+ | | /usr/lib/mailman/bin/list_owners | ||
+ | | will list all owners of mailling lists or will list all mailling lists | ||
|} | |} | ||
− | Running the script with --help will display the options available | + | Running the script with --help will display the options available. |
==== Transferring Lists ==== | ==== Transferring Lists ==== | ||
− | You can transfer lists from another server and keep everything | + | You can transfer lists from another server and keep everything intact. It's an easy process but the Mailman FAQ and info seems to be sparse and complicated. This simplifies everything. |
OLD SERVER | OLD SERVER | ||
Line 77: | Line 136: | ||
Extract/untar/unzip the tar/zip file. | Extract/untar/unzip the tar/zip file. | ||
tar -xvzf /var/lib/mailman.tar.gz | tar -xvzf /var/lib/mailman.tar.gz | ||
− | The lists are transferred but the SME SERVER doesn't know about them. Let the server know about the | + | The lists are transferred but the SME SERVER doesn't know about them. Let the server know about the lists: |
signal-event mailman-addlist <listname> | signal-event mailman-addlist <listname> | ||
All your lists and lists' configurations should now be available at: http://domain.name/mailman | All your lists and lists' configurations should now be available at: http://domain.name/mailman | ||
+ | |||
+ | === Personalization === | ||
+ | |||
+ | {{Note box|Be warned that personalization is going to stress your server a lot as every mail is sent individually, not in batches as mailman usually do, so test this option before using in a production server.}} | ||
+ | |||
+ | If you want to enable personalization in mailman (make every mail sent with the name of the recipient in the to: field as example or add the name of the user on the text) you do this: | ||
+ | <ol><li>Create the custom-templates tree, in case it does not exist already: | ||
+ | mkdir -p /etc/e-smith/templates-custom/usr/lib/mailman/Mailman/mm_cfg.py/ | ||
+ | </li><li> | ||
+ | Copy the hostname file from the templates tree to the templates-custom tree maintaining the directory layout: | ||
+ | cp \ | ||
+ | /etc/e-smith/templates/usr/lib/mailman/Mailman/mm_cfg.py/30hostname \ | ||
+ | /etc/e-smith/templates-custom/usr/lib/mailman/Mailman/mm_cfg.py/30hostname | ||
+ | </li><li> | ||
+ | Now we need to add one line to the custom template fragment to enable personalization: | ||
+ | echo OWNERS_CAN_ENABLE_PERSONALIZATION = 1 >> \ | ||
+ | /etc/e-smith/templates-custom/usr/lib/mailman/Mailman/mm_cfg.py/30hostname | ||
+ | </li><li> | ||
+ | To reflect your changes we need to regenerate the file using the following commands: | ||
+ | expand-template /usr/lib/mailman/Mailman/mm_cfg.py | ||
+ | signal-event smeserver-mailman-update | ||
+ | </li><li> | ||
+ | After the server comes back up again enter your mailing list admin and go to non-digest and in "Should Mailman personalize each non-digest delivery?" choose either yes or full personalization. Test both to see wich one do you like more... | ||
+ | Also if you want to add a header with the person name enter in "Header added to mail sent to regular list members" this: | ||
+ | Hello dear %(user_name)s | ||
+ | and mailman is going to replace the string with the name the person used when he/she subscribed. | ||
+ | </li></ol> | ||
+ | |||
+ | ===Import lists from ezmlm=== | ||
+ | Get the script ezmlm2mbox from http://www.arctic.org/~dean/scripts/ezmlm2mbox | ||
+ | wget http://www.arctic.org/~dean/scripts/ezmlm2mbox -O | ||
+ | Get subscribers: | ||
+ | ezmlm-list /home/e-smith/files/ezmlm/lists/mylist > mylist.subscribers | ||
+ | Get denied subscribers: | ||
+ | ezmlm-list /home/e-smith/files/ezmlm/lists/mylist deny > mylist.deny | ||
+ | Convert the ezmlm list to an mbox-file: | ||
+ | ./ezmlm2mbox /home/e-smith/files/ezmlm/lists/mylist > mylist.mbox | ||
+ | Backup the ezmlm list, just in case ... | ||
+ | tar -czf mylist.tgz /home/e-smith/files/ezmlm/lists/mylist | ||
+ | |||
+ | Then using the server-manager: | ||
+ | # Remove the ezmlm list, via the ezmlm web panel | ||
+ | # Create the new Mailman list, via the Mailman web panel | ||
+ | # Add subscribers to the new list, using the file you made in step 1. I prefer to do this in silence, without letting the subscribers know. | ||
+ | # Check the file mylist.deny from step 2, and - if needed - adjust the settings of your new list accordingly. | ||
+ | |||
+ | |||
+ | Import the mbox to Mailman | ||
+ | cp mylist.mbox /var/lib/mailman/archives/private/mylist.mbox/mylist.mbox | ||
+ | /opt/mailman/bin/arch --wipe mylist | ||
+ | Check and fix ownerships and access rights | ||
+ | /opt/mailman/bin/check_perms -f | ||
+ | |||
+ | from : https://forums.contribs.org/index.php/topic,53230.0.html | ||
=== For more information === | === For more information === | ||
Line 87: | Line 200: | ||
=== Current Issues === | === Current Issues === | ||
− | + | ||
− | + | === Bugs === | |
− | + | Please raise bugs under the SME-Contribs section in [http://bugs.contribs.org/enter_bug.cgi bugzilla] | |
+ | and select the smeserver-mailman component or use {{BugzillaFileBug|product=SME%20Contribs|component=smeserver-mailman|title=this link}}. | ||
+ | |||
+ | {{#bugzilla:columns=id,product,version,status,summary |sort=id|order=desc |component=smeserver-mailman|noresultsmessage="No open bugs found."}} | ||
+ | |||
+ | = Changelog = | ||
+ | Only released versions in smecontrib are listed here. | ||
+ | |||
+ | {{#smechangelog:smeserver-mailman}} | ||
+ | |||
---- | ---- | ||
[[Category:Contrib]] | [[Category:Contrib]] | ||
[[Category:Mail]] | [[Category:Mail]] | ||
+ | [[Category:Mail:Mailinglists]] |
Latest revision as of 03:12, 24 July 2022
Mailman
Maintainer
stephdl Stéphane de Labrusse AKA Stephdl
Version
Description
Mailman is free software for managing electronic mail discussion and e-newsletter lists. Mailman is integrated with the web, making it easy for users to manage their accounts and for list owners to administer their lists. Mailman supports built-in archiving, automatic bounce processing, content filtering, digest delivery, spam filters, and more.
Thanks to Gordon Rowell for developing the rpms.
Installation
yum install smeserver-mailman --enablerepo=smecontribs
- for sme8, sme9
yum install smeserver-mailman --enablerepo=smecontribs signal-event mailman-update
or if you want to restart your server
signal-event post-upgrade;signal-event reboot
You should now see a Mailman section under the Configuration section of the server-manager. Please see Known issues below to set up your mailman session. Keep in mind that the mailman administrator password is not the same as the SME Server one, Read the section below to see how find your password.
Configuration
Configure access
By default only listing public lists is enabled from outside the LAN. Admin is reserved for LAN access, and also Archive browsing.
Option setting is also attached to the public listing access, so external users can modify their preferences.
To modify those setting just go to server-manager and modify according to your needs.
Creating lists
Error: You are not authorized to create new mailing lists
The administrator of SME Server isn't allowed to create Lists (even from the server-manager), this is how obtain the mailman administrator password. see bugzilla:7836
[root@sme8dev64 ~]# config show mailman mailman=service SitePass=[YOUR_PASSWORD_IS_HERE] status=enabled
You have to use the value of SitePass as your mailman password to create Lists. If you change the password later with /usr/lib/mailman/bin/mmsitepass you *SHOULD* update SitePass using
config setprop mailman SitePass YOUR_PASSWORD
Error: Unknown virtual host: xxxxxx.xx
Go to http://domain.name/mailman to create new lists.
If your SMEServer has multiple domains configured, do not prepend www. before the virtual domain.
For example: go to http://virtualdomain.name/mailman to create lists for that domain name.
Keep in mind that no list can have the same name as an ibay, group or an user so choose the name carefully.
"www" instead of "apache"
But if you are not running the contribs compiled version, Mailman's management interface shows up with a CGI error message. It complains about group mismatch error between "www" and "apache". Login as root and apply the following workaround, which was suggested in bugzilla:6425:
id -u apache # should yield 48 id -u www # should yield 102 usermod -u 102 -o apache # makes apache user and www user identical groupmod -g 102 -o apache # make apache group and www group identical
File locations
Location | Description |
---|---|
/var/lib/mailman | location of mailman lists and archives |
/usr/lib/mailman | location of mailman program files |
/usr/lib/mailman/aliases | location of qmail alias files |
Command line options
You can do a lot using the command line scripts located in /usr/lib/mailman/bin
For example
/usr/lib/mailman/bin/mmsitepass | will set the master password for all lists |
/usr/lib/mailman/bin/list_members [listname] | will list the members of [listname] |
/usr/lib/mailman/bin/list_admins [listname] | will list all admins of [listname] |
/usr/lib/mailman/bin/list_lists | will list your mailling lists |
/usr/lib/mailman/bin/list_owners | will list all owners of mailling lists or will list all mailling lists |
Running the script with --help will display the options available.
Transferring Lists
You can transfer lists from another server and keep everything intact. It's an easy process but the Mailman FAQ and info seems to be sparse and complicated. This simplifies everything.
OLD SERVER
First stop the mailman service.
/etc/init.d/mailman stop
Next, tar/zip up the lists.
tar -czvf /temp/mailman.tar.gz /var/lib/mailman
Next, transfer it onto the new server using scp or rsync:
scp -P <sshportnumber> /temp/mailman.tar.gz <newserverip>:/var/lib
or
rsync --progress -te "ssh -p <sshportnumber>" /temp/mailman.tar.gz <newserverip>:/var/lib
NEW SERVER
Change to the rpm location.
cd /install
Install the rpms.
yum localinstall mailman-* smeserver-mailman-*
Extract/untar/unzip the tar/zip file.
tar -xvzf /var/lib/mailman.tar.gz
The lists are transferred but the SME SERVER doesn't know about them. Let the server know about the lists:
signal-event mailman-addlist <listname>
All your lists and lists' configurations should now be available at: http://domain.name/mailman
Personalization
If you want to enable personalization in mailman (make every mail sent with the name of the recipient in the to: field as example or add the name of the user on the text) you do this:
- Create the custom-templates tree, in case it does not exist already: mkdir -p /etc/e-smith/templates-custom/usr/lib/mailman/Mailman/mm_cfg.py/
- Copy the hostname file from the templates tree to the templates-custom tree maintaining the directory layout: cp \ /etc/e-smith/templates/usr/lib/mailman/Mailman/mm_cfg.py/30hostname \ /etc/e-smith/templates-custom/usr/lib/mailman/Mailman/mm_cfg.py/30hostname
- Now we need to add one line to the custom template fragment to enable personalization: echo OWNERS_CAN_ENABLE_PERSONALIZATION = 1 >> \ /etc/e-smith/templates-custom/usr/lib/mailman/Mailman/mm_cfg.py/30hostname
- To reflect your changes we need to regenerate the file using the following commands: expand-template /usr/lib/mailman/Mailman/mm_cfg.py signal-event smeserver-mailman-update
- After the server comes back up again enter your mailing list admin and go to non-digest and in "Should Mailman personalize each non-digest delivery?" choose either yes or full personalization. Test both to see wich one do you like more... Also if you want to add a header with the person name enter in "Header added to mail sent to regular list members" this: Hello dear %(user_name)s and mailman is going to replace the string with the name the person used when he/she subscribed.
Import lists from ezmlm
Get the script ezmlm2mbox from http://www.arctic.org/~dean/scripts/ezmlm2mbox
wget http://www.arctic.org/~dean/scripts/ezmlm2mbox -O
Get subscribers:
ezmlm-list /home/e-smith/files/ezmlm/lists/mylist > mylist.subscribers
Get denied subscribers:
ezmlm-list /home/e-smith/files/ezmlm/lists/mylist deny > mylist.deny
Convert the ezmlm list to an mbox-file:
./ezmlm2mbox /home/e-smith/files/ezmlm/lists/mylist > mylist.mbox
Backup the ezmlm list, just in case ...
tar -czf mylist.tgz /home/e-smith/files/ezmlm/lists/mylist
Then using the server-manager:
- Remove the ezmlm list, via the ezmlm web panel
- Create the new Mailman list, via the Mailman web panel
- Add subscribers to the new list, using the file you made in step 1. I prefer to do this in silence, without letting the subscribers know.
- Check the file mylist.deny from step 2, and - if needed - adjust the settings of your new list accordingly.
Import the mbox to Mailman
cp mylist.mbox /var/lib/mailman/archives/private/mylist.mbox/mylist.mbox /opt/mailman/bin/arch --wipe mylist
Check and fix ownerships and access rights
/opt/mailman/bin/check_perms -f
from : https://forums.contribs.org/index.php/topic,53230.0.html
For more information
Mailman website http://www.list.org/ Mailman FAQ http://www.python.org/cgi-bin/faqw-mm.py?req=all
Current Issues
Bugs
Please raise bugs under the SME-Contribs section in bugzilla and select the smeserver-mailman component or use this link .
ID | Product | Version | Status | Summary (2 tasks) ⇒ |
---|---|---|---|---|
11948 | SME Contribs | 10.0 | CONFIRMED | NFR add property and fragment to allow personalization |
11938 | SME Contribs | 10.0 | CONFIRMED | as mailman create the list for a specific domain we should use the domain in account entry as we do for pseudonyms |
Changelog
Only released versions in smecontrib are listed here.
- apply locale 2022-11-11 patch
- Re-build and link to latest devtools [SME: 11997]
2022/07/30 Jean-Philippe Pialasse 1.5.0-17.sme
- update to httpd 2.4 access syntax [SME: 12050]
2022/07/23 Jean-Philippe Pialasse 1.5.0-16.sme
- apply locale 2022-07-24.patch
- add to core backup [SME: 12015]
remove patch only adding to dar in SME 2411- already compatible with httpd 2.4 syntax [SME: 12050]
2022/04/12 Jean-Philippe Pialasse 1.5.0-15.sme
- Re-build and link to latest devtools permissions as expected by mailman [SME: 11941]
- make mailman enabled on install [SME: 2248]
- by default listinfo is public [SME: 2247]
- by default admin and archives are private [SME: 2247]