[svn/pld-doc]: rev 208 - pld-doc/book/pl_book__uslugi

ciesiel w svn.pld-dc.org ciesiel w svn.pld-dc.org
Sob, 10 Sty 2004, 21:40:45 CET


Author: ciesiel
Date: 2004-01-10 21:40:44 +0100 (Sat, 10 Jan 2004)
New Revision: 208

Added:
   pld-doc/book/pl_book__uslugi/pl_uslugi_poczta__exim.sec
Log:
- changed name
- changed some word


Added: pld-doc/book/pl_book__uslugi/pl_uslugi_poczta__exim.sec
===================================================================
--- pld-doc/book/pl_book__uslugi/pl_uslugi_poczta__exim.sec	2004-01-10 20:39:53 UTC (rev 207)
+++ pld-doc/book/pl_book__uslugi/pl_uslugi_poczta__exim.sec	2004-01-10 20:40:44 UTC (rev 208)
@@ -0,0 +1,471 @@
+<?xml version="1.0" encoding="iso-8859-2"?>
+<section>
+	<title>Exim - Program do transportu poczty elektronicznej (MTA) - autor. Baseciq</title>
+	<para>Usługa MTA (ang. message transfer agent) jest odpowiedzialna za
+		przesył m.in e-mail między serwerami. Najpopularnieszymi
+		przedstawicielami tego typu usług są: Sendmail, Postfix czy
+		opisany przez nas Exim. Oto zalety jakie przemawiają za
+		wybraniem Exima jako naszego MTA:
+	</para>
+	<itemizedlist>
+		<listitem><para>Bo sendmail jest dziwny :)</para></listitem>
+		<listitem><para>Bo qmail nie jest prawdziwym MTA</para></listitem>
+		<listitem><para>Bo z postfiksem mam traumatyczne doświadczenia</para></listitem>
+		<listitem><para>Autoryzacja w Eximie jest domyślna</para></listitem>
+		<listitem><para>Przystosowany jest do kombinacji alpejskich i
+		slalomów gigantów</para></listitem>
+		<listitem><para>W PLD jest ładnie przygotowana paczka :-)</para></listitem>
+		<listitem><para>Umie gadać z MySQL'em z Postgresem, a także
+				zwykłymi plikami tekstowymi</para></listitem>
+		<listitem><para>Tom Kistner napisał do Exim'a użyteczna łatkę,
+		rozbudowywującą Exim'a o obsługę programów antywirusowych,
+		daemona SpamAssasin (skanera antyspamowego) oraz wykrywania
+		błędów MIME - dzięki temu nie potrzebujemy wielkich i
+		zasobożernych programów w perlu</para></listitem>
+		<listitem><para>Za to Tomasz Kojm napisał bardzo dobry program
+		antywirusowy: Clam AntiVirus - darmowy, w
+		dodatku rewelacyjnie współpracujący z
+		Exiscanem</para></listitem>
+	</itemizedlist>
+	<para>Podsumowywując - Exim jest rewelacyjnym MTA. Jego możliwości
+	konfiguracji pozwoliły mi na zbudowanie dosyć rozbudowanego
+	serwera poczty obsługującego zarówno konta lokalne jak i konta
+	zapisane w bazie danych MySQL. Dodatkowe 'gwizdki' to np.
+	przeszukiwanie plików konfiguracyjnych serwera cvs w poszukiwaniu
+	adresów docelowych dla aliasów w domenie cvs.rulez.pl. O rzeczach
+	takich jak klasyfikowanie maili czy są spamem czy nie już nawet nie
+	wspomnę. W dodatku Exim jest całkiem bezpiecznym MTA (wersja 4.x wg.
+	securityfocus jak narazie dorobiła się jednego błędu - w końcu jakaś
+	cena musi być za te wodotryski). Zresztą konstrukcja omawianego MTA na
+	początku doprowadzała mnie do szału, gdyż Exim za cholerę nie może sobie
+	poradzić z smtp-auth via PAM z racji braku uruchamiania autoryzacji z własnego
+	uid/gid zamiast root'a ;-)</para>
+	<section>
+		<title>Exim: Instalacja</title>
+		<para>Instalacja pakietu jest prosta. Uruchamiamy program
+			<command>poldek</command> i wykonujemy:</para>
+		<screen>poldek> install exim
+Przetwarzanie zależności...
+exim-4.30-2 zostanie zastąpiony przez exim-4.30-2
+Zaznaczono 1 pakiet do instalacji:
+I exim-4.30-2
+
+Uruchamianie sudo /bin/rpm --upgrade -vh --root / --noorder...
+Przygotowywanie...
+########################################### [100%]
+1:exim
+19 entries written
+Run "/etc/rc.d/init.d/exim start" to start exim daemon.
+poldek></screen>
+	<para>Oczywiście zanim wykonamy zalecenie startu demona powinniśmy
+		dokonać kofiguracji, którą opisuje następny rozdział.</para>
+	</section>
+	<section>
+		<title>Exim: Konfiguracja</title>
+		<para>Wszelkich zmian w konfiguracji Exima dokonujemy w katalogu
+			<command>/etc/mail/</command>. Edytujemy plik
+			<command>exim.conf</command></para>
+		<para>
+			Domeny lokalne, to takie które Exim ma traktować jako
+			'swoje' domeny. Mail zadresowany @jakas.domena.lokalna
+			który dotrze do Exim'a zostanie dostarczony lokalnie.
+			Domeny takie definuje w dyrektywie <command>domainlist
+			local_domains</command>. Standardowo, przyjmowana jest poczta
+			wysyłana do domeny identycznej jak hostname serwera:
+		</para>
+		<screen>domainlist local_domains = @</screen>
+		<para>
+			Znak <command>@</command> oznacza właśnie 'moja
+			nazwa'. Aby dopisać kolejne domeny wystarczy dodać je
+			do tej listy rodzielając je dwukropkami:
+		</para>
+		<screen>domainlist local_domains = @ : domena.pl : baseciq.org : /etc/mail/local_domains</screen>
+		<para>
+			Poza domena.pl, baseciq.org, Exim będzie teraz także
+			akceptował domeny wypisane w pliku
+			<command>/etc/mail/local_domains</command>. Domeny tam należy wpisywać w
+			oddzielnych linijkach. Exim o tyle fajnie działa, że
+			po dopisaniu ścieżki do pliku, wystarczy go raz
+			zrestartować. Jakiekolwiek kombinacje w
+			<command>/etc/mail/local_domains</command> nie będą wymagały restartu.
+			Tak więc najwygodniej będzie dopisać do pliku
+			konfiguracyjnego:
+		</para>
+		<screen>domainlist local_domains = @ : /etc/mail/local_domains</screen>
+		<para>
+			I poprostu powpisywać wszystkie domeny do
+			<command>/etc/mail/local_domains</command>.
+		</para>
+		<para>
+			Domeny dla których mamy być zapasowym MX'em tworzy się
+			bardzo łatwo. Linijkę pod <command>domainlist
+			local_domains</command>	jest
+			<command>domainlist relay_to_domain</command>. Działa to w taki
+			sam sposób jak konfiguracja domen lokalnych, czyli,
+			piszemy:
+		</para>
+		<screen>domainlist relay_to_domains = /etc/mail/relay_to_domains</screen>
+		<para>
+			Od teraz, Exim będzie akceptował każdą pocztę
+			zaadresowaną do domen zawartych w pliku
+			<command>/etc/mail/relay_to_domains</command>. A co z nią zrobi? Jak
+			wiadomo, jeżeli domena ma kilka MX'ów, to Exim będzie
+			starał się ją dostarczyć do serwera o najniższym
+			priorytecie MX. Chyba że on ma najniższy, to
+			wygeneruje błąd.
+		</para>
+		<para>Relaying, czyli określenie kto może przez nasz serwer
+			wysyłać pocztę. I tutaj, listę adresów i hostów buduje
+			się w podobny sposób do local_domains i
+			relay_to_domains. Wystarczy stworzyć listę o nazwie
+			<command>relay_from_hosts</command>:
+		</para>
+		<screen>hostlist   relay_from_hosts = 127.0.0.1 : 192.168.0.0/16</screen>
+		<para>
+			Na chwile przystopujemy i wyjaśnimy jak zorganizowany
+			jest plik konfiguracyjny Exima. Wygląda to mniej
+			więcej tak:
+		</para>
+		<screen># głowna sekcja ...
+
+opcje i dyrektywy sekcji głównej
+
+begin sekcja1
+
+opcje i dyrketywy sekcji1
+
+begin sekcja3
+
+...</screen>
+		<para>
+		Tak więc plik ten jest zbudowany z sekcji, które rozpoczynają się
+		słowem <command>begin nazwa</command>, z wyjątkiem sekcji głównej, która jest
+		na samym początku pliku i nie posiada swojego begina. Sekcje
+		również nie mają żadnych słów kluczowych które by je zamykały
+		- poprostu początek (begin) nowej sekcji oznacza zakończenie
+		  poprzedniej. I tak, standardowo mamy następujące sekcje:
+		</para>
+		<itemizedlist>
+			<listitem><para>główna - odpowiedzialna za podstawowe
+					ustawienia Exim'a</para></listitem>
+			<listitem><para>acl - listy kontroli dostępu,
+					filtrowania, odrzucania i akceptowania
+			poczty</para></listitem>
+			<listitem><para>routers - hm, najprościej jest to
+					przetłumaczyć jako routery, czyli
+					reguły kierowania wiadomości do
+					odpowiednich transporterów</para></listitem>
+			<listitem><para>transports - tutaj tworzymy sposoby
+					doręczenia poczty</para></listitem>
+			<listitem><para>retry - ustawienia ponowień</para></listitem>
+			<listitem><para>rewrite - reguły do przepisywania
+					nagłówków</para></listitem>
+			<listitem><para>authenticators - reguły do autoryzacji</para></listitem>
+		</itemizedlist>
+		<para>Co to są te całe 'transportery' i 'routery'? Właściwie
+			to serce Exima. Jeżeli Exim dostaje jakiegoś maila to
+			najpierw puszcza go przez routery, które można porównać do
+			reguł ipchains/iptables - jeżeli mail załapie się na jakąś
+			regułę (router) to jest przekazywany do transportu określonego
+			przez ten router. Inaczej mówiąc router w Eximie kieruje maila do
+			odpowiedniego transportera. Transporter natomiast robi już z mailem co
+			należy - doręcza go lokalnie, albo przekierowywuje gdzieś indziej albo odsyła
+			do innego serwera. Wiem że w tym momencie może wydawać się to skomplikowane,
+			ale nie przejmujcie się, to tylko wiedza teoretyczna która na początku nie
+			będzie wam potrzebna. Musiałem natomiast wam wytłumaczyć że są sekcje i że
+			musicie nauczyć się tego że jak napiszę 'dopisać w sekcji głównej' to należy
+			coś dopisać na początku pliku.
+		</para>
+		<para>Czasami (czytaj: gdy mamy sieczę w
+			<command>/etc/hosts</command>) Exim
+			zgłasza się nie jako
+			<command>serwer.domena.pl</command> a jako sam
+			'serwer'. Jeżeli zmiana wpisów w
+			<command>/etc/hosts</command> nie
+			pomaga, albo gdy chcemy aby nasze MTA przedstawiało
+			się inaczej niż hostname maszyny na którym stoi
+			wystarczy ustawić (bądź dodać gdy jej nie ma) opcję
+			<command>primary_hostname</command> w głównej sekcji:</para>
+		<screen>primary_hostname = serwer.domena.pl</screen>
+		<para>
+			W czasach zabawy z sendmailem podawałem także sposób
+			na ograniczenie bannera który się pojawiał po telnecie
+			na port 25. W Eximie nie jest to skomplikowane i służy
+			do tego opcja <command>smtp_banner</command> w sekcji głównej:
+		</para>
+		<screen>smtp_banner = $primary_hostname ESMTP $tod_full</screen>
+		<para>
+			Spowoduje to wyświetlanie następującego tekstu jako
+			bannera:
+		</para>
+		<screen>220 serwer.domena.pl ESMTP Wed, 23 Jul 2003 15:18:04
+			+0200</screen>
+		<para>
+			Chyba nie muszę tłumaczyć że aby usunąć datę, należy
+			wywalić <command>$tod_full</command>?
+		</para>
+		<para>Teraz zajmiemy się aliasami. Plik z aliasami powinnien
+			znajdować się w <command>/etc/mail/aliases</command>.
+			Jest to czysty plik tekstowy, tak więc zmiany w nim
+			wprowadzone nie wymagają żadnego
+			<command>newaliases</command> czy
+			restartu demona. Jeżeli jednak nie macie pewności czy
+			tam powinien być plik z aliasami, w sekcji routers
+			odszukajcie ciągu <command>system_aliases:</command> - jest definicja
+			routera odpowiedzialnego za rozwiązywanie aliasów. Tam
+			też, w linijce data widać ścieżkę do pliku z aliasami:
+		</para>
+		<screen>system_aliases:
+  driver = redirect
+  allow_fail
+  allow_defer
+  data = ${lookup{$local_part}lsearch{/etc/mail/aliases}}
+  file_transport = address_file
+  pipe_transport = address_pipe</screen>
+  		<para>
+			Jeżeli z naszego SMTP korzystają użytkownicy mobilni
+			(dial-up'y) przyda nam się autoryzacja. Sprawa w Eximie jest dosyć zawiła. 
+			Otóż Exim zbyt wcześnie zrzuca uprawnienia root'a, tak że opisywany
+			na wielu stronach opis zrobienia autoryzacji via PAM
+			najczęściej nie działa. Z pomocą przyjdzie nam pakiet
+			cyrus-sasl, a dokładniej pwcheck daemon (w PLD
+			cyrus-sasl-saslauthd, W sekcji
+			<command>AUTHENTICATORS</command> wpisujemy
+			następujące linijki (lub kasujemy komentarze
+			<command>#</command> :
+		</para>
+		<screen>plain:
+  driver = plaintext
+  public_name = PLAIN
+  server_condition = ${if saslauthd{{$1}{$3}}{1}{0}}
+  # powyższy wpis zadziała przy saslauthd -a shadow, jeżeli
+  # uruchomicie saslauthd -a pam (np. PLD) wpiszcie wtedy:
+  # server_condition = ${if saslauthd{{$1}{$3}{smtp}}{1}{0}}
+  server_set_id = $2
+      
+login:
+  driver = plaintext
+  public_name = LOGIN
+  server_prompts = "Username:: : Password::"
+  server_condition = ${if saslauthd{{$1}{$2}}{1}{0}}
+  # powyższy wpis zadziała przy saslauthd -a shadow, jeżeli
+  # uruchomicie saslauthd -a pam (np. PLD) wpiszcie wtedy:
+  # server_condition = ${if saslauthd{{$1}{$2}{smtp}}{1}{0}}
+  server_set_id = $1</screen>
+  	<para>Ostatnią rzeczą przy saslauthd (odpalonym z -a pam) jaką trzeba
+		stworzyć (lub sprawdzić czy jest) to plik
+		<command>/etc/pam.d/smtp</command>:
+	</para>
+	<screen>#%PAM-1.0
+#
+# example PAM file for saslauthd - place it as /etc/pam.d/
+# (e.g. /etc/pam.d/smtp if you want to use saslauthd for SMTP
+# AUTH)
+#
+auth	required	/lib/security/pam_listfile.so
+item=user sense=deny file=/etc/security/blacklist
+onerr=succeed
+auth	required	/lib/security/pam_unix.so
+auth	required	/lib/security/pam_tally.so
+file=/var/log/faillog onerr=succeed no_magic_root
+auth	required	/lib/security/pam_nologin.so
+account	required	/lib/security/pam_tally.so deny=0
+file=/var/log/faillog onerr=succeed no_magic_root
+account	required	/lib/security/pam_unix.so
+session	required	/lib/security/pam_unix.so</screen>
+		<para>Pozostaje mi tylko wam przypomnieć, że przed
+		sprawdzaniem autoryzacji należy także odpalić
+		pwcheck/saslauthd
+		</para>
+		<para>
+		Exim sobie bardzo dobrze radzi sobie z połączeniami
+		szyfrowanymi przy użyciu protokołu SSL (wspiera metodę
+		STARTTLS). Wystarczy wygenerować odpowiednie certyfikaty:
+		</para>
+		<screen>[baseciq w viper baseciq]$ openssl genrsa -out /etc/mail/exim.key 1024
+Generating RSA private key, 1024 bit long modulus
+.......++++++
+..............................++++++
+e is 65537 (0x10001)
+[baseciq w viper baseciq]$ openssl req -new -x509 -days 365 -key /etc/mail/exim.key -out /etc/mail/exim.crt
+Using configuration from /var/lib/openssl/openssl.cnf
+You are about to be asked to enter information that will be
+incorporated
+into your certificate request.
+What you are about to enter is what is called a Distinguished Name or a DN.
+There are quite a few fields but you can leave some blank
+For some fields there will be a default value,
+If you enter '.', the field will be left blank.
+-----
+Country Name (2 letter code) [AU]:PL
+State or Province Name (full name) [Some-State]:Mazowsze
+Locality Name (eg, city) []:Warsaw
+Organization Name (eg, company) [Internet Widgits Pty Ltd]:Baseciq Ltd.
+Organizational Unit Name (eg, section) []:Baseciq's Mail Server
+Common Name (eg, YOUR name) []:viper.baseciq.org
+Email Address []:baseciq w baseciq.org</screen>
+		<para>
+			Oczywiście na pytania odpowiadajcie podając swoje
+			dane... Po takim zabiegu do sekcji głównej Exim'a
+			dopiszcie:
+		</para>
+		<screen>tls_certificate = /etc/mail/exim.crt
+tls_privatekey = /etc/mail/exim.key
+tls_advertise_hosts = *</screen>
+		<para>Po tym zabiegu i restarcie Exim powinien bez problemu
+			komunikować się po SSL, co zresztą widać w logach:
+		</para>
+		<screen>2003-09-07 01:48:36 19vmnC-0006EG-27 &lt;=	bensonzow w beer.com H=plug.atn.pl
+[217.8.186.28] U=exim P=esmtp X=TLSv1:DES-CBC3-SHA:168 S=2909
+id=ebb601c374e2$80dace00$cab00a12 w fv</screen>
+		<para>
+			Warto by było, żeby także pop3d obsługiwał SSL'a
+			natywnie ssl'a (bez jakichś stunneli i innych
+			wynalazków). Ja osobiście polecam opisany w rozdziale
+			Exim: MySQL demonik tpop3d, którego konfiguracja jest
+			bardzo prosta. Wystarczy że standardowe
+			'listen-address' na takie:
+		</para>
+		<screen>listen-address:	0.0.0.0;tls=stls,/etc/mail/exim.crt,/etc/mail/exim.key \
+		0.0.0.0;tls=immediate,/etc/mail/exim.crt,/etc/mail/exim.key</screen>
+		<para>
+			Od teraz tpop3d na porcie 110 będzie obsługiwał SSL po
+			wykonaniu komendy <command>STLS</command> (np. TheBat potrafi tak
+			zacząć sesję SSL) a na porcie 995 będzie od razu używał
+			SSL'a (TheBat, Outlook Express). Za pomoc w tpop3d+ssl
+			chciałbym w tym miejscu podziękować Arkadiuszowi
+			Miśkiewiczowi ;-) Dzięki Arek! :)
+		</para>
+		<para>Exima i SSL na porcie 465 można osiągnąć jedynie przy
+		użyciu inetd (normalny Exim jako daemon, Exim po SSLu
+		z inetd). Oto przykładowe konfiguracje dla poszczególnych
+		inetd:</para>
+	<para><command>rlinetd</command>:</para>
+		<screen>service "exim-ssl" {
+	protocol	tcp;
+	port		"465";
+	user		"root";
+	tcpd		{ exit; }
+	exec		"/usr/bin/exim -bs -tls-on-connect";
+	}</screen>
+		<para><command>xinetd</command>:</para>
+		<screen>service exim-ssl
+{
+	socket_type= stream
+	protocol	= tcp
+	port		= 465
+	user		= root
+	server		= /usr/bin/exim
+	server_args	= -bs -tls-on-connect
+	wait		= no
+	}</screen>
+		<para><command>inetd</command> (sprawdzone przez kflis'a - dzięki!):</para>
+		<screen>465	stream	tcp	nowait	root	/usr/sbin/tcpd	/usr/bin/exim -bs -tls-on-connect</screen>
+		<para><command>rc-inetd (PLD)</command> (należy utworzyć plik
+			/etc/sysconfig/rc-inetd/smtps i wstawić tam to co
+			poniżej):</para>
+		<screen>SERVICE_NAME=exim-ssl
+SOCK_TYPE=stream
+PROTOCOL=tcp
+PORT=465
+FLAGS=nowait
+USER=root
+SERVER=tcpd
+DAEMON=/usr/bin/exim
+DAEMONARGS="-bs -tls-on-connect"</screen>
+		<para>
+			Generalnie nie ma sensu męczyć kernela i filesystemu
+			żeby pilnował quoty na pocztę. Szczególnie gdy MTA
+			samo sobie może z tym poradzić. Służy do tego parametr
+			<command>quota</command> w konfiguracji transportów. I tak, w
+			najprostszy sposób można lokalną quotę per user
+			ustawić w konfiguracji transportu
+			<command>local_delivery</command>
+			(odpowiedzialnego za lokalne dostarczanie poczty):
+		</para>
+		<screen>local_delivery:
+	driver = appendfile
+	file = /var/mail/$local_part
+	delivery_date_add
+	envelope_to_add
+	return_path_add
+	# A tutaj dodajemy quotę w wysokości 20MB:
+	quota = 20M</screen>
+		<para>
+			Proste, prawda? Tak naprawdę ma to zastosowanie w
+			systemach poczty wirtualnej gdzie możemy w bazie
+			danych przechowywać quotę użytkownika i można
+			skonstruować zapytanie SQL do odpytania ile miejsca ma
+			dany użytkownik. Ale jeżeli nie możecie sobie poradzić
+			z quotą systemową, możecie zamiast <command>quota = 20M</command> 
+			dopisać coś takiego:
+		</para>
+		<screen>quota =	${lookup{$local_part}lsearch{/etc/mail/quota.conf}{$value}{0M}}</screen>
+		<para>
+			Od tego momentu w pliku
+			<command>/etc/mail/quota.conf</command> możesz
+			trzymać wielkości skrzynek dla poszczególnych
+			użytkowników. Jeżeli ktoś nie zostanie tam wymieniony,
+			to nie będzie miał żadnych limitów na swoją skrzynkę
+			pocztową. Plik taki powinien wyglądać mniej-więcej
+			tak:
+		</para>
+		<screen>lukasz:	100M
+kflis:	5M
+ania:	20M</screen>
+		<para>I tak oto ja mam 100mb na pocztę, kubuś tylko 5, a
+			siostra 20 MB ;) Podobnym parametrem każdego
+			transportera jest <command>message_size_limit</command>. Wystarczy
+			wpisać:
+		</para>
+		<screen>message_size_limit = 10M</screen>
+		<para>
+			Podobnie jak powyżej, można zrobić to na bazie pliku -
+			wystarczy zamiast
+			<command>/etc/mail/quota.conf</command> użyć np.
+			<command>/etc/mail/size_limits.conf</command> ;-) BTW. na końcu linijki z
+			quotą, gdzie mamy '0M' możemy wstawić np. '20M'.
+			Wtedy, osoby nie dopisane do
+			<command>/etc/mail/quota.conf</command> będą
+			miały 20MB limitu (limit domyślny).
+		</para>
+		<para>
+			Oczywiście jak na Exim'a przystało, od quoty jest
+			więcej bajerków. Chyba najbardziej pożądanym
+			'gwizdkiem' będzie opcja
+			<command>quota_warn_message</command>. Jest to
+			nic innego jak mail ostrzegający usera o tym że
+			skrzynka jest zapchana po same brzegi. Zanim jednak
+			polecisz to wdrażać, zainteresuj się jak to działa.
+			Otóż po dostarczeniu każdego maila Exim będzie
+			sprawdzał czy został przekroczony konkretny próg
+			(podany w megabajtach, lub w procentowo). Jeżeli tak,
+			wygeneruje on odpowiednią wiadomość. I tak, dodajemy
+			do molestowanego przez nas
+			<command>local_delivery</command>
+			następujące opcje:
+		</para>
+		<screen>quota_warn_message = "\
+Content-Type: text/plain; charset=ISO-8859-2\n\
+To: $local_part@$domain\n\
+Reply-to: Administratorzy sieci
+&lt;admins w twojadomena.pl&gt;\n\
+Subject: Informacja o Twoim koncie pocztowym\n\
+\n\
+*** Ta wiadomość została wygenerowana automatycznie ***\n\
+\n\
+Uprzejmie informujemy, iż Twoja skrzynka pocztowa została zapełniona w 90%\n\
+swojej pojemności. W momencie zapełnienia jej w 100% nie będą dostarczane\n\
+do Ciebie nowe wiadomości. Opróżnij swoją skrzynkę pocztową ze starych\n\
+wiadomości.\n"
+	quota_warn_threshold = 90%</screen>
+	</section>
+	<section>
+		<title>Exim: Dodanie możliwości antywirusowych</title>
+		<para></para>
+	</section>
+	<section>
+		<title>Exim: Współpraca z MySQL</title>
+		<para></para>
+	</section>
+</section>



Więcej informacji o liście dyskusyjnej pld-doc