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 8836×
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
|
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ů
28.11.2018 23:56 /František Kučera Prosincový sraz spolku OpenAlt se koná ve středu 5.12.2018 od 16:00 na adrese Zikova 1903/4, Praha 6. Tentokrát navštívíme organizaci CESNET. Na programu jsou dvě přednášky: Distribuované úložiště Ceph (Michal Strnad) a Plně šifrovaný disk na moderním systému (Ondřej Caletka). Následně se přesuneme do některé z nedalekých restaurací, kde budeme pokračovat v diskusi.
Komentářů: 1
12.11.2018 21:28 /Redakce Linuxsoft.cz 22. listopadu 2018 se koná v Praze na Karlově náměstí již pátý ročník konference s tématem Datová centra pro business, která nabídne odpovědi na aktuální a často řešené otázky: Jaké jsou aktuální trendy v oblasti datových center a jak je optimálně využít pro vlastní prospěch? Jak si zajistit odpovídající služby datových center? Podle jakých kritérií vybírat dodavatele služeb? Jak volit vhodné součásti infrastruktury při budování či rozšiřování vlastního datového centra? Jak efektivně datové centrum spravovat? Jak co nejlépe eliminovat možná rizika? apod. Příznivci LinuxSoftu mohou při registraci uplatnit kód LIN350, který jim přinese zvýhodněné vstupné s 50% slevou.
Přidat komentář
6.11.2018 2:04 /František Kučera Říjnový pražský sraz spolku OpenAlt se koná v listopadu – již tento čtvrtek – 8. 11. 2018 od 18:00 v Radegastovně Perón (Stroupežnického 20, Praha 5). Tentokrát bez oficiální přednášky, ale zato s dobrým jídlem a pivem – volná diskuse na téma umění a technologie, IoT, CNC, svobodný software, hardware a další hračky.
Přidat komentář
4.10.2018 21:30 /Ondřej Čečák LinuxDays 2018 již tento víkend, registrace je otevřená.
Přidat komentář
18.9.2018 23:30 /František Kučera Zářijový pražský sraz spolku OpenAlt se koná již tento čtvrtek – 20. 9. 2018 od 18:00 v Radegastovně Perón (Stroupežnického 20, Praha 5). Tentokrát bez oficiální přednášky, ale zato s dobrým jídlem a pivem – volná diskuse na téma IoT, CNC, svobodný software, hardware a další hračky.
Přidat komentář
9.9.2018 14:15 /Redakce Linuxsoft.cz 20.9.2018 proběhne v pražském Kongresovém centru Vavruška konference Mobilní řešení pro business.
Návštěvníci si vyslechnou mimo jiné přednášky na témata: Nejdůležitější aktuální trendy v oblasti mobilních technologií, správa a zabezpečení mobilních zařízení ve firmách, jak mobilně přistupovat k informačnímu systému firmy, kdy se vyplatí používat odolná mobilní zařízení nebo jak zabezpečit mobilní komunikaci.
Přidat komentář
12.8.2018 16:58 /František Kučera Srpnový pražský sraz spolku OpenAlt se koná ve čtvrtek – 16. 8. 2018 od 19:00 v Kavárně Ideál (Sázavská 30, Praha), kde máme rezervovaný salonek. Tentokrát jsou tématem srazu databáze prezentaci svého projektu si pro nás připravil Standa Dzik. Dále bude prostor, abychom probrali nápady na využití IoT a sítě The Things Network, případně další témata.
Přidat komentář
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ář
Více ...
Přidat zprávičku
 Poslední diskuze
31.7.2023 14:13 /
Linda Graham iPhone Services
30.11.2022 9:32 /
Kyle McDermott Hosting download unavailable
13.12.2018 10:57 /
Jan Mareš Re: zavináč
2.12.2018 23:56 /
František Kučera Sraz
5.10.2018 17:12 /
Jakub Kuljovsky Re: Jaký kurz a software by jste doporučili pro začínajcího kodéra?
Více ...
|