Strutture dati di posta: Difference between revisions
m (1 revision: migrazione) |
No edit summary |
||
Line 1: | Line 1: | ||
messaggi: | |||
i messaggi vengono stoccati in formato maildir | i messaggi vengono stoccati in formato maildir | ||
Line 11: | Line 11: | ||
gli account sono divisi per dominio di secondo livello in tabelle col seguente formato | gli account sono divisi per dominio di secondo livello in tabelle col seguente formato | ||
<source lang="sql"> | |||
CREATE TABLE `ortiche_net` ( | CREATE TABLE `ortiche_net` ( | ||
`user` varchar(32) collate utf8_bin NOT NULL default , | `user` varchar(32) collate utf8_bin NOT NULL default , | ||
Line 22: | Line 23: | ||
`deleted` int(11) NOT NULL | `deleted` int(11) NOT NULL | ||
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin; | ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin; | ||
</source> | |||
'user' contiene la parte a sinistra della chiocciola | 'user' contiene la parte a sinistra della chiocciola |
Latest revision as of 21:51, 9 December 2014
messaggi:
i messaggi vengono stoccati in formato maildir
disposti nel filesystem con la struttura dominio.di.posta/naomeutente@dominio.di.posta/Maildir
autenticazione:
i dati di autenticazione degli utenti di posta sono su database mysql gli account sono divisi per dominio di secondo livello in tabelle col seguente formato
CREATE TABLE `ortiche_net` ( `user` varchar(32) collate utf8_bin NOT NULL default , `domain` varchar(32) collate utf8_bin NOT NULL default , `password` varchar(32) collate utf8_bin NOT NULL default , `goto` varchar(32) collate utf8_bin NOT NULL default , `active` char(1) collate utf8_bin NOT NULL default 'Y', `tipo` varchar(5) collate utf8_bin default 'mbox', `md5salt` varchar(64) collate utf8_bin default NULL, `modified` int(11) default NULL, `deleted` int(11) NOT NULL ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
'user' contiene la parte a sinistra della chiocciola 'domain' contiene la parte alla destra della chiocciola 'password' contiene la password hashata in formato md5 puro (senza salting) 'goto' e' la destinazione alla quale recapitare nel caso l'account sia un alias 'active' se a Y l'account e' attivo 'tipo' mbox nel caso di account di posta e alias nel caso di alias 'md5salt' password hashata in formato md5-salt 'modified' data di ultima modifica di un campo qualsiasi dei precedenti 'deleted' data di cancellazione della riga corrente
l'algoritmo di hashing e' doppio dato che non tutti i demoni lavorano bene con lo stesso algoritmo. per il campo active sarebbe interessante definire una semantica un po piu complessa. modified e deleted servono primariamente per la replicazione della tabella stessa.
la commutazione e attivazione dei vari servizi viene fatta su blocchi di account divisi per comune dominio di posta mediante la seguente tabella
CREATE TABLE `posta_domains` ( `domain` varchar(64) collate utf8_bin default NULL, `host` varchar(64) collate utf8_bin NOT NULL, `smtp` varchar(1) collate utf8_bin NOT NULL, `popimap` varchar(1) collate utf8_bin NOT NULL, `mx` varchar(1) collate utf8_bin default NULL, `relay` varchar(1) collate utf8_bin NOT NULL, `modified` int(11) NOT NULL, `deleted` int(11) NOT NULL ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
'domain' e' un dominio di posta (la parte alla destra della chiocciola)
'host' e' un server, individuato dal proprio hostname
'smtp' 'popimap' 'mx' e 'relay' indicano (con una Y o una N) se
account di posta con il dato domain devono essere accettati o meno rispettivamente:
come autenticazione SASL per l'invio di messaggi,
come autenticazione POP e IMAP per l'accesso alla casella di posta,
come indirizzi destinatario della posta entrante, da stoccare localmente
e come indirizzi destinatario della posta entrante da inoltrare successivamente ad un'altro server
sul server host
'modified' e 'deleted' come sopra