Hi, I am having trouble installing / enabling mailman in ISPconfig. The server is a fresh install and I configured the server using the "Perfect Server Automated ISPConfig 3 Intallation". When it comes to mailman there is a incompatibility issue with tht APT packages on Ubuntu 24.04 which already is known as issue. Installing mailman3 manually following the virtenv guide at "Virtualenv Installation — Mailman Suite 3.3 documentation (mailman3.org)" works and mailman is now running on my server. There we come to the next issue. According to the Perfect Server Guide I would need to run the command "newlist mailman" - but newlist has been replaced with "mailman create" in the current version of mailman. My qustion is now - how can I confugre ISPConfig to detect mailman and configure it accordingly? Here some info about my server: Code: root@voc01:~# cat htf_report.txt ##### SERVER ##### IP-address (as per hostname): ***.***.***.*** [WARN] could not determine server's ip address by ifconfig [INFO] OS version is Ubuntu 24.04.1 LTS [INFO] uptime: 08:45:33 up 1 day, 17:27, 1 user, load average: 0.00, 0.04, 0.07 [INFO] memory: total used free shared buff/cache available Mem: 3.7Gi 3.3Gi 196Mi 134Mi 609Mi 422Mi Swap: 0B 0B 0B [INFO] systemd failed services status: UNIT LOAD ACTIVE SUB DESCRIPTION 0 loaded units listed. [INFO] ISPConfig is installed. ##### ISPCONFIG ##### ISPConfig version is 3.2.12p1 ##### VERSION CHECK ##### [INFO] php (cli) version is 8.3.12 [INFO] php-cgi (used for cgi php in default vhost!) is version 8.3.12 ##### PORT CHECK ##### ##### MAIL SERVER CHECK ##### [WARN] I found no "smtps" entry in your postfix master.cf [INFO] this is not critical, but if you want to offer SSL for smtp (not TLS) connections you have to enable this. ##### RUNNING SERVER PROCESSES ##### [INFO] I found the following web server(s): Apache 2 (PID 40339) [INFO] I found the following mail server(s): Postfix (PID 40256) [INFO] I found the following pop3 server(s): Dovecot (PID 40288) [INFO] I found the following imap server(s): Dovecot (PID 40288) [INFO] I found the following ftp server(s): PureFTP (PID 40392) ##### LISTENING PORTS ##### (only () Local (Address) ***.***.***.***:8000 (32744/python3) [localhost]:953 (40513/named) [localhost]:953 (40513/named) [localhost]:11211 (706/memcached) [localhost]:53 (40513/named) [localhost]:53 (40513/named) ***.***.***.***:53 (594/systemd-resolve) [localhost]:6379 (739/redis-server) [anywhere]:3306 (39862/mariadbd) [anywhere]:993 (40288/dovecot) [anywhere]:995 (40288/dovecot) [localhost]:10023 (737/postgrey) [localhost]:8024 (480701/python3) [localhost]:8001 (32731/python3) [anywhere]:587 (40256/master) [anywhere]:465 (40256/master) [localhost]:11333 (40268/rspamd:) [localhost]:11332 (40268/rspamd:) [localhost]:11334 (40268/rspamd:) [localhost]:5432 (18186/postgres) [anywhere]:143 (40288/dovecot) ***.***.***.***:53 (40513/named) ***.***.***.***:53 (40513/named) [anywhere]:25 (40256/master) [anywhere]:21 (40392/pure-ftpd) [anywhere]:4190 (40288/dovecot) [anywhere]:110 (40288/dovecot) ***.***.***.***:53 (594/systemd-resolve) *:*:*:*::*:8080 (40339/apache2) *:*:*:*::*:8081 (40339/apache2) *:*:*:*::*:11333 (40268/rspamd:) *:*:*:*::*:11332 (40268/rspamd:) *:*:*:*::*:11334 (40268/rspamd:) *:*:*:*::*:5432 (18186/postgres) *:*:*:*::*:10023 (737/postgrey) *:*:*:*::*:3306 (39862/mariadbd) *:*:*:*::*:53 (40513/named) *:*:*:*::*:53 (40513/named) *:*:*:*::*:993 (40288/dovecot) *:*:*:*::*:995 (40288/dovecot) *:*:*:*::*:6379 (739/redis-server) *:*:*:*::*:587 (40256/master) *:*:*:*::**:*:*:*::*53 (40513/named) *:*:*:*::**:*:*:*::*53 (40513/named) *:*:*:*::*:443 (40339/apache2) *:*:*:*::*:465 (40256/master) [localhost]43 (40288/dovecot) *:*:*:*::*:25 (40256/master) *:*:*:*::*:21 (40392/pure-ftpd) *:*:*:*::*:22 (1/init) *:*:*:*::*:953 (40513/named) *:*:*:*::*:953 (40513/named) *:*:*:*::*1:53 (40513/named) *:*:*:*::*1:53 (40513/named) *:*:*:*::*:4190 (40288/dovecot) *:*:*:*::*:80 (40339/apache2) *:*:*:*::*:11211 (706/memcached) [localhost]10 (40288/dovecot) ##### IPTABLES ##### Chain INPUT (policy DROP) target prot opt source destination ufw-before-logging-input 0 -- [anywhere]/0 [anywhere]/0 ufw-before-input 0 -- [anywhere]/0 [anywhere]/0 ufw-after-input 0 -- [anywhere]/0 [anywhere]/0 ufw-after-logging-input 0 -- [anywhere]/0 [anywhere]/0 ufw-reject-input 0 -- [anywhere]/0 [anywhere]/0 ufw-track-input 0 -- [anywhere]/0 [anywhere]/0 Chain FORWARD (policy DROP) target prot opt source destination ufw-before-logging-forward 0 -- [anywhere]/0 [anywhere]/0 ufw-before-forward 0 -- [anywhere]/0 [anywhere]/0 ufw-after-forward 0 -- [anywhere]/0 [anywhere]/0 ufw-after-logging-forward 0 -- [anywhere]/0 [anywhere]/0 ufw-reject-forward 0 -- [anywhere]/0 [anywhere]/0 ufw-track-forward 0 -- [anywhere]/0 [anywhere]/0 Chain OUTPUT (policy ACCEPT) target prot opt source destination ufw-before-logging-output 0 -- [anywhere]/0 [anywhere]/0 ufw-before-output 0 -- [anywhere]/0 [anywhere]/0 ufw-after-output 0 -- [anywhere]/0 [anywhere]/0 ufw-after-logging-output 0 -- [anywhere]/0 [anywhere]/0 ufw-reject-output 0 -- [anywhere]/0 [anywhere]/0 ufw-track-output 0 -- [anywhere]/0 [anywhere]/0 Chain ufw-after-forward (1 references) target prot opt source destination Chain ufw-after-input (1 references) target prot opt source destination ufw-skip-to-policy-input 17 -- [anywhere]/0 [anywhere]/0 udp dpt:137 ufw-skip-to-policy-input 17 -- [anywhere]/0 [anywhere]/0 udp dpt:138 ufw-skip-to-policy-input 6 -- [anywhere]/0 [anywhere]/0 tcp dpt:139 ufw-skip-to-policy-input 6 -- [anywhere]/0 [anywhere]/0 tcp dpt:445 ufw-skip-to-policy-input 17 -- [anywhere]/0 [anywhere]/0 udp dpt:67 ufw-skip-to-policy-input 17 -- [anywhere]/0 [anywhere]/0 udp dpt:68 ufw-skip-to-policy-input 0 -- [anywhere]/0 [anywhere]/0 ADDRTYPE match dst-type BROADCAST Chain ufw-after-logging-forward (1 references) target prot opt source destination LOG 0 -- [anywhere]/0 [anywhere]/0 limit: avg 3/min burst 10 LOG flags 0 level 4 prefix "[UFW BLOCK] " Chain ufw-after-logging-input (1 references) target prot opt source destination LOG 0 -- [anywhere]/0 [anywhere]/0 limit: avg 3/min burst 10 LOG flags 0 level 4 prefix "[UFW BLOCK] " Chain ufw-after-logging-output (1 references) target prot opt source destination Chain ufw-after-output (1 references) target prot opt source destination Chain ufw-before-forward (1 references) target prot opt source destination ACCEPT 0 -- [anywhere]/0 [anywhere]/0 ctstate RELATED,ESTABLISHED ACCEPT 1 -- [anywhere]/0 [anywhere]/0 icmptype 3 ACCEPT 1 -- [anywhere]/0 [anywhere]/0 icmptype 11 ACCEPT 1 -- [anywhere]/0 [anywhere]/0 icmptype 12 ACCEPT 1 -- [anywhere]/0 [anywhere]/0 icmptype 8 ufw-user-forward 0 -- [anywhere]/0 [anywhere]/0 Chain ufw-before-input (1 references) target prot opt source destination ACCEPT 0 -- [anywhere]/0 [anywhere]/0 ACCEPT 0 -- [anywhere]/0 [anywhere]/0 ctstate RELATED,ESTABLISHED ufw-logging-deny 0 -- [anywhere]/0 [anywhere]/0 ctstate INVALID DROP 0 -- [anywhere]/0 [anywhere]/0 ctstate INVALID ACCEPT 1 -- [anywhere]/0 [anywhere]/0 icmptype 3 ACCEPT 1 -- [anywhere]/0 [anywhere]/0 icmptype 11 ACCEPT 1 -- [anywhere]/0 [anywhere]/0 icmptype 12 ACCEPT 1 -- [anywhere]/0 [anywhere]/0 icmptype 8 ACCEPT 17 -- [anywhere]/0 [anywhere]/0 udp spt:67 dpt:68 ufw-not-local 0 -- [anywhere]/0 [anywhere]/0 ACCEPT 17 -- [anywhere]/0 ***.***.***.*** udp dpt:5353 ACCEPT 17 -- [anywhere]/0 ***.***.***.*** udp dpt:1900 ufw-user-input 0 -- [anywhere]/0 [anywhere]/0 Chain ufw-before-logging-forward (1 references) target prot opt source destination Chain ufw-before-logging-input (1 references) target prot opt source destination Chain ufw-before-logging-output (1 references) target prot opt source destination Chain ufw-before-output (1 references) target prot opt source destination ACCEPT 0 -- [anywhere]/0 [anywhere]/0 ACCEPT 0 -- [anywhere]/0 [anywhere]/0 ctstate RELATED,ESTABLISHED ufw-user-output 0 -- [anywhere]/0 [anywhere]/0 Chain ufw-logging-allow (0 references) target prot opt source destination LOG 0 -- [anywhere]/0 [anywhere]/0 limit: avg 3/min burst 10 LOG flags 0 level 4 prefix "[UFW ALLOW] " Chain ufw-logging-deny (2 references) target prot opt source destination RETURN 0 -- [anywhere]/0 [anywhere]/0 ctstate INVALID limit: avg 3/min burst 10 LOG 0 -- [anywhere]/0 [anywhere]/0 limit: avg 3/min burst 10 LOG flags 0 level 4 prefix "[UFW BLOCK] " Chain ufw-not-local (1 references) target prot opt source destination RETURN 0 -- [anywhere]/0 [anywhere]/0 ADDRTYPE match dst-type LOCAL RETURN 0 -- [anywhere]/0 [anywhere]/0 ADDRTYPE match dst-type MULTICAST RETURN 0 -- [anywhere]/0 [anywhere]/0 ADDRTYPE match dst-type BROADCAST ufw-logging-deny 0 -- [anywhere]/0 [anywhere]/0 limit: avg 3/min burst 10 DROP 0 -- [anywhere]/0 [anywhere]/0 Chain ufw-reject-forward (1 references) target prot opt source destination Chain ufw-reject-input (1 references) target prot opt source destination Chain ufw-reject-output (1 references) target prot opt source destination Chain ufw-skip-to-policy-forward (0 references) target prot opt source destination DROP 0 -- [anywhere]/0 [anywhere]/0 Chain ufw-skip-to-policy-input (7 references) target prot opt source destination DROP 0 -- [anywhere]/0 [anywhere]/0 Chain ufw-skip-to-policy-output (0 references) target prot opt source destination ACCEPT 0 -- [anywhere]/0 [anywhere]/0 Chain ufw-track-forward (1 references) target prot opt source destination Chain ufw-track-input (1 references) target prot opt source destination Chain ufw-track-output (1 references) target prot opt source destination ACCEPT 6 -- [anywhere]/0 [anywhere]/0 ctstate NEW ACCEPT 17 -- [anywhere]/0 [anywhere]/0 ctstate NEW Chain ufw-user-forward (1 references) target prot opt source destination Chain ufw-user-input (1 references) target prot opt source destination ACCEPT 6 -- [anywhere]/0 [anywhere]/0 tcp dpt:21 ACCEPT 6 -- [anywhere]/0 [anywhere]/0 tcp dpt:22 ACCEPT 6 -- [anywhere]/0 [anywhere]/0 tcp dpt:25 ACCEPT 6 -- [anywhere]/0 [anywhere]/0 tcp dpt:53 ACCEPT 6 -- [anywhere]/0 [anywhere]/0 tcp dpt:80 ACCEPT 6 -- [anywhere]/0 [anywhere]/0 tcp dpt:110 ACCEPT 6 -- [anywhere]/0 [anywhere]/0 tcp dpt:143 ACCEPT 6 -- [anywhere]/0 [anywhere]/0 tcp dpt:443 ACCEPT 6 -- [anywhere]/0 [anywhere]/0 tcp dpt:465 ACCEPT 6 -- [anywhere]/0 [anywhere]/0 tcp dpt:587 ACCEPT 6 -- [anywhere]/0 [anywhere]/0 tcp dpt:993 ACCEPT 6 -- [anywhere]/0 [anywhere]/0 tcp dpt:995 ACCEPT 6 -- [anywhere]/0 [anywhere]/0 tcp dpt:3306 ACCEPT 6 -- [anywhere]/0 [anywhere]/0 tcp dpt:4190 ACCEPT 6 -- [anywhere]/0 [anywhere]/0 tcp dpt:8080 ACCEPT 6 -- [anywhere]/0 [anywhere]/0 tcp dpt:8081 ACCEPT 6 -- [anywhere]/0 [anywhere]/0 multiport dports 40110:40210 ACCEPT 17 -- [anywhere]/0 [anywhere]/0 udp dpt:53 ACCEPT 6 -- [anywhere]/0 [anywhere]/0 tcp dpt:8001 ACCEPT 6 -- [anywhere]/0 [anywhere]/0 tcp dpt:8000 Chain ufw-user-limit (0 references) target prot opt source destination LOG 0 -- [anywhere]/0 [anywhere]/0 limit: avg 3/min burst 5 LOG flags 0 level 4 prefix "[UFW LIMIT BLOCK] " REJECT 0 -- [anywhere]/0 [anywhere]/0 reject-with icmp-port-unreachable Chain ufw-user-limit-accept (0 references) target prot opt source destination ACCEPT 0 -- [anywhere]/0 [anywhere]/0 Chain ufw-user-logging-forward (0 references) target prot opt source destination Chain ufw-user-logging-input (0 references) target prot opt source destination Chain ufw-user-logging-output (0 references) target prot opt source destination Chain ufw-user-output (1 references) target prot opt source destination ##### LET'S ENCRYPT ##### acme.sh is installed in /root/.acme.sh/acme.sh Code: root@voc01:~# service mailman3 status ● mailman3.service - GNU Mailing List Manager Loaded: loaded (/etc/systemd/system/mailman3.service; enabled; preset: enabled) Active: active (running) since Tue 2024-10-01 18:55:51 CEST; 1 day 14h ago Process: 32715 ExecStart=/opt/mailman/venv/bin/mailman start (code=exited, status=0/SUCCESS) Main PID: 32717 (python3) Tasks: 17 (limit: 4499) Memory: 1010.8M (peak: 1.0G) CPU: 21min 33.792s CGroup: /system.slice/mailman3.service ├─ 32717 /opt/mailman/venv/bin/python3 /opt/mailman/venv/bin/master -C /etc/mailman3/mailman.cfg ├─ 32731 /opt/mailman/venv/bin/python3 /opt/mailman/venv/bin/runner -C /etc/mailman3/mailman.cfg --runner=> ├─ 32776 /opt/mailman/venv/bin/python3 /opt/mailman/venv/bin/runner -C /etc/mailman3/mailman.cfg --runner=> ├─ 32777 /opt/mailman/venv/bin/python3 /opt/mailman/venv/bin/runner -C /etc/mailman3/mailman.cfg --runner=> ├─480695 /opt/mailman/venv/bin/python3 /opt/mailman/venv/bin/runner -C /etc/mailman3/mailman.cfg --runner=> ├─480700 /opt/mailman/venv/bin/python3 /opt/mailman/venv/bin/runner -C /etc/mailman3/mailman.cfg --runner=> ├─480701 /opt/mailman/venv/bin/python3 /opt/mailman/venv/bin/runner -C /etc/mailman3/mailman.cfg --runner=> ├─480702 /opt/mailman/venv/bin/python3 /opt/mailman/venv/bin/runner -C /etc/mailman3/mailman.cfg --runner=> ├─480703 /opt/mailman/venv/bin/python3 /opt/mailman/venv/bin/runner -C /etc/mailman3/mailman.cfg --runner=> ├─480704 /opt/mailman/venv/bin/python3 /opt/mailman/venv/bin/runner -C /etc/mailman3/mailman.cfg --runner=> ├─480705 /opt/mailman/venv/bin/python3 /opt/mailman/venv/bin/runner -C /etc/mailman3/mailman.cfg --runner=> ├─480706 /opt/mailman/venv/bin/python3 /opt/mailman/venv/bin/runner -C /etc/mailman3/mailman.cfg --runner=> ├─480707 /opt/mailman/venv/bin/python3 /opt/mailman/venv/bin/runner -C /etc/mailman3/mailman.cfg --runner=> ├─480708 /opt/mailman/venv/bin/python3 /opt/mailman/venv/bin/runner -C /etc/mailman3/mailman.cfg --runner=> ├─480709 /opt/mailman/venv/bin/python3 /opt/mailman/venv/bin/runner -C /etc/mailman3/mailman.cfg --runner=> └─480710 /opt/mailman/venv/bin/python3 /opt/mailman/venv/bin/runner -C /etc/mailman3/mailman.cfg --runner=>
Mailman cannot be installed on an Ubuntu 24.04 ISPConfig server, and that's why the auto-installer does not install it. Mailman 3 is not supported by ISPConfig, and Mailman 2 is not available on Ubuntu 24.04.
Thanks Till, this clarifies my issues. However, are there plans to update ISPconfig zu support mailman3 on later OS releases? Just wondering as it seems that mailman2 is not further developed since December 2021.
Mailman 3 is basically completely different software, which means we would have to build a new mailing list function in ISPConfig for it from scratch. As mailing lists are rarely used today, I'm not sure if it makes sense to invest that much money in developing it, as less than 0.1% of ISPConfig users would likely ever use it.
Hello. I trust you are well. Just to touch on this, if I wanted to install mailman on Debian 12 with ISPConfig would it work?
Will Mailman3 coexist with ISPConfig on the same server. Accepting of course that ISPConfig would not be managing Mailman. Only acting as the SMTP gateway. Or some configuration like this.
Also, Mailman2 is available as source. Could it be installed this way and integrated with ISPConfig? Any special configuration or location needed?
This should be ok. I have not tested that. It might work as long as your manually built version uses the exact same paths and config files as the original one from Debian and Ubuntu.
I have looked at and installed a few mailing list options. In the end Mailman3 has been installed from the Debian built packages. The integration with Postfix has been a little tricky. eg. The domain CATCHALL hijacks the mailing list name. So no catchall is available. And because of the virtual mailboxes the Mailman3 workaround of using a domain alias was used, see doc reference below. In the Postfix MAIN.CF file several references to "mailman" existed which seem to be from the ISPConfig install even though the --no-mailman option was used during server creation. These parameters were added to main.cf: transport_maps = hash:/var/lib/mailman3/data/postfix_lmtp relay_domains = hash:/var/lib/mailman3/data/postfix_domains virtual_alias_maps = hash:/var/lib/mailman3/data/postfix_vmap Per the Mailman3 documentation: https://docs.mailman3.org/projects/...n/docs/mta.html#unusual-postfix-configuration QUESTION: How do I preserve these entries from being overwritten by ISPConfig. Or will they have to be reentered following updates etc.? Otherwise ISPConfig and Mailman3 seem to be coexisting well enough.
You do mean install it manually yourself right? Mailman3 is not supported and may not be supported. Only if the file or the line(s) in the file that is not touched by ISPConfig or it is one the config that you can customized and put in conf-custom folder.