Questo è un tutorial su come installare Mailman su un VPS su cui è installato un pannello di controllo DirectAdmin.
Mailman è un software gratuito per la gestione delle discussioni sulla posta elettronica e degli elenchi di newsletter.
Per installarlo, esegui i seguenti comandi:
cd /usr/local/src /usr/sbin/useradd -r -s /bin/false mailman mkdir /usr/local/mailman chown mailman:mailman /usr/local/mailman chmod 02775 /usr/local/mailman wget http://ftp.gnu.org/gnu/mailman/mailman-2.1.15.tgz tar xzf mailman-2.1.15.tgz cd mailman-2.1.15 ./configure --with-cgi-gid=apache make make install chmod 755 /usr/local/mailman/cgi-bin chmod u-s,g-s /usr/local/mailman/cgi-bin/* chmod 777 /usr/local/mailman/logs chown -R mailman:mailman /usr/local/mailman chown nobody:mailman /usr/local/mailman/logs/error /usr/local/mailman/bin/newlist -q -e your-hostname.com mailman [email protected] your_password
Per favore, non dimenticare di modificare "la tua_password" e "il tuo nome-host.com" di conseguenza.
Modifica il tuo file di configurazione Exim '/etc/exim.conf' e aggiungi le seguenti righe:
Prima di primary_hostname aggiungi:
MAILMAN_HOME=/usr/local/mailman MAILMAN_WRAP=MAILMAN_HOME/mail/mailman
Dopo l'inizio router aggiungi:
mailman_router: driver = accept require_files = MAILMAN_HOME/lists/$local_part/config.pck local_part_suffix_optional local_part_suffix = -bounces : -bounces+* : \ -confirm+* : -join : -leave : \ -owner : -request : -admin transport = mailman_transport
Dopo l'inizio dei trasporti aggiungi:
mailman_transport: driver = pipe command = MAILMAN_WRAP \ '${if def:local_part_suffix \ {${sg{$local_part_suffix}{-(\\w+)(\\+.*)?}{\$1}}} \ {post}}' \ $local_part current_directory = MAILMAN_HOME home_directory = MAILMAN_HOME user = apache group = apache
Aggiungi le seguenti righe al tuo file '/etc/aliases':
mailman: "|/usr/local/mailman/mail/mailman post mailman" mailman-admin: "|/usr/local/mailman/mail/mailman admin mailman" mailman-bounces: "|/usr/local/mailman/mail/mailman bounces mailman" mailman-confirm: "|/usr/local/mailman/mail/mailman confirm mailman" mailman-join: "|/usr/local/mailman/mail/mailman join mailman" mailman-leave: "|/usr/local/mailman/mail/mailman leave mailman" mailman-owner: "|/usr/local/mailman/mail/mailman owner mailman" mailman-request: "|/usr/local/mailman/mail/mailman request mailman" mailman-subscribe: "|/usr/local/mailman/mail/mailman subscribe mailman" mailman-unsubscribe: "|/usr/local/mailman/mail/mailman unsubscribe mailman"
Quindi, esegui i seguenti comandi:
newaliases /usr/local/mailman/bin/config_list -i /usr/local/mailman/data/sitelist.cfg mailman
Crea uno script di inizializzazione:
vi /etc/init.d/mailman
#!/bin/sh # # mailman This shell script starts and stops GNU Mailman. PYTHON=/usr/bin/python MAILMANHOME=/usr/local/mailman MAILMANCTL=$MAILMANHOME/bin/mailmanctl SRC_CRON_SCRIPT=$MAILMANHOME/cron/crontab.in DST_CRON_SCRIPT=/etc/cron.d/mailman function InstallCron() { install -m644 -o root -g root $SRC_CRON_SCRIPT $DST_CRON_SCRIPT } function RemoveCron() { cat > $DST_CRON_SCRIPT <<EOF # DO NOT EDIT THIS FILE! # # Contents of this file managed by /etc/init.d/mailman # Master copy is /usr/local/mailman/cron/crontab.in # Consult that file for documentation EOF } # Source function library. . /etc/rc.d/init.d/functions RETVAL=0 prog="mailman" function start() { echo -n $"Starting $prog: " daemon $PYTHON $MAILMANCTL -s -q start RETVAL=$? if [ $RETVAL -eq 0 ] then touch /var/lock/subsys/$prog InstallCron fi echo return $RETVAL } function stop() { echo -n $"Shutting down $prog: " daemon $PYTHON $MAILMANCTL -q stop RETVAL=$? if [ $RETVAL -eq 0 ] then rm -f /var/lock/subsys/$prog RemoveCron fi echo return $RETVAL } function restart() { stop start RETVAL=$? return $RETVAL } case "$1" in 'start') start RETVAL=$? ;; 'stop') stop RETVAL=$? ;; 'restart') restart RETVAL=$? ;; 'condrestart') $PYTHON $MAILMANCTL -q -u status retval=$? if [ $retval -eq 0 ] then restart RETVAL=$? fi ;; 'status') $PYTHON $MAILMANCTL -u status RETVAL=$? ;; *) echo $"Usage: $prog {start|stop|restart|condrestart}" ;; esac exit $RETVAL
Esegui i seguenti comandi:
chmod 755 /etc/init.d/mailman chkconfig --add mailman
Modifica il file "mm_cfg.py":
vi /usr/local/mailman/Mailman/mm_cfg.py
DEFAULT_EMAIL_HOST = 'mail.your_domain.com' DEFAULT_URL_HOST = 'www.your_domain.com' IMAGE_LOGOS = '/mailman_images/' add_virtualhost(DEFAULT_URL_HOST, DEFAULT_EMAIL_HOST) VIRTUAL_HOSTS = {'www.your-domain.com': 'your-domain.com'}
Aggiungi la seguente riga al file di configurazione di Apache '/etc/httpd/conf/httpd.conf':
Include conf/extra/mailman.conf
Crea un file di configurazione "mailman.conf" (cambia "Your_IP_address" con il tuo IP effettivo):
vi /etc/httpd/conf/extra/mailman.conf
Alias /mailman_images/ /usr/local/mailman/icons/ Alias /mailman/archives/ /usr/local/mailman/archives/public/ Alias /pipermail/ /usr/local/mailman/archives/public/ ScriptAlias /mailman/ /usr/local/mailman/cgi-bin/ RedirectMatch ^/mailman[/]*$ http://Your_IP_address/mailman/listinfo
Crea un file '.htaccess':
vi /usr/local/mailman/.htaccess
AuthName "Mailman" AuthType Basic AuthUserFile /usr/local/mailman/cgi-bin/.htpasswd require valid-user
Crea un file '.htpasswd':
cd /usr/local/mailman/cgi-bin/ touch .htpasswd
htpasswd -c .htpasswd mailman
Riavvia i tuoi servizi Exim e Apache per rendere effettive le modifiche e avvia il servizio Mailman:
/etc/init.d/exim restart /etc/init.d/httpd restart /etc/init.d/mailman start
Questo è tutto. Dovresti essere in grado di creare una nuova mailing list inserendo le informazioni pertinenti su:
https://Your_IP_address/mailman/create username: mailman password: your_password
Ovviamente non devi fare nulla di tutto ciò se utilizzi uno dei nostri servizi di hosting VPS Linux, nel qual caso puoi semplicemente chiedere ai nostri esperti amministratori Linux di installarlo per te. Sono disponibili 24 ore su 24, 7 giorni su 7 e si prenderanno immediatamente cura della tua richiesta.
PS. Se questo post ti è piaciuto condividilo con i tuoi amici sui social network utilizzando i pulsanti a sinistra o semplicemente lascia una risposta qui sotto. Grazie.