Strutture dati di posta
Jump to navigation
Jump to search
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