Installazione software · 8 min read · Sep 26, 2025
Installazione di iRedMail e Mailman su Debian Squeeze
Installazione di iRedMail e Mailman su Debian Squeeze
Versione: 1
Autore: Jason Norwood-Young
Ultima modifica: 22 dicembre 2011
Sono un grande fan di iRedMail, che è fondamentalmente una versione pacchettizzata di Postfix e degli altri componenti che rendono Postfix interessante, come Spamassassin, greylisting e un backend LDAP o MySql. Una cosa che desideravo con iRedMail è Mailman, il mio server di mailing list preferito. Integrare i due può essere una missione, quindi ecco alcune istruzioni per risparmiarti un bel po’ di dolore.
I ragazzi di iRedMail offrono una console di amministrazione gratuita per gestire gli account utente. Io mi abbono alla versione Pro della console di amministrazione di iRedMail, che è molto utile per i clienti per autogestirsi. Non ho nulla a che fare con iRedMail, a parte essere un cliente.
1. Configurazione del server
Sto installando su una nuova installazione di Debian Squeeze. La prima cosa che faccio sempre su un nuovo server è:
apt-get update
apt-get upgrade
dpkg-reconfigure tzdataL’ultima riga ti consente di impostare il tuo fuso orario. Non è strettamente necessario per i nostri scopi, ma considero buona prassi impostarlo.
Ora dobbiamo impostare un nome di dominio completamente qualificato (FQDN). Questo significa che abbiamo bisogno di un dominio come mailserver.example.com invece di semplicemente mailserver. Per controllare qual è il tuo hostname, digita:
hostname -fNOTA: Il nome di dominio che scegli dovrebbe essere diverso dal dominio email che desideri utilizzare. Se vuoi che la tua email provenga da [email protected], non rendere il nome del tuo server example.com - dagli un sottodominio come obiwan o captainkirk o (se sei noioso come me) mailserver.
Se hai già un FQDN, puoi passare al passo 2.
Il nome di dominio è impostato in due posti: /etc/hostname e /etc/hosts.
Modifica il tuo /etc/hostname per contenere il tuo FQDN (per i fini di questo tutorial userò mailserver.example.com).
Per il tuo file /etc/hosts, la tua prima riga dovrebbe apparire così:
127.0.0.1 mailserver.example.com mailserver localhost localhost.localdomainOra dobbiamo solo dire al sistema di registrare la modifica:
/etc/init.d/hostname.sh
hostname -fDovresti ora vedere un FQDN. Se non ne ottieni uno, panico! Er, voglio dire riavvia e controlla di nuovo.
2. Installazione di iRedMail
Al momento della scrittura, la versione di iRedMail è 0.7.3. Controlla su www.iredmail.org per la versione più recente e adatta di conseguenza.
cd ~
wget http://iredmail.googlecode.com/files/iRedMail-0.7.3.tar.bz2
apt-get install bzip2
tar xjf iRedMail-0.7.3.tar.bz2
cd iRedMail-0.7.3
bash iRedMail.shiRedMail installerà tutto ciò di cui hai bisogno. Accetta tutti i valori predefiniti tranne per il backend - scegli MySql invece di LDAP. Quando ti viene chiesto il tuo primo dominio email virtuale, inserisci example.com, NON mailserver.example.com. Rispondi Sì ogni volta che ti viene chiesto.
Ora hai un fantastico server di posta! È stato facile, eh?
3. Installazione di Mailman
Prima installiamo Mailman:
apt-get install mailmanNota che Mailman non viene ancora avviato. Prima dobbiamo dire a Postfix di inviare email a Mailman quando riceve email da determinati indirizzi.
4. Configurazione dei Trasporti e degli Alias
Stiamo per creare un dominio virtuale chiamato lists.example.com, che useremo per tutte le nostre cose di Mailman. Ogni volta che qualcosa viene inviato al dominio lists.example.com, lo inoltreremo al programma Mailman invece di gestirlo come una normale email.
Poiché non vogliamo che la nostra mailing list sia sul dominio lists.example.com ma piuttosto solo example.com, imposteremo anche un sacco di alias per accettare le email inviate agli indirizzi Mailman su example.com e invece instradarle a lists.example.com.
Faremo tutto questo attraverso il database MySql. Punta un browser su https://example.com/phpmyadmin. Nota che è https e non solo http. Nota anche che se non hai un server dei nomi che punta già al tuo indirizzo IP, potresti dover aggiungere example.com al tuo file /etc/hosts sul tuo computer locale.
Accedi con l’utente root e la password che hai scelto durante l’installazione di iRedMail. Se non ricordi i dettagli, controlla ~/iRedMail-0.7.3/iRedMail.tips - iRedMail salva convenientemente le posizioni, i nomi utente e le password per tutti i servizi iRedMail lì.
Clicca sul database “vmail” nel pannello sinistro, e poi sulla scheda “SQL”. Incolla il seguente comando nella scheda (dopo aver cambiato il dominio con il tuo ovviamente) e premi Esegui:
INSERT INTO `vmail`.`domain` (`domain`, `description`, `disclaimer`, `aliases`, `mailboxes`, `maxquota`, `quota`, `transport`, `backupmx`, `defaultuserquota`, `defaultuseraliases`, `defaultpasswordscheme`, `minpasswordlength`, `maxpasswordlength`, `created`, `modified`, `expired`, `active`) VALUES ('lists.example.com', '', '', '0', '0', '0', '0', 'mailman:', '0', '1024', '', '', '0', '0', NOW(), '0000-00-00 00:00:00', '9999-12-31 00:00:00', '1');Questo ha impostato il nostro Trasporto per ottenere tutto da lists.example.com all’app Mailman.
Ora dobbiamo aggiungere gli alias di Mailman. Dovrai farlo ogni volta che aggiungi una nuova lista a Mailman, basta cercare e sostituire “mailman” con il nome della tua nuova lista e rieseguire il SQL.
INSERT INTO `alias` (`address`, `goto`, `name`, `moderators`, `accesspolicy`, `domain`, `created`, `modified`, `expired`, `active`) VALUES
('[email protected]', '[email protected]', '', '', 'public', 'example.com', NOW(), NOW(), '9999-12-31 00:00:00', 1),
('[email protected]', '[email protected]', '', '', 'public', 'example.com', NOW(), NOW(), '9999-12-31 00:00:00', 1),
('[email protected]', '[email protected]', '', '', 'public', 'example.com', NOW(), NOW(), '9999-12-31 00:00:00', 1),
('[email protected]', '[email protected]', '', '', 'public', 'example.com', NOW(), NOW(), '9999-12-31 00:00:00', 1),
('[email protected]', '[email protected]', '', '', 'public', 'example.com', NOW(), NOW(), '9999-12-31 00:00:00', 1),
('[email protected]', '[email protected]', '', '', 'public', 'example.com', NOW(), NOW(), '9999-12-31 00:00:00', 1),
('[email protected]', '[email protected]', '', '', 'public', 'example.com', NOW(), NOW(), '9999-12-31 00:00:00', 1),
('[email protected]', '[email protected]', '', '', 'public', 'example.com', NOW(), NOW(), '9999-12-31 00:00:00', 1),
('[email protected]', '[email protected]', '', '', 'public', 'example.com', NOW(), NOW(), '9999-12-31 00:00:00', 1),
('[email protected]', '[email protected]', '', '', 'public', 'example.com', NOW(), NOW(), '9999-12-31 00:00:00', 1);5. Configurazione di Postfix
Tornando alla riga di comando. Dobbiamo eseguire:
postconf -e 'relay_domains = lists.example.com'
postconf -e 'mailman_destination_recipient_limit = 1'
/etc/init.d/postfix reload6. Disattivare il Greylisting
Ora probabilmente vorrai disattivare il Greylisting. Il Greylisting restituisce semplicemente tutte le email che riceve da un nuovo mittente. Se il mittente prova a inviare di nuovo dopo un po’, probabilmente non è un bot di spam. È molto efficace nel fermare lo spam, ma spesso significa ritardi tra qualcuno che ti invia un’email e tu che la ricevi. Nel caso di Mailman, se il messaggio a Mailman è ritardato di un’ora, rende il sistema poco reattivo - specialmente per i nuovi iscritti. Rende anche il testing un problema. Non è necessario disattivarlo - la prossima parte è facoltativa.
Modifica /etc/postfix-policyd.conf:
[...]
GREYLISTING=0
[...]Ora riavvia il servizio di policy di Postfix:
/etc/init.d/postfix-policyd restart7. Configurazione di Mailman
Stiamo per dire a Mailman di inviare email da @example.com invece di @lists.example.com. Tuttavia, tutti i link che invia devono provenire dal dominio lists.example.com. Questo perché stiamo per impostare un dominio virtuale solo per Mailman.
pico /etc/mailman/mm_cfg.py[...]
DEFAULT_URL_PATTERN = 'http://%s/'
[...]
DEFAULT_EMAIL_HOST = 'example.com'
[...]
DEFAULT_URL_HOST = 'lists.example.com'8. Configurazione di Apache
Siamo quasi alla fine. Dobbiamo solo configurare il server Apache per servire il sito web di Mailman ogni volta che andiamo su lists.example.com. Non dimenticare di impostare questo dominio in /etc/hosts o nel tuo nameserver.
pico /etc/apache2/sites-available/mailmanScriptAlias /cgi-bin/mailman/ /usr/lib/cgi-bin/mailman/
Alias /pipermail/ /var/lib/mailman/archives/public/
Alias /images/mailman/ /usr/share/images/mailman/
AllowOverride None
Options ExecCGI
AddHandler cgi-script .cgi
Order allow,deny
Allow from all
Satisfy Any
Options FollowSymlinks
AllowOverride None
Order allow,deny
Allow from all
AllowOverride None
Order allow,deny
Allow from all
ServerName lists.example.com
DocumentRoot /var/www/lists
ErrorLog /var/log/apache2/lists-error.log
CustomLog /var/log/apache2/lists-access.log combined
Options FollowSymLinks
AllowOverride None
Alias /pipermail/ /var/lib/mailman/archives/public/
Alias /images/mailman/ /usr/share/images/mailman/
ScriptAlias /admin /usr/lib/cgi-bin/mailman/admin
ScriptAlias /admindb /usr/lib/cgi-bin/mailman/admindb
ScriptAlias /confirm /usr/lib/cgi-bin/mailman/confirm
ScriptAlias /create /usr/lib/cgi-bin/mailman/create
ScriptAlias /edithtml /usr/lib/cgi-bin/mailman/edithtml
ScriptAlias /listinfo /usr/lib/cgi-bin/mailman/listinfo
ScriptAlias /options /usr/lib/cgi-bin/mailman/options
ScriptAlias /private /usr/lib/cgi-bin/mailman/private
ScriptAlias /rmlist /usr/lib/cgi-bin/mailman/rmlist
ScriptAlias /roster /usr/lib/cgi-bin/mailman/roster
ScriptAlias /subscribe /usr/lib/cgi-bin/mailman/subscribe
ScriptAlias /mailman/ /usr/lib/cgi-bin/mailman/
ScriptAlias / /usr/lib/cgi-bin/mailman/listinfo
Ora dobbiamo solo abilitare questo host virtuale.
a2ensite mailman
mkdir /var/www/lists
apache2ctl restart9. Creazione della tua prima lista
La prima lista di Mailman è sempre “mailman”. Per creare questa lista, esegui:
newlist mailmanCompila l’indirizzo email e la password dell’amministratore. Ti verrà chiesto di premere Invio per notificare l’amministratore. Quando lo fai, non riceverai immediatamente un’email. Abbiamo un altro passo da fare:
/etc/init.d/mailman startUna volta fatto, l’amministratore della lista dovrebbe ricevere un’email con un link all’interfaccia di amministrazione della nuova lista.
Se funziona, vorrai anche testare le iscrizioni (basta inviare un’email vuota a [email protected]). Se ricevi una conferma di iscrizione e riesci a cliccare sul link, allora molto probabilmente tutto funziona al 100%. Se no, panico! Voglio dire, dai un’occhiata a /var/log/mail.log per avere un’idea di cosa stia andando storto.
Suggerimento: per tenere d’occhio il log delle email, usa:
tail -f /var/log/mail.logSe hai bisogno di provare a ricreare la lista di Mailman, prima esegui:
rmlist mailman10. Creazione di ulteriori liste
Per creare una lista chiamata “listname”, prima aggiungi gli alias della nuova lista alla tabella degli alias nel database MySql vmail:
INSERT INTO `alias` (`address`, `goto`, `name`, `moderators`, `accesspolicy`, `domain`, `created`, `modified`, `expired`, `active`) VALUES
('[email protected]', '[email protected]', '', '', 'public', 'example.com', NOW(), NOW(), '9999-12-31 00:00:00', 1),
('[email protected]', '[email protected]', '', '', 'public', 'example.com', NOW(), NOW(), '9999-12-31 00:00:00', 1),
('[email protected]', '[email protected]', '', '', 'public', 'example.com', NOW(), NOW(), '9999-12-31 00:00:00', 1),
('[email protected]', '[email protected]', '', '', 'public', 'example.com', NOW(), NOW(), '9999-12-31 00:00:00', 1),
('[email protected]', '[email protected]', '', '', 'public', 'example.com', NOW(), NOW(), '9999-12-31 00:00:00', 1),
('[email protected]', '[email protected]', '', '', 'public', 'example.com', NOW(), NOW(), '9999-12-31 00:00:00', 1),
('[email protected]', '[email protected]', '', '', 'public', 'example.com', NOW(), NOW(), '9999-12-31 00:00:00', 1),
('[email protected]', '[email protected]', '', '', 'public', 'example.com', NOW(), NOW(), '9999-12-31 00:00:00', 1),
('[email protected]', '[email protected]', '', '', 'public', 'example.com', NOW(), NOW(), '9999-12-31 00:00:00', 1),
('[email protected]', '[email protected]', '', '', 'public', 'example.com', NOW(), NOW(), '9999-12-31 00:00:00', 1);Una volta fatto, esegui questo comando per creare una nuova lista:
newlist listnameDivertiti con il tuo nuovo server Mailman! Spero che tu possa creare delle fantastiche comunità email.
Ricevi i nuovi post nella tua casella di posta.
Nessuno spam. Disiscriviti in qualsiasi momento.