Questa breve guida si prefigge lo scopo di installare un mailserver per l'invio di posta all'interno di un organizzazione con una serie di utenti che possono accedere sia tramite un qualsiasi client di posta (Outlook, Outlook Express, Thunderbird, Evince, ...) che tramite una webmail ospitata sul webserver locale.
Il server gestisce i divverenti utenti tramite l'utilizzo di virtual, ovvero sul sistema non saranno presenti gli account per i vari utenti di posta, ma questi saranno presenti all'interno di un database (nel nostro caso MySQL), che può essere facilemnte gestito anche da remoto (tramite una delle tante interfacce disponibili).
Vediamo ora cosa ci serve installare per poter far funzionare il tutto:
iniziamo ad istallare i pacchetti necessari per postfix:
sudo apt-get install postfix postfix-mysql
per mysql
sudo apt-get install mysql-client mysql-server
e infine per courier
sudo apt-get install courier-base courier-imap courier-pop courier-authib-mysql
a questo punto iniziamo a configurare il database. Iniziamo modificando la password di root con una password sufficientemente complessa (solitamente in fase di instalazione si usa qualche cosa di banale, e ciò non è un bene):
mysqladmin -u root -p password 'new-password'
a questo punto iniziamo a creare il nuovo database (per comoditá chiamiamolo maildb):
mysql -u root -p create maildb
Popoliamo il nostro database inserendo le tabele necessarie. La cosa più veloce per fare ciò è copiare il testo che segue all'interno di un file e salvarlo (per esermpio con il nome make_maildb.txt) dopo di che eseguire il comando:
mysql -u root -p maildb < make_maildb.txt
Codice da inserire nel file:
--
-- Table structure for table `aliases`
--
CREATE TABLE `aliases` (
`pkid` smallint(3) NOT NULL auto_increment,
`mail` varchar(120) NOT NULL default '',
`destination` varchar(120) NOT NULL default '',
`enabled` tinyint(1) NOT NULL default '1',
PRIMARY KEY (`pkid`),
UNIQUE KEY `mail` (`mail`)
)
--
-- Table structure for table `domains`
--
CREATE TABLE `domains` (
`pkid` smallint(6) NOT NULL auto_increment,
`domain` varchar(120) NOT NULL default '',
`transport` varchar(120) NOT NULL default 'virtual:',
`enabled` tinyint(1) NOT NULL default '1',
PRIMARY KEY (`pkid`)
)
--
-- Table structure for table `users`
--
CREATE TABLE `users` (
`id` varchar(128) NOT NULL default '',
`name` varchar(128) NOT NULL default '',
`uid` smallint(5) unsigned NOT NULL default '5000',
`gid` smallint(5) unsigned NOT NULL default '5000',
`home` varchar(255) NOT NULL default '/var/spool/mail/virtual',
`maildir` varchar(255) NOT NULL default 'blah/',
`enabled` tinyint(3) unsigned NOT NULL default '1',
`change_password` tinyint(3) unsigned NOT NULL default '1',
`clear` varchar(128) NOT NULL default 'ChangeMe',
`crypt` varchar(128) NOT NULL default 'sdtrusfX0Jj66',
`quota` varchar(255) NOT NULL default '',
`procmailrc` varchar(128) NOT NULL default '',
`spamassassinrc` varchar(128) NOT NULL default '',
PRIMARY KEY (`id`),
UNIQUE KEY `id` (`id`)
)
Ora creaimo un nuovo utente e associamo ad esso i privilegi necessari per interagire su questo database. Digitiamo:
mysql -u root -p maildb
e alla interfaccia di comando che compare digitiamo:
GRANT ALL PRIVILEGES ON maildb.* TO mail@localhost IDENTIFIED BY 'apassword';
FLUSH PRIVILEGES;
Dove, ovviamente, dobbiamo andare ad inserire la password per il nostro utente.
Ora siamo pronti per iniziare a popolare il nostro database. Per inserire un nuovo dominio si utilizza
INSERT INTO `domains` VALUES (1,'mavimo.org','virtual:',1);
Mentre per inserire un nuovo utente utilizzeremo:
INSERT INTO `users` VALUES ('root@mavimo.org','root',5000,5000,'/var/spool/mail/virtual','root/',1,1,'apassword',password('apassword'),'','','');
INSERT INTO `users` VALUES ('marco@mavimo.org','marco',5000,5000,'/var/spool/mail/virtual','marco/',1,1,'bpassword',password('bpassword'),'','','');
INSERT INTO `users` VALUES ('prova@mavimo.org','prova',5000,5000,'/var/spool/mail/virtual','prova/',1,1,'cpassword',password('cpassword'),'','','');
Infine possiamo andare ad inserire degli alias tramite i comandi:
INSERT INTO `aliases` VALUES (1,'postmaster@mavimo.org','root@mavimo.org',1);
Usciamo dall'interfaccia testuale con il comando
EXIT;
Andiamo ora a realizzare il gruppo utenti virtual che sará quello utilizzato per la gestione dei vari account di posta:
sudo addgroup --gid 5000 virtual
sudo adduser --gid 5000 --uid 5000 virtual
creiamo la cartella di spool per le mail:
sudo mkdir /var/spool/mail/virtual
e assegniamola all'utente e gruppo virtual:
sudo chown -R virtual:virtual /var/spool/mail/virtual
sudo chmod 771 /var/spool/mail/virtual
e a questo punto passiamo alla configurazione di postfix.
Iniziamo a modificare i file /etc/postfix/main.cf ed inseriamo quanto segue:
myorigin = $myhostname
mydestination =
mynetworks = 127.0.0.0/8 192.168.0.0/16
recipient_delimiter = +
inet_interfaces = all
smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu)
append_dot_mydomain = no
biff = no
alias_maps = hash:/etc/postfix/aliases
alias_database = hash:/etc/postfix/aliases
virtual_mailbox_base = /var/spool/mail/virtual
virtual_mailbox_maps = mysql:/etc/postfix/mysql_mailbox.cf
virtual_uid_maps = mysql:/etc/postfix/mysql_uid.cf
virtual_gid_maps = mysql:/etc/postfix/mysql_gid.cf
virtual_minimum_uid = 110
virtual_alias_maps = mysql:/etc/postfix/mysql_alias.cf
virtual_mailbox_domains = mysql:/etc/postfix/mysql_domains.cf
dove andremo ad impostare al posto di 110 (assegnato al valore di virtual_minimum_uid) il valore dell'uid di postfix ottenibile tramite il comando:
sudo cat /etc/passwd | grep postfix | awk 'BEGIN { FS=":" } {print $3 }'
salviamo il file e iniziamo a creare i file necessari per l'accesso al database. Per ognuno di essi è indicato il nome e il contenuto del testo; li trovate anche allegato al seguente articolo, sarà sufficiente decomprimerli e copiarli all'interno della directory /etc/postfix (NB: dovete andare a modificare la password di accesso al database in ognuno di essi!):
mysql_alias.cf
user=mail
password=apassword
dbname=maildb
table=aliases
select_field=destination
where_field=mail
hosts=127.0.0.1
additional_conditions = and enabled = 1
mysql_domains.cf
user=mail
password=apassword
dbname=maildb
table=domains
select_field=domain
where_field=domain
hosts=127.0.0.1
additional_conditions = and enabled = 1
mysql_gid.cf
user=mail
password=apassword
dbname=maildb
table=users
select_field=gid
where_field=id
hosts=127.0.0.1
mysql_mailbox.cf
user=mail
password=apassword
dbname=maildb
table=users
select_field=maildir
where_field=id
hosts=127.0.0.1
additional_conditions = and enabled = 1
mysql_uid.cf
user=mail
password=apassword
dbname=maildb
table=users
select_field=uid
where_field=id
hosts=127.0.0.1
Apriamo ora il file /etc/postfix/master.cf e andiamo a modificare le linee
smtp inet n - - - - smtpd
virtual unix - n - - - virtual
In modo che risultino:
smtp inet n - n - - smtpd
virtual unix - n n - - virtual
a questo punto riavviamo postfix:
sudo /etc/init.d/postfix restart
e se tutto va bene (controllate i file /var/log/mail.* ) il server dovrebbe essersi avviato e pronto per funzionare.
Possiamo testare il corretto funzionamento del server SMTP collegandoci tramite telnet:
telnet localhost smtp
e nella console che otteniamo:
EHLO mavimo.org
MAIL FROM:
RCPT TO:
data
messaggio di prova
.
Se tutto va bene il nostro server prenderà in consegna il messaggio e lo invierà alla cartella di posta locale corretta.
Passiamo ora alla configurazione di curier per la gestione degli utenti virtuali e la connessione di un quasiasi client.
Come prima operazione andiamo a modificare i seguenti file
/etc/courier/authmodulelist
authmysql
authdaemon
/etc/courier/authdaemonrc
authmodulelist="authmysql"
daemons=5
version="authdaemond.mysql"
authdaemonvar=/var/run/courier/authdaemon
/etc/courier/authmysqlrc
MYSQL_SERVER 127.0.0.1
MYSQL_USERNAME mail
MYSQL_PASSWORD apassword
MYSQL_PORT 0
MYSQL_OPT 0
MYSQL_DATABASE maildb
MYSQL_USER_TABLE users
MYSQL_CLEAR_PWFIELD clear
MYSQL_UID_FIELD uid
MYSQL_GID_FIELD gid
MYSQL_LOGIN_FIELD id
MYSQL_HOME_FIELD home
MYSQL_NAME_FIELD name
MYSQL_MAILDIR_FIELD concat(home,'/',maildir)
MYSQL_WHERE_CLAUSE enabled=1
NB: Fate attenzione a non lasciare nessuno spazio nel file (ne al'linizio, ne alla fine ne in mezzo) e separate i dati solo tramite delle tabulazioni.
Ovviamente modificate la password di accesso al database. A questo punto andate a riavviare i vari server:
sudo /etc/init.d/courier-imap restart
sudo /etc/init.d/courier-pop restart
sudo /etc/init.d/courier-authdaemon restart
Testiamo l'autenticazione tramite protocollo POP3 tramite telnet:
telnet localhost pop3
e nella console che appare:
USER marco@mavimo.org
PASS bpassword
LIST
QUIT
allo stesso modo possimo procedere per controllare che funzioni l'autenticazione tramite IMAP4
telnet localhost imap
e nella console che appare:
AB LOGIN "marco@mavimo.org" "bpassword"
BC SELECT "Inbox"
ZZZZ LOGOUT
In ogni caso, a seguito di ogni nostro comando dovremmo ricevere la risposta del nostro server.
Possiamo ora procedere alla configurazione dei vari client di posta per la ricezione di messaggi e l'invio dei messaggi al'interno della rete locale.
Non è stato reso disponibile (per ora) l'invio di mail all'esterno della nostra rete, operazione possibile impostando il relay_host per il nostro postfix, infati non avendo a disposizione indirizzi IP fissi non é consigliato utilizzarlo come server smtp per l'invio direto di mail.
Proseguiamo la configurazione configurando la webmail ad utilizzo interno. Iniziamo a decomprimere il file compresso che è possibile trovare nella sezione download del sito di Roundcube e a copiare i file nella cartella /var/www/roundcube
wget http://switch.dl.sourceforge.net/sourceforge/roundcubemail/roundcubemail-0.1beta2.1.tar.gz
taz xzf roundcubemail-0.1beta2.tar.gz
sudo cp -r roundcubemail-0.1beta2 /var/www/roundcube
Realiziamo ora il database per la gestione della webamil
mysql -u root -p create roundcubemail
E inseriamo:
GRANT ALL PRIVILEGES ON roundcubemail.* TO roundcube@localhost IDENTIFIED BY 'password';
EXIT;
A questo punto creiamo la struttura del database:
mysql -u roundcube -p roundcubemail < /var/www/roundcubeSQL/mysql5.initial.sql
E ora impostiamo i parametri di configurazione:
sudo mv /var/www/roundcube/config/db.inc.php.dist /var/www/roundcube/config/db.inc.php
sudo mv /var/www/roundcube/config/main.inc.php.dist /var/www/roundcube/config/main.inc.php
E impostimo i parametri corretti per il file /var/www/roundcube/config/db.inc.php, in particolare per la riga:
$rcmail_config['db_dsnw'] = 'mysql://roundcube:rpassword@localhost/roundcubemail';
Salviamo e andiamo a impostare i parametri corretti del file /var/www/roundcube/config/main.inc.php e in particolare:
$rcmail_config['default_host'] = 'localhost';
Dopo aver salvato il il file con le modifiche effettuate possiamo visualizzare la webmail collegandoci all'indirizzo http://nome_web_server/roundcube per esempio http://localhost/roundcube e autenticandosi inserendo i propri parametri è possibile accedere alla webmail (NB: per l'autenticazione inserire il nome utente completo di domino, per esempio marco@mavimo.org).
Sicuramente questa guida non è completa e omette alcuni configurazioni indispensabili dal punto di vista della sicurezza (per esempio autenticazione SASL per l'invio di messaggi o i meccanismi TSL), ma è una semplice guida introduttiva.
| Attachment | Size |
|---|---|
| file di configurazione di Postfix | 2.66 KB |
| file di realizzazione del Database | 526 bytes |
Comments
Posta esterna
come posso fare per far uscire la posta all'esterno???
Hai un ip statico o dinamico?
nel primo caso dovrebbe andare, nel secondo devi impostare un server SMTP esterno come relay.
I problemi continuano
Ciao e grazie che mi hai risposto ma purtroppo i problemi continuano.
Il problema precedente l'ho risolto, era ancora attivo, anche se lo avevo disinstallato Exim4.
Controllando il log ho visto che ci sono dei problemi con il server sql, provabile che non avevo creato giusto le tabelle dal momento che le avevo create a mano date che con il tuo codice non vuol funzionare, ho provato anche a togliere le stringhe con i simboli -- mail risultato non cambia, per la cronaca uso MySQL - 5.0.24a-Debian_9ubuntu2.2 e phpMyAdmin - 2.8.2-Debian-0.2.
Se mi contatti sulla mia email casomai ti do user e password se vuoi fare delle prove.
Grazie infinite
Hai provato a creare le
Hai provato a creare le tabelle a mano e ti da ancora problemi hai controllato di aver usato gli stessi nomi per i campi che vengono poi richiamati? Controlla di aver scritto correttamente tutti i file di configurazione, eventualmente contattami tramite il modulo di contatto che c'è in alto a destra.
Problemi Durante il riavvio di postfix
Ciao,
sono arrivato al punto di riavviare postfix la prima volta, praticamente dopo aver creato i files e modificati, con il comando da te descritto:
sudo /etc/init.d/postfix restarte controllando nel file /var/log/mail.info mi da il seguente errore:
Feb 8 22:37:08 radio2 postfix/master[11687]: fatal: bind 0.0.0.0 port 25: Address already in usenon riesco a capire dove va a pescare questo 0.0.0.0Ho controllato tutti i files e sono a posto, ho provato anche a cambiare l'indirizzo dal momento che uso ip statico sulle macchine, ad esempio dove ho montato il programma ha l'indirizzo 10.0.0.8, ma il risultato è sempre quello.
Grazie
Ciao Mauro...
...a quanto pare non riesce a riavviarsi perché c'è qualche cosa di già attivo sul tuo server che occupa la porta 25 (SMTP) e quindi non si riesce a riavviare. Prova a dare:
sudo /etc/init.d/postfix stope poi con telnet vedi cosa ottieni collegandoti al tuo server sulla porta 25:telnet localhost 25se ti risponde qualche cosa vuol dire che qualche servizio occupa la porta 25, scopri quale è e disabilitalo, altrimenti se non ottieni risposta prova a riattivare postfix con:sudo /etc/init.d/postfix startmail server
ok, ho riinstallato tutto, ora funzionicchia...
riesco a mandare mail ma non le riceve..
continuo a lavorarci sopra
grazie
ciao
mail server
questo è una parte del mio log:
Dec 14 15:50:15 outdoor postfix/smtpd[19534]: fatal: open database /etc/postfix/aliases.db: No such file or directoryche vuol dire ?Dec 14 15:50:16 outdoor postfix/master[1584]: warning: process /usr/lib/postfix/smtpd pid 19534 exit status 1
Dec 14 15:50:16 outdoor postfix/master[1584]: warning: /usr/lib/postfix/smtpd: bad command startup -- throttling
Dec 14 15:51:16 outdoor postfix/smtpd[19549]: fatal: open database /etc/postfix/aliases.db: No such file or directory
ho seguito le istruzioni passo per passo ma non funziona.
ciao
Ciao ubaldo
Il problema è che non trova il database aliases, quindi o non hai creato la tabella (o il file di connessione) o hai messo dei parametri di connessione errati, controlla che tutti i dati siano corretti, eventualmente prova a rifare la procedura di setup e vedi se ti da qualche errore DURANTE l'installazione.
PRoblema posta in arrivo..
PRoblema posta in arrivo.. quando clicco sull'icona per ricezioe ,messaggi mi dce che la password non è esatta dandomi l'errore 0x800CCC90 e 0x8000CCC92.. cosa devo fare?
integrazione file maildb.txt con nuovo mysql 5.1
scusate se rompo, magari sarò inopportuno, ma ho notato che con mysql ultima release ubuntu, il file maildb.txt che si propone, non funziona per un errore di bad syntax. si sono 3 pezzi da eliminare, che coincidono con gli intervalli delle table.
--questo pezzo, ripetuto 3 volte nel file, impedisce il caricamento. se si toglie tutti e 3 , il file viene accettato.-- Table structure for table `domains`
--
ciao
Ciao sabax,
Grazie della segnalazione, provvedo a correggerlo subito :D
PS: bello il tuo sito... sopratutto l'obbiettivo che si prefigge ;)
problemi pop3
scusa, mi chiamo carlo è mi stò divertendo con questa configurazione però non riesco ad autenticarmi ne con il pop3 ne con l'imap (porta 110 e 143 di localhost); questo è il log:
May 13 19:02:31 localhost authdaemond.mysql: failed to connect to mysql server (server=localhost, userid=mail.)mi potresti dare una mano.....May 13 19:02:36 localhost courierpop3login: LOGIN FAILED, ip=[::ffff:127.0.0.1]
grazie mille carlo
MySQL?
L'errore è che non riesce a collegarsi a MySQL, hai fatto tutto come indicato (tolto postfix dal chroot)? Controlla che la password sia corretta, altrimenti non riesce ad autenticarsi e quindi non può controllare se l'utente esiste e quale è la sua password.
Ho installato amavis e ma
Ho installato amavis e ma non riesco a cambiare l'utente da amavis a virtual (lo stesso definito per postfix). Qualche suggerimento?
roundcubemail
i seguenti comandi:
mysqladmin -u root -p create roundcubemaileseguono la stessa operazione di creazione del database il comando mysql per creare database in mysql 5 non funziona.mysql -u root -p create roundcubemail
la seguente riga per popolare il db va modificata da:
mysql -u roundcube -p create roundcubemail < /var/www/SQL/mysql5.initial.sql a:con la versione nuova di roundcubemail la riga di inserimento non è /var/www/SQL/mysql5.xxxxxmysql -u roundcube -p roundcubemail < /var/www/SQL/mysql5.initial.sql
ma /var/www/roundcube/SQL/mysql5.xxxxx
Buon lavoro
Lucatek
che dire..
..GRAZIE!
Provvedo a correggere, ho notato proprio ora la nuova versione di roundcube (0.1beta2.2) appena ho tempo provo a installare quella nuova, sperando che non crei troppi problemi alla mia interfaccia modificata :D
Ciao
Mavimo
errori sql
Andrebbero corretti alcuni errori nel file che crea le tabelle in mysql in quanto mancano tutti i ";" alla fine dei comandi ecco perchè non vengono Create correttamente le tabelle
La riga di comando per creare il db mi ha dato problemi ho risolto con
mysql -p> CREATE DATABASE maildb;
Buon lavoro a tutti
Grazie della segnalazione
provvederò a correggere al più presto.
Ciao
Mavimo
/var/run/courier/authdaemon
non funziona l'autenticazione pop3 e imap; restituisce il seguente errore: ERR LOGIN FAILED
Ho verificato il file: /etc/courier/authmysqlrc, ma pare corretto. Ho cercato anche sui gruppi fino a trovare alcuni tuoi vecchi post nei quali il problema si è risolto usando il nome dell'utente riferito al dominio, ma niente... e poi il file /var/run/courier/authdaemon nella mia ubuntu 6.10 non esiste, ma è presente una directory con lo stesso nome...
ciao, e grazie per le tue guide!
Innanzitutto non so come hai
Innanzitutto non so come hai configurato il sistema, se hai seguito la guida il file non si trova in /var/run/courier/authdaemon ma in /etc/courier/authdaemonrc (errore mio, corretto, grazie per la segnalazione :D ). A parte questo controlla che nel file /etc/courier/authmysqlrc non ci siano spazi all'inizio, in mezzo o alla fine di ogni riga; puoi usare solo il TAB per separare i vari parametri, l'impossibilità di autenticazione è un errore tipico.
Ovviamente ricordati di riavviare i vari demoni prima di ritentare l'autenticazione. Se anche così non dovesse andare prova a postare il contenuto rilevante dei file di log (/var/log/mail.*).
Ciao
Mavimo
tutto buio...
Ciao Mavimo,
dopo aver installato postfix e mysql mi si è "fermata" l'interfaccia grafica (???) ho riavviato e non mi attiva più l'interfaccia grafica: tutto nero e riga di comando... se digito startx mi dice che il server è già attivo... come faccio a ripristinare la visualizzazione normale?
Non ha nulla a che fare con l'installazione del mailserver :P
Non so cosa tu abbia fatto, ma non c'entra nulla con postfix e mysql :D
Prova a killare tutti i processi gdm e X e poi dai il comando
sudo /etc/init.d/gdm startdovrebbe ripartirti l'interfaccia grafica, poi controlla cosa hai fatto e vedi se devi ripristinare qualceh file che per errore hai cancellato o modificato. Altro non so dirti senza ulteriori info.Ciao
Mavimo
funziona
Ho risolto... ri-installando tutto su un altro hd... era un problema di bad sector... fa te!
Comunque adesso funziona tutto tranne roundcube! che non è che sia fondamentale per me, ma giusto per curiosità!
L'errore che mi da quando tento di aprire http://localhost/roundcube in pratica è una segnalazione che non sa con cosa aprire i .phtml ... e me li scarica sul desktop come se fossero allegati... io ho provato ad installare i pacchetti PCRE ma continua a darmi lo stesso errore!
hai idea di cosa potrebbe essere?
ciao!
Heheh... di sicuro non era colpa del serve di posta :D
Cmq visto che si è risolto tutto vediamo di sitemare anche le ultime cose :D
Roundcube non mi risulti abbia file con estensione phtml, solo HTML per i template e PHP per le pagine che fanno lo sporco lavoro di elaborazione (e i relativi INC). Mi puoi dire cosa hai fatto esattamente e che errore riporta? Hai controlato che il DB venga popolato in seguito ai vari accessi? Ma almeno ti fa autenticare?
Ciao
Mavimo
è solo...
Funziona tutto: autenticazione (pop3, imap) popolamento del db ... tanto è vero che ho installato thunderbird su 6 pc che si mandano mail!
in pratica funziona tutto benissimo, fino a roundcube: installato, configurato ma... se dal pc ubuntu provo a digitare in firefox http://localhost/roundcube mi da un messaggio che non conosce i file PHTML e chiede con che programma aprirli o se deve effettuare il download (del file PHTML) se invece vado su un pc win e digito http://(ip ubuntu)/roundcube mi dice in pratica la stessa cosa... se in entrambi i casi invece mi fermo o a http://localhost oppure a http://(ip ubuntu) mi visualizza la schermata classica di APACHE.
Il pc ubuntu su cui ho installato-configurato il webmail era pulito-pulito, cioè installato da zero Ubuntu 6.10, aggiornato con i repository di Trevino's poi installato webmail seguendo la tua guida. (oltre ad aver messo PHP5, Mysql5administrator) BOH....
Ma sei sicuro?
Strano, ho aperto l'ultima versione del pacchetto di roundcube che trovi sul sito (la versione 0.1 in beta) e non contiene nessun file phtml, non è che c'è qualche script che ti modifica le estensioni del file? Dovresti avere solo php (e i relativi inc) e html! Prova a controllare che PHP sia funzionante nella cartella in questione (prova con la funzione phpinfo() inserita in un file) e facci sapere.
Ciao
Mavimo
Ho provato a copiare e
Ho provato a copiare e incollare le tabelle ma mi dà il seguente errore ERROR 1064 (42000) at line 4: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'CREATE TABLE `domains` (
`pkid` smallint(6) NOT NULL auto_increment,
`domain` va' at line 9
Grazie
Copiare, cosa?
Allora non ho capito cosa hai copiato dove, visto come prima cosa dovresti copiare il pezzo indicato in unn file di testo (per esempio make_maildb, ricordati di decomprimere il file :D) e poi, come descritto, effettuare il dump all'interno del database che hai creato:
mysql -u root -p maildb < make_maildb.txtÈ questo il problema che hai? Non ti fa il dump riportanto errore?
Ciao
Mavimo
grazie per l'articolo
grazie per l'articolo intanto. Pensavo di apportare però qualche piccola modifica alla configurazione descritta. Se riesco mi piacerebbe sostituire mysql con sqlite e apache httpd con un qualcosa di più piccolo da dedicare unicamente al server di posta tipo boa... pensavo... ciao :)
Prego :D
Non dovresti aver problemi impostando correttamente l'indirizzo, username e password del dabtabase. Dico dovresti perchè non l'ho mai fatto, ma non ci vedo problemi inquanto usano entrambi il linguaggio SQL per le query. Per il webserver puoi provare con lighttpd a cui devi aggiungere PHP (altrimenti non ti serve a molto per consultare la mail). Se ho capito cosa vuoi fare ti conviene partire da una distribuzione installabile su chiavetta USB veramente minimale, e poi aggiungere solo i pochi pacchetti che ti interessano. Potresti partire, per esempio, da Linux on a stick, che contiene già il httpd e MySQL, manca il supporto per PHP e Postfix, ma in 30mb non si può esigere di più, in ogni caso puoi installarli in maniera abbastanza semplice.
Ciao
Mavimo
Come da email...
...attendo con ansia la configurazione di antivirus (che si aggiorni, perché ho avuto qualche problema con amavis e clamav) ed antispam!
Intanto grazie per questa guida.
Promessa...
Mi sa che ti tocca aspettare ancora un pò purtroppo adesso sono impegnato in altre cose, in ogni caso prometto che prima o poi uscir´ la (tanto richiesta :D ) prosecuzione di questa guida!
Ciao
File canonical
Scusami per caso della gestione dei file canonical e virtual relativa gestione sai dirmi qualcosa....di concreto
Come sempre grazie in anticipo.
Cosa vuoi sapere di
Cosa vuoi sapere di concreto? :P
Nel senso c'è qualche cosa che non hai capito, che non funziona, che vuoi implementare ma non sai come, andando a casa purtroppo temo di non aiutarti molto :(
In ogni caso per i virtual mi pare che seguendo le istruzioni non dovresti avere problema ad impostare gli utenti/domini virtuali. Per l'utilizzo dei canonical con il database MySQL dovresti impostare nel file main.cf la riga
sender_canonical_maps = mysql:/etc/postfix/mysql_canonical.cfSuccessivamente creare il file /etc/postfix/mysql-canonical.cf e al suo interno aggiungere:
hosts = localhostuser=mail
password=apassword
dbname=maildb
# Nome della tabella
table=canonical
select_field=alias
where_field=username
# Ottieni solo la prima occorrenza dal DB
additional_conditions = and status = '1' limit 1
Ovviamente poi devi crearti nel database la tabella in questione (canonical) contenenete due campi di tipo testuale (username e alias) e popolarli.
Se erano queste le informazioni che volevi spero di averti aiutato, altrimenti facci sapere!
Canonical e virtual
Si parlavo proprio della gestione di canonical e virtual nel senso che tu hai descritto ... le operazioni da te indicate le avevo già eseguite:
Il problema è che se io spedisco una email da utente.interno a utente.libero.it la emai arriva a destinazione ma il nome del sender ossia utente.interno non cambia ed io mi ritrovo come email a cui eventualemente rispondere utente.interno.
Non so se sono stato abbastanza chiaro nella esposizione .... se così non fosse fammelo sapere.
Grazie infinite
Roberto
Non funziona, ma cosa dicono
Non funziona, ma cosa dicono i log? Eventualemnte se anche questi non dicono nulla prova a vedere se, sul DB MySQL vengono eseguite le query sulla tabella dei canonical (per vedere le query effettuate devi abilitare il logging, cerca in rete). Se le query non vengono eseguite probabilemnte hai sbagliato a inserire il nome tabella/campo nel file mysql_canonical.cf
Ciao
sender_canonical
Scusami ma dopo questo post mi sa che esiste il nulla....
Allora ho provato sia a gestire il canonical con tabella di database sia come file (eseguito anche postamap) e la sistuazione è la medesima ossia non esegue il rewriting address;
Se guardo nelle proprietà della email in outlook noto che nel return_path la sostituzione dell'indirizzo avviene ma nel sender (From:) rimane sempre l'indirizzo locale.
Scusa ancora e grazie.
Roberto
Mi stanno venendo due
Mi stanno venendo due dubbi.
Se vuoi rinominare SOLAMENTE il nome dell'utente non è che hai modificato le impostazioni di default per il canonical_classes? Di default sostituisce tutto, ma se imposti solo alcuni parametri le cose cambiano; prova a inserire, nel main.cf la seguente riga:
canonical_classes = envelope_sender, envelope_recipient, header_sender, header_recipientdovrebbe riportare alla configurazione di default (attenzione, gli header vengono modificati solo se è permesso a postfix!)Il secondio dubbio è che tu voglia modificare solamente il dominio della mail (il libero del commento iniziale mi ha posto su questa strada :D ), per esempio da utente@dominio.locale a utente@dominio.esterno nel qual caso potresti utilizzare il masquerading (ciò non elimina il problema iniziale dell'utente).
Una lettura che potrebbe risultati illuminante la trovi qui.
Mi stanno venendo due ...e lo capisco!
scusa è l'ultimo post
Non ho alterato assolutamente le impostazioni di default per il canonical_classes, il problema ho visto si puo' risolvere con smtp_generic_maps, a questo punto vai a capire perché il sender_canonical converte solo il return_path e non il sender (From)
Sai ho insistito perché normalmente mi piace capire perché succedono queste cose.... ma mi rendo conto di avere abusato della tua disponibilità ...comunque grazie
saluti
Roberto
Sinceramente non so perché
Sinceramente non so perché ottini il comportamento che hai indicato, se scopri come mai avvertimi :D
Oggi non ho tempo, ma in settimana provo e vedo se è un problema solo tuo (o del tuo SMTP) o dipende da altro (magari configurazioni di altri software).
Per quanto riguarda l'abuso di tempo, non preoccuparti, se non avevo tempo non rispondevo :D
Ciao
PS: Scusa se modifico leggermente i tuoi commenti, lo faccio solo per maggiore leggibilità :P
Scusami ancora ... nuovo
Scusami ancora ... nuovo problema!!!
Per il primo utente creato tutto ok !!! ma dal secondo utente la email non funziona più il pop da un errore del tipo -ERR chdir /var/spool/mail/virtual/nomeposta
in pratica non si crea la directory al primo accesso??? Qualche idea...un immenso grazie.
Siccome le directory vengono
Siccome le directory vengono create da postfix e non da courier,mi viene da chiederti se la prima volta che crei un account gli invii una mail di conferma (tipo quello che avvine di solito con Google/Yaahoo/Email...) o meno.
Se non fai così prova a inviare una mail in automatico in modo che di sicuro vena creata la cartella da postfix (essendoci il messaggio da recapitare...), in questo modo courier trova ala cartella con il messaggio da scaricare.
Fatto questo dovreti essere a posto, enventualmente puoi crearti uno script che quando crea l'utente gli invia anche la mail (personalizzata per il tuto server) in modo da risolvere questo inconveniente.
Ciao
Mavimo
PS: non sono sicuro che sia il tuo problema, ma tentare non nuoce :D
Bingo ... effettivamente ora
Bingo ... effettivamente ora tutto funziona...
Mi chiedevo se forse era il caso di integrare tutto questo nel tuo tutorial, visto che di inesperti come me ne &ègrave; pieno il mondo.
Ancora grazie infinite per la tua disponibilità
Ciao
Roberto
Appena ho un attimo di tempo
Appena ho un attimo di tempo mi riprometto di farlo e aggiungere anche gli script che avevo realizzato per semplificare l'inserimento/blocco/rimozione di utenti/domini nel database tramite interfaccia web.
Ciao
Mavimo
errore Pop3
Ho eseguito passo a passo le istruzioni ... ma non funziona !!! continua a dare errore nel Login al courier pop3 ?????
Cosa dicono i log
Cosa dicono i log /var/log/mail.*?
come cerchi di autenticarti? tramite
telnet pop3o tramite un programma di posta elettronica (Thunderbird, Outlook, Kmail, ...)
Ho provato con telnet
Ho provato con telnet accetta l'utente ma poi non accetta la password e da ERR LOGIN FAILED
Ho controllato tutto e tutto funziona tranne proprio l'autenticazione su courierpop3login
Non so piu' cosa tentare....
Grazie per la tua collaborazione
Scusa, ma ho avuto problemi
Scusa, ma ho avuto problemi a postare nei giorni precedenti, quindi sono un pò in ritardo. 9 volte su 10 il problema che tu descrivi è dato dal fatto che nel file /etc/courier/authmysqlrc sono presenti degli spazi, controlla bene, sono ammessi solo i caratteri alfanumerici e i TAB, quindi controlla di non avere spazi ne all'inizio, ne alla fine di ogni riga (o righe vuote) e nemmeno tra i vari parametri. Se non è questo posta il contenuto dei LOG.
Grazie funziona tutto alla
Grazie funziona tutto alla grande.....il problema era proprio quello che tu hai evidenziato.
PS devi modificare questo comando nelle istruzioni
da: mysqladmin -u root -p maildb
a: mysql -u root -p maildb
Ancora grazie infinite
Grazie della segnalazione,
Grazie della segnalazione, correggo :D
Post new comment