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-mysqlper mysql
sudo apt-get install mysql-client mysql-servere infine per courier
sudo apt-get install courier-base courier-imap courier-pop courier-authib-mysqla 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 maildbPopoliamo 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.txtCodice 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 maildbe 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 virtualcreiamo la cartella di spool per le mail:
sudo mkdir /var/spool/mail/virtuale assegniamola all'utente e gruppo virtual:
sudo chown -R virtual:virtual /var/spool/mail/virtual
sudo chmod 771 /var/spool/mail/virtuale 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.cfdove 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 = 1mysql_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 = 1mysql_gid.cf
user=mail
password=apassword
dbname=maildb
table=users
select_field=gid
where_field=id
hosts=127.0.0.1mysql_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 = 1mysql_uid.cf
user=mail
password=apassword
dbname=maildb
table=users
select_field=uid
where_field=id
hosts=127.0.0.1Apriamo ora il file /etc/postfix/master.cf e andiamo a modificare le linee
smtp inet n - - - - smtpd
virtual unix - n - - - virtualIn modo che risultino:
smtp inet n - n - - smtpd
virtual unix - n n - - virtuala questo punto riavviamo postfix:
sudo /etc/init.d/postfix restarte 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 smtpe nella console che otteniamo:
EHLO mavimo.org
MAIL FROM: <marco@mavimo.org>
RCPT TO: <prova@mavimo.org>
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=1NB: 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 restartTestiamo l'autenticazione tramite protocollo POP3 tramite telnet:
telnet localhost pop3e nella console che appare:
USER marco@mavimo.org
PASS bpassword
LIST
QUITallo stesso modo possimo procedere per controllare che funzioni l'autenticazione tramite IMAP4
telnet localhost imape nella console che appare:
AB LOGIN "marco@mavimo.org" "bpassword"
BC SELECT "Inbox"
ZZZZ LOGOUTIn 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...
taz xzf roundcubemail-0.1beta2.tar.gz
sudo cp -r roundcubemail-0.1beta2 /var/www/roundcubeRealiziamo ora il database per la gestione della webamil
mysql -u root -p create roundcubemailE 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.sqlE 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.phpE 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.
| Allegato | Dimensione |
|---|---|
| file di configurazione di Postfix | 2.66 KB |
| file di realizzazione del Database | 533 byte |
Commenti
file di testo per creazione tabelle
ma il file di testo non si trova più? come faccio a creare le tabelle?
ad esempio aliases?
scusate ma non sono uno prtico di queste cose mi date una mano perfavore?
grazie
anch'io avevo il problema di
anch'io avevo il problema di aliases.db mancante:
Dec 10 14:40:58 marco-desktop postfix/smtpd[6920]: fatal: open database /etc/postfix/aliases.db: No such file or directoryDec 10 14:40:59 marco-desktop postfix/master[5723]: warning: process /usr/lib/postfix/smtpd pid 6920 exit status 1
Dec 10 14:40:59 marco-desktop postfix/master[5723]: warning: /usr/lib/postfix/smtpd: bad command startup -- throttling
io ho risolto creando a mano il file /etc/postfix/aliases con il seguente contenuto
MAILER-DAEMON: postmasterpostmaster: root
per definire i miei alias.
E poi ho dato un
sudo newaliasesper creare il file /etc/postfix/aliases.db .
Non ho ancora approfondito il motivo per cui deve far riferimento al file testuale etc/postfix/aliases e non alla tabella aliases del database!
questa
mysql -u root -p
questa
mysql -u root -p create maildb
diventa
mysqladmin -u root -p create maildb
scusate lo zelo ma uno alle prime armi (come me) poi si scoraggia :-)
typo
sudo apt-get install courier-base courier-imap courier-pop courier-authlib-mysql
un piccolo typo, authlib e non authib suppongo. Ora continuo la guida :-)
Effettivamente..
...a breve l'aggiornamento alla Ubuntu 9.10 con tutte le modifiche necessarie... e la correzione degli errori segnalati :P
Grazie ancora!
Problemino maildir
Ciao, ho seguito questo tutorial con molto interesse ed ho installato su debian lenny come da manuale:
purtroppo ho questo problema quando accedo in telnet:
USER renzo@lab.local+OK Password required.
PASS renzo2
-ERR chdir /var/spool/mail/virtual/renzo/ failed
Connection closed by foreign host.
Ho letto trai vari post che per la creazione della maildir c'è da inviare una mail, cosa che ho fatto con mutt da root a renzo, mutt sembra spedirla ma se faccio un ls /var/spool/mail/virtual/ on risulta nessuna cartella :((
A cosa può essere dovuto secondo voi?
A quanto pare il problema è
A quanto pare il problema è proprio che non viene inviata al mail o per lo meno non arriva al corretto destinatario, probabilmente c'è qualche configurazione errata nel recapito dagli utenti esterni al dominio (root non fa parte del dominio).
ti consiglio di creare due utenti e di mandare una mail dal primo al secondo e viceversa, ion questo modo dovresti poter risolvere il problema di recapito e quindi di creazione e lettura della cartella di posta.
allegati
non riesco ad allegare file a messaggi di posta da sempre l'errore : errore durante il caricamento file
Indipendentemente dal tipo di
Indipendentemente dal tipo di file (formato) e dalla dimensione? Di default il tuo sistema deovrebbe accettarli, a meno che tu non abbia inserito configurazioni particolari che ne restringano le possibilità.
Aliases.db non esiste
ciao, ho seguito la tua guida alla lettera e apparentemente non ho sbagliato nulla.
Quando dici di connettersi a localhost con telnet però non ci riesco.
Ho controllato i logo, l'errore fatal è sempre lo stesso, ecco il primo log:
Feb 17 00:20:23 bird-ubuntu postfix/postalias[12337]: fatal: dict_mkmap_func: unsupported dictionary type: mysql does not allow map creation.Feb 17 00:49:16 bird-ubuntu postfix/smtpd[6781]: fatal: open database /etc/postfix/aliases.db: No such file or directory
Feb 17 00:50:17 bird-ubuntu postfix/smtpd[7712]: fatal: open database /etc/postfix/aliases.db: No such file or directory
Feb 17 00:51:18 bird-ubuntu postfix/smtpd[8711]: fatal: open database /etc/postfix/aliases.db: No such file or directory
Feb 17 00:52:19 bird-ubuntu postfix/smtpd[9631]: fatal: open database /etc/postfix/aliases.db: No such file or directory
Feb 17 00:53:20 bird-ubuntu postfix/smtpd[10596]: fatal: open database /etc/postfix/aliases.db: No such file or directory
Feb 17 00:54:21 bird-ubuntu postfix/smtpd[11435]: fatal: open database /etc/postfix/aliases.db: No such file or directory
Feb 17 00:55:22 bird-ubuntu postfix/smtpd[12332]: fatal: open database /etc/postfix/aliases.db: No such file or directory
Feb 17 00:56:23 bird-ubuntu postfix/smtpd[13249]: fatal: open database /etc/postfix/aliases.db: No such file or directory
Feb 17 00:57:24 bird-ubuntu postfix/smtpd[14185]: fatal: open database /etc/postfix/aliases.db: No such file or directory
Feb 17 00:58:25 bird-ubuntu postfix/smtpd[15092]: fatal: open database /etc/postfix/aliases.db: No such file or directory
Feb 17 00:59:26 bird-ubuntu postfix/smtpd[16002]: fatal: open database /etc/postfix/aliases.db: No such file or directory
Feb 17 10:16:47 bird-ubuntu postfix/smtpd[19917]: fatal: open database /etc/postfix/aliases.db: No such file or directory
Feb 17 10:17:49 bird-ubuntu postfix/smtpd[20887]: fatal: open database /etc/postfix/aliases.db: No such file or directory
Feb 17 10:18:50 bird-ubuntu postfix/smtpd[21861]: fatal: open database /etc/postfix/aliases.db: No such file or directory
Feb 17 10:19:51 bird-ubuntu postfix/smtpd[22813]: fatal: open database /etc/postfix/aliases.db: No such file or directory
Feb 17 10:20:52 bird-ubuntu postfix/smtpd[23759]: fatal: open database /etc/postfix/aliases.db: Invalid argument
Feb 17 10:21:53 bird-ubuntu postfix/smtpd[24692]: fatal: open database /etc/postfix/aliases.db: Invalid argument
Feb 17 10:22:54 bird-ubuntu postfix/smtpd[25617]: fatal: open database /etc/postfix/aliases.db: Invalid argument
Feb 17 10:23:55 bird-ubuntu postfix/smtpd[26443]: fatal: open database /etc/postfix/aliases.db: Invalid argument
Feb 17 10:24:56 bird-ubuntu postfix/smtpd[27379]: fatal: open database /etc/postfix/aliases.db: Invalid argument
Feb 17 10:25:57 bird-ubuntu postfix/smtpd[28297]: fatal: open database /etc/postfix/aliases.db: Invalid argument
Feb 17 10:26:58 bird-ubuntu postfix/smtpd[29218]: fatal: open database /etc/postfix/aliases.db: Invalid argument
Feb 17 10:27:59 bird-ubuntu postfix/smtpd[30131]: fatal: open database /etc/postfix/aliases.db: Invalid argument
Feb 17 10:29:00 bird-ubuntu postfix/smtpd[31106]: fatal: open database /etc/postfix/aliases.db: Invalid argument
Feb 17 10:30:01 bird-ubuntu postfix/smtpd[32105]: fatal: open database /etc/postfix/aliases.db: No such file or directory
Feb 17 10:31:02 bird-ubuntu postfix/smtpd[491]: fatal: open database /etc/postfix/aliases.db: No such file or directory
Come faccio a risolvere? Anche un altro utente più su aveva avuto lo stesso problema.
Controlla di aver installato
Controlla di aver installato tutti i pacchetti, compresi quelli per mysql, e poi rigenera i file di configurazione, togli gli eventuali TAB presenti all'interno che possono fare casini (vedi commenti più sotto).
Errore di login pop3
ciao, ho seguito la guida su due server ubuntu 8.10, sul primo è andato tutto benissimo, ma sul secondo mi succede una cosa strana, in pratica non riesco ad accedere al server tramite pop 3 e sul log vedo una cosa del genere:
Feb 3 21:08:07 Server authdaemond: failed to connect to mysql server (server=localhost, userid=mail.): Access denied for user 'mail.'@'localhost' (using password: YES)Feb 3 21:08:07 Server pop3d: authentication error: Input/output error
in pratica, come vedi aggiunge un punto al nome con cui cerca di loggarsi al server, ma non ne capisco l'origine, ho controllato il file authmysqlrc ma non contiene spazi ma solo tabulazioni.... cosa è successo?
prova a ricreare il file
prova a ricreare il file, e controlla di non avere messo il punto nel nome utente, o per sbaglio in qualche riga vuota. Fatto questo se continua a non andare controlla la configurazione di mysql (ma non dovrebbe stare li il problema) e le versioni dei diversi pacchetti per vedere se cambia qualche cosa tra i due server.
Trovato!!!!!!!!!!!!!!!!!!!!!
Dopo mille tentativi mi sono reso conto della differenza tra le due configurazione, per una ho usato il mio portatile con ubuntu per scrivere i files e poi spedirli sul server e tutto è andato liscio, per l'altra ho fatto la stessa cosa ma con una macchina windows, in pratica il s/o m$ da sempre usa CR+LF per il riorno a capo mentre i sistemi Unix usano il semplice LF, il carattere in più (ascii 13) viene mal digerito da postfix che non trova niente di meglio da fare nella vita che sostituirlo con un punto.
La cosa subdola è che visualizzando il file con cat sul server o provando ad editrlo con nano il carattere in più non si nota perche è un semplice CR che duplica quello che unix mette in automatico dopo il LF......
Grazie per la segnalazione,
temevo fosse qualche carattere strano, già fa casini con tabulazioni e spazi, forse sarebbe il caso di consigliare un miglior parsing del file di config agli sviluppatori, perdere tempo per cose del genere mi pare veramente superfluo...
hai ragione...
non è la prima volta che edito files da windows e nessun programma si è mai sognato di rompere le scatole, effettivamente dal punto di vista del parsing postfix è pessimo (poi perchè sostituire il carattere con un punto è un mistero!).
Ciao!
spedizione posta all'esterno
Ciao, innanzitutto ti faccio i complimenti per l'ottimo lavoro, funziona tutto alla perfezione tranne una cosa: non riesco a spedire i messaggi all'esterno della rete!
ho creato il server di posta interna con utenti nome1@mio.dir, nome2@mio.dir nome3@mio.dir. riescono a spedirsi le mail tra di loro, a scaricare la posta da mail esterne (nome1@domext.com --> nome1@mio.dir) ma non riesco in nessun modo a mandare mail all'esterno (nome1@mio.dir ---> esempio@domext2.com)
il main.cf è identico al tuo, utilizzo mozilla e setto come server in uscita l'ip del mio servermail porta 25 e nome1@mio.dir come nomeutente.
mozilla mi da come errore ... il server di posta ha risposto 5.7.1 : Relay access denied ... nel file mail.log viene riportata la stessa dicitura .. 554 5.7.1 : Relay access denied ...
la risposta di errore è pressochè immediata quindi suppongo venga dal mio mailserver non da quello internet.
ho un ip fisso all'esterno e ho mail sotto server aruba, ho cercato invano anche tra i parametri di postfix ma non ci salto fuori!
Michele
Grazie per il complimento...
... per quanto riguarda il tuo problema pare che il tuo server non sappia a chi mandare la posta in uscita, o che il server di psta in uscita abbia bisogno di una autenticazione (solitamente nome utente e password), altrimenti non si lascia usare come relay. Dovresti fare alcune prove per vedere se il tutto funziona, in particolare dai un occhio alle politiche di utilizzo dei server SMTP di posta di Aruba, perché così ad occhio sono loro che ti bloccano (non ho aruba e non ho tempo di andare ad informarmi ora, ma vedi tu...)
passo avanti
ho fatto un passo avanti:
in main.cf ho inserito relay_domain = gmail.com tanto per provare!
e se io mando una mail all'esterno ad un'indirizzo gmail funziona, ma a tutti gli altri no! stesso errore di prima
ora, la mia domanda è: in relay_domain devo metterci dentro tutti i domini di questo mondo?
scusa se ti rompo ancora le
scusa se ti rompo ancora le scatole, non sono riuscito ancora riuscito a risolvere il problema di mandare la posta all'esterno! tu hai qualche suggerimento?
Ciao, nessuna rottura
Ciao, nessuna rottura, mi sembrava di averti già risposto, ma tant'è...
In pratica tu stai settando il tuo sistema per inviare la posta solo all'interno della tua rete (diciamo posta interna), e stai settando al tua rete a google.com, in questo modo il tuo server gestirà solo la posta per google.com perchè penserà di essere un server di google, questo ovviamente non è vero, pertanto devi configurarlo con il tuo dominio, in modo che i messaggi di posta interni non vengano girati verso l'esterno, e poi devi impostare un server a cui inviare tutti i messaggi di posta che non sono interni al tuo dominio, impostando il relayhosts.
Trovi tutte le informazioni partendo dall'indirizzo: http://www.postfix.org/postconf.5.html
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.
Statico, cmq penso di aver
Statico, cmq penso di aver risolto.
Adesso ho un altro prb, mi salva tutta la posta in entrata in maildir/nome@dominio.it, come faccio a farla salvare in Inbox, premetto che con maildirmake ho creato la maildir e le cartelle inbox ecc....
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 directoryDec 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
che vuol dire ?
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.
---- Table structure for table `domains`
--
questo pezzo, ripetuto 3 volte nel file, impedisce il caricamento. se si toglie tutti e 3 , il file viene accettato.
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.)May 13 19:02:36 localhost courierpop3login: LOGIN FAILED, ip=[::ffff:127.0.0.1]
mi potresti dare una mano.....
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 roundcubemailmysql -u root -p create roundcubemail
eseguono la stessa operazione di creazione del database il comando mysql per creare database in mysql 5 non funziona.
la seguente riga per popolare il db va modificata da:
mysql -u roundcube -p create roundcubemail < /var/www/SQL/mysql5.initial.sql a:mysql -u roundcube -p roundcubemail < /var/www/SQL/mysql5.initial.sql
con la versione nuova di roundcubemail la riga di inserimento non è /var/www/SQL/mysql5.xxxxx
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
Errore
Ciao Mavimo,
anche a me da questo errore nella compilazione del database ..... ho riportato con esattezza quello che è scritto nel file da te gentilmente messo a disposizione. Devo dirti che ho installato l'ultima versione di Ubuntu 9.04 magari puo influire nella complilazione. L'errore che mi da è :
root@mbox:/# mysql -u root -p maildb < make_maildb.txtEnter password:
ERROR 1064 (42000) at line 2: 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' at line 10
Nel file c'era un errore,
Nel file c'era un errore, mancavano i punto e virgola alla fine delle query che venivano eseguite, ora dovrebbe essere a posto. Grazie.
Anche a me da lo stesso errore!!
Non riesco proprio a fare il dump.
Cosa posso fare??
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
Invia nuovo commento