LINUXSOFT.cz Přeskoč levou lištu
Uživatel: Heslo:  
   CZUKPL

> DBMail 2.0 - Dokončení

Údržba systému a integrace do MTA.

5.7.2005 07:00 | Radim Kolář | Články autora | přečteno 6417×

Udržba systému

Systém DBMail není příliš náročný na údržbu, vyžaduje však pravidelné odmazávání zpráv z databáze pomocí programu dbmail-util. Zprávy smazané uživateli totiž nejsou odstraněny z databáze, ale je jim nastaven DELETE status. Při následující údržbě databáze jsou zprávy s PURGE statusem smazány a stávající DELETE status změněn na PURGE.

Toto zvláštní odmazávání zpráv je použito proto, aby bylo možné vrátit zpět omylem smazané zprávy nepozornými uživateli, což zejména produkční sféra velmi ocení. V současné době není k dispozici žádná uživatelská nadstavba pro undelete a tak tuto akci musí provést administrátor ručně. Naštěstí se nejedná o příliš častou operaci. Pro optimální fungování doporučuji spouštět každý pracovní den dbmail-util -cdpy.

Program dbmail-util podporuje i kontrolu a případnou opravu referenční integrity databáze. Vzhledem k tomu, že DBMail 2.0 nepodporuje transakce, je nutné spouštět kontrolu s opravou databáze pouze pokud nikdo jiný se systémem nepracuje, jinak budou smazány právě zpracovávané příchozí zprávy.

Kontrola integrity není u databáze PostgreSQL nutná vzhledem k použití foreign klíčů. U MySQL se rozhozená integrita databáze v praxi vyskytuje jen velmi zřídka a proto ji není nutné často kontrolovat. Osobně považuji mírnou inkonzistenci MySQL databáze za menší zlo ve srovnání s likvidací právě zpracovávaných zpráv.

Integrace do MTA

V následujících příkladech budeme používat LMTP transport, který je podporován DBMailem od verze 2.0. Je rychlejší a snadněji se konfiguruje. Pro správnou činnost je nutné mít LMTP uvedené v /etc/services například takto

lmtp 24/tcp #any private mail system

1. Postfix

Instalace je podrobněji popsána v souboru INSTALL.postfix, potřebujeme Postfix přeložený s podporou námi používané databáze. Instalace je velmi jednoduchá, takže jen stručně:

master.cf: 

dbmail-lmtp     unix    -       -       n       -       -       lmtp

main.cf:

mailbox_transport = dbmail-lmtp:127.0.0.1:24
local_recipient_maps = mysql:/etc/postfix/sql-recipients.cf

sql-recipients.cf:

user = dbmail
password = gjw4ijv6mdWF
hosts = 127.0.0.1
dbname = dbmail
table = dbmail_aliases
select_field = alias
where_field = alias

2. Exim

Konfigurace eximu je o trochu složitější, jelikož se jedná o mnohem flexibilnější MTA. I v tomto případě budeme potřebovat přeložený Exim s podporou námi používané SQL databáze.

Konfigurační soubor Eximu configure má několik sekcí. V první, globální sekci, nastavíme spojení do databáze.

hide pgsql_servers = /dbmail/dbmail/gjw4ijv6mdWF

V sekci routerů (následují po řádce begin routers) přidáme router posílající maily přes LMTP do dbmailu. Jelikož u routerů záleží na pořadí v kterém jsou definovány, je nutné dbmail router zařadit až za routery směrující maily ven přes SMTP a za router obhospodařující systémové aliasy.

dbmail:
  transport = transport_dbmail
   
  condition = ${if or {\
{eq{${lookup{$local_part@$domain}\
    cdb{/usr/local/etc/exim/dbmail-users.cdb}{yes}}}{yes}}\
{eq{${lookup pgsql{select * from dbmail_aliases where 
    alias='${local_part}@${domain}'}{yes}}}{yes}}\
               }\
              {yes}{no}}
  driver = accept

Aby se tento router nemusel pokaždé při kontrole uživatele připojovat do databáze, používá cache soubor /usr/local/etc/exim/dbmail-users.cdb. Tento cache soubor se nemusí udržovat vždy aktuální. Pokud v něm není uživatel nalezen, provede se kontrola oproti současnému stavu databáze.

Tento cache soubor vytvářím během provádění newaliases. Exim nemá newaliases narozdíl od sendmailu vestavěné, ale nabízí možnost spuštění předem zadaného programu. Tomuto programu nejsou předávány žádné argumenty a jeho jméno se nastavuje v globální sekci konfiguračního souboru.

bi_command = /usr/local/etc/exim/rebuild

rebuild je shell skript, který mně vytváří .cdb verze aliasů, routovacích tabulek a rewrite pravidel. Nás bude v současné době zajímat jen exportování uživatelů z dbmailu.

#! /bin/sh
#export dbmail aliases
psql -A -t -U dbmail -f /usr/local/etc/exim/dbmail.sql \ 
    -o /usr/local/etc/exim/dbmail-users
cdb -mc /usr/local/etc/exim/dbmail-users.cdb < /usr/local/etc/exim/dbmail-users

Program psql je součástí PostgreSQL databáze, program cdb je součásti tinycdb. Soubor dbmail.sql obsahuje vypsání uživatelů dbmailu, například takto: select alias from dbmail_aliases;

V sekci transportů (následují po řádce begin transports) přidáme dbmail transport. U transportů již na pořadí nezáleží.

transport_dbmail:
   driver = smtp
   protocol = lmtp
   hosts = 127.0.0.1
   port  = 24
   allow_localhost
   envelope_to_add
   return_path_add

Administrativní rozhraní

Pro DBMail existuje program DBMail Administrator umožňující snadnou správu systému přes web. Nevyžaduje ani PHP, stačí mu Perl. Doporučuji tento program vaší pozornosti.

Vývoj DBMailu

Narozdíl od ostatních projektů, kde je vývoj primárně soustředěn v developer mailing listu a bug tracker systém plní jen doplňkovou úlohu, u DBMailu je tomu právě naopak. Nestyďte se proto používat DBMail bug tracker a vkládejte tam vaše bugreporty, feature wishes a patche. Značně tak zvýšíte možnost jejich úspěšného vyřízení. Autor totiž zcela ignoruje zasílané emaily i patche. DBMail má i Wiki stránky, kde najdete podrobněji popsaný plán budoucího vývoje.

DBMail se vyplatí aktualizovat a to zejména v případě, že používáte jeho IMAP server ve kterém bývají odstraňovány drobné nekompatibility s některými IMAP klienty. Naopak POP3 a LMTP servery jsou vzhledem ke své jednoduchosti bezproblémové. Pro informaci o nových verzích je nejlepší použít jeho freshmeat stránku.

Závěr

Vyčerpali jsme vše podstatné, takže se tímto dílem rozloučíme s DBMailem 2.0. Nechť Vám dobře slouží!

Verze pro tisk

pridej.cz

 

DISKUZE

Nejsou žádné diskuzní příspěvky u dané položky.



Příspívat do diskuze mohou pouze registrovaní uživatelé.
> Vyhledávání software
> Vyhledávání článků

16.7.2018 1:05 /František Kučera

Červencový pražský sraz spolku OpenAlt se koná již tento čtvrtek – 19. 7. 2018 od 18:00 v Kavárně Ideál (Sázavská 30, Praha), kde máme rezervovaný salonek. Tentokrát bude přednáška na téma: automatizační nástroj Ansible, kterou si připravil Martin Vicián.


Přidat komentář

18.6.2018 0:43 /František Kučera
Červnový pražský sraz spolku OpenAlt se koná již tento čtvrtek – 21. 6. 2018 od 18:00 v Kavárně Ideál (Sázavská 30, Praha), kde máme rezervovaný salonek. Tentokrát na téma: F-Droid, aneb svobodný software do vašeho mobilu. Kromě toho budou k vidění i vývojové desky HiFive1 se svobodným/otevřeným čipem RISC-V.
Přidat komentář

23.5.2018 20:55 /Ondřej Čečák
Od pátku 25.5. proběhne na Fakultě informačních technologií ČVUT v Praze openSUSE Conference. Můžete se těšit na spostu zajímavých přednášek, workshopů a také na Release Party nového openSUSE leap 15.0. V na stejném místě proběhne v sobotu 26.5. i seminář o bezpečnosti CryptoFest.
Přidat komentář

20.5.2018 17:45 /Redakce Linuxsoft.cz
Ve čtvrtek 31. května 2018 připravuje webový magazín BusinessIT ve spolupráci s Best Online Média s.r.o. pátý ročník odborné konference Firemní informační systémy 2018. Akce proběhne v kongresovém centru Vavruška (palác Charitas), Karlovo náměstí 5, Praha 2 (u metra Karlovo náměstí) od 9:00 hod. dopoledne do cca 15 hod. odpoledne. Konference je zaměřena na efektivní využití firemních informačních systémů a na to, jak plně využít jejich potenciál. Podrobnější informace na webových stránkách konfrence.
Přidat komentář

14.5.2018 7:28 /František Kučera
Květnový pražský sraz spolku OpenAlt se koná již tento čtvrtek – 17. 5. 2018 od 18:00 v Kavárně Ideál (Sázavská 30, Praha), kde máme rezervovaný salonek. Tentokrát na téma: Audio – zvuk v GNU/Linuxu.
Přidat komentář

7.5.2018 16:20 /František Kučera
Na stránkách spolku OpenAlt vyšla fotoreportáž Pražské srazy 2017 dokumentující srazy za uplynulý rok. Květnový pražský sraz na téma audio se bude konat 17. 5. 2018 (místo a čas ještě upřesníme).
Přidat komentář

17.4.2018 0:46 /František Kučera
Dubnový pražský sraz spolku OpenAlt se koná již tento čtvrtek – 19. 4. 2018 od 18:00 v Kavárně Ideál (Sázavská 30, Praha), kde máme rezervovaný salonek. Tématem tohoto srazu bude OpenStreetMap (OSM) aneb svobodné mapy.
Přidat komentář

16.3.2018 22:01 /František Kučera
Kulatý OpenAlt sraz v Praze oslavíme klasicky: u limonády a piva! Přijďte si posedět, dát si dobré jídlo a vybrat z mnoha piv do restaurace Kulový blesk, který najdete v centru Prahy nedaleko metra I. P. Pavlova na adrese Sokolská 13, Praha 2. Sraz se koná ve čtvrtek 22. března a začínáme v 18:00. Heslo: OpenAlt. Vezměte s sebou svoje hračky! Uvítáme, když si s sebou na sraz vezmete svoje oblíbené hračky. Jestli máte nějaký drobný projekt postavený na Arduinu, nějakou zajímavou elektronickou součástku, či třeba i pěkný úlovek z crowdfundingové akce, neváhejte. Oslníte ostatní a o zábavu bude postaráno.
Přidat komentář

   Více ...   Přidat zprávičku

> Poslední diskuze

20.2.2018 18:48 / Ivan Majer
portal

20.2.2018 15:57 / Jan Havel
Jak využíváte služby cloudu v podnikání?

16.1.2018 1:08 / Ivan Pittner
verejna ip od o2 ubuntu

15.1.2018 17:26 / Mira Harvalik
Re: Jak udělat HTML/Javascript swiping gallery do mobilu?

30.12.2017 20:16 / Michal Knoll
odmocnina

Více ...

ISSN 1801-3805 | Provozovatel: Pavel Kysilka, IČ: 72868490 (2003-2018) | mail at linuxsoft dot cz | Design: www.megadesign.cz | Textová verze