{ }
menu zespół linki Logowanie
Stabilny hosting
BSDGuru zawdzięcza
firmie Datanet.pl
Hosting BSDGuru.org - DataNet.pl

Lista dyskusyjna na podstawie ecartis'a (+ archiwum listy w hypermailu)

Do czego służy lista dyskusyjna nikomu chyba nie trzeba tłumaczyć, zatem bez przydługawych wstępów - do dzieła ;).

System na którym całość stanie to NetBSD-current, ale na pozostałych *BSD będzie pewnie analogicznie.

Po pierwsze sciągamy źrodła ecartisa(NetBSD), lub instalujemy z portów (Free):

cancer@area47/usr/local[5]20:27#wget ftp://ftp.ecartis.org/pub/ecartis/\
snapshots/tar/ecartis-1.0.0-snap20031228.tar.gz

i rozpakowujemy:

cancer@area47/usr/local[6]20:34#tar -zxvpf ecartis-1.0.0-snap20031228.tar.gz

zmieniamy nazwę dla wygody:

cancer@area47/usr/local[8]20:34#mv ecartis-1.0.0/ ecartis

kompilujemy:

cancer@area47/usr/local[9]20:34#cd ecartis/src/
cancer@area47/usr/local/ecartis/src[10]20:35#mv Makefile.dist Makefile
cancer@area47/usr/local/ecartis/src[11]20:36#vim Makefile

i odkomentowujemy linijke BSDMOD = 1

cancer@area47/usr/local/ecartis/src[12]20:37#gmake
cancer@area47/usr/local/ecartis/src[12]20:37#gmake install

jeśli się nie skompiluje to czytaj komunikaty i poprawiaj, mi nie udało się tego ani razu popsuć podczas kompilacji więc pewnie obejdzie się bez problemów. Lista zainstalowana, możemy przystąpić do tworzenie listy:

Ważne! Wywołujemy ecartisa z pełną ścież do programu gdyż będzie ona wykorzystywana przy tworzeniu aliasów.

cancer@area47/usr/local/ecartis/src[14]20:38#cd ..
cancer@area47/usr/local/ecartis[15]20:41#/usr/local/ecartis/ecartis -newlist bsdguru
Creating new list 'bsdguru'...
List admin e-mail: cancer@area47.org
Writing config file...done.
Creating default user file...done.
Sending aliases for sendmail/Exim/Postfix/Zmailer to stdout.

# Aliases for 'bsdguru' mailing list.
bsdguru: "|/usr/local/ecartis/ecartis -s bsdguru"
bsdguru-request: "|/usr/local/ecartis/ecartis -r bsdguru"
bsdguru-repost: "|/usr/local/ecartis/ecartis -a bsdguru"
bsdguru-admins: "|/usr/local/ecartis/ecartis -admins bsdguru"
bsdguru-moderators: "|/usr/local/ecartis/ecartis -moderators bsdguru"
bsdguru-bounce: "|/usr/local/ecartis/ecartis -bounce bsdguru"

aliasy dodajemy do naszego pliku z aliasami (zakładam, że masz skonfigurowany i działający jakiś MTA, bo robienie listy mailingowej bez maili to hmmm..... anyway !)

po dodaniu do aliasów robimy standardowo newalias i przeładowujemy serwer pocztowy:

cancer@area47/usr/local/ecartis[17]20:46#newaliases
/etc/mail/aliases: 28 aliases, longest 49 bytes, 587 bytes total
cancer@area47/usr/local/ecartis[18]20:46#postfix reload
postfix/postfix-script: refreshing the Postfix mail system

Pora przetestować listę, z jakiegoś konta wysyłamy na adres bsdguru-request prośbę o zapisanie:

toudi@area47~[1]20:49>echo subscribe | mail bsdguru-request@area47.org

sprawdzamy jako admin (konto podane przy tworzeniu listy) czy rejestracja została przeprowadzona pomyślnie:

cancer@area47~[2]20:50#mail
Mail version 8.1 6/6/93. Type ? for help.
"/var/mail/cancer": 1 message 1 new
>N 1 ecartis@localhost.ar Tue Apr 13 20:50 9/1151 "toudi@area47.org subscribed to bsdguru"
Subject: toudi@area47.org subscribed to bsdguru

toudi@area47.org subscribed to list bsdguru
Command came from: toudi@area47.org

---
Ecartis v1.0.0 - job execution complete.

Hej ! Doskonale - działa :)

No i to właściwie wszystko na temat listy, zapisujemy się wysyłając maila o treści subscribe do [nazwa listy]-request, analogicznie tylko unsubscribe wypisuje nas z listy. Wiadomości na listę wysyłamy na [nazwa listy] (tutaj bsdguru@area47.org. Wszystko co zostanie wysłane przez zapisanych użytkowników trafi do innych użytkowników z adresu bsdguru@area47.org z prefixem w temacie [bsdguru] (ułatwia to sortowanie). Listy wysłane z kont niezarejestrowanych najpier trafią do bsdguru-admins (może być więcej adminów lub moderatoró - o tym niżej), gdzie będą czekały na autoryzację aby wysłać je na liste.

Wszystko ładnie pięknie, ale brakuje istotnej rzeczy - archiwum listy. Wiadomo, lista ma być zbiorem wiedzy wszelakiej, rozwiązań problemó, skarbnicą trików i Bóg wie jeszcze czego w zależności od przeznaczenia, zatem później zapisani użytkownicy będą poszkodowani gdyż nie nędą w stanie dostać się do informacji przed ich zapisaniem. Stwórzmy więc sobie archiwum listy przy pomocy małego tricku i świetnego toola do przerabiania mboxa na html - introducing hypermail !

Hypermail jest standardowo w pkgsrc/portach więc go instalujemy:

cancer@area47~[3]20:51#cd /usr/pkgsrc/mail/hypermail/
cancer@area47~[3]20:51#make install clean
cancer@area47~[3]20:51#rehash

Zeby gromadzić wiadomości na listę potrzebujemy pseudousera jakiegoś np. niech będzie nim 'arch'.

cancer@area47/usr/home/mail[16]21:03#useradd -d /usr/home/mail/arch \
-s /sbin/nologin -g nobody -m arch

Zostawiamy go bez hasła toteż nikt nam się nie zaloguje na niego :)

Zapisujemy archa na liste:

cancer@area47/usr/home/mail[17]21:05#su arch
cancer@area47/usr/home/mail[2]21:07>echo subscribe | mail bsdguru-request@area47.org

i przekierowujemy całą jego poczte do pliku w jego $HOME przy pomocy procmaila (jeśli go nie ma to doinstalować z pkgsrc/portów):

Tworzymy jako user arch plik .procmailrc w $HOME o nastepującej zawartości:

ARCHIWUM=/usr/home/mail/arch/archiwum #(tutaj oczywiście ścieżka w/g własnych ustawień)
:0
*
$ARCHIWUM

Jeszcze tylko plik w $HOME archa .forward o zawartośći:

|procmail

i testujemy jak to nam działa!

cancer@area47~[4]21:14>echo test listy | mail bsdguru@area47.org

cancer@area47/usr/home/mail/arch[10]21:17>ll
total 8
-rw-r--r-- 1 arch nobody 762 Nov 23 14:10 .cshrc
-rw-r--r-- 1 arch nobody 10 Apr 13 21:13 .forward
-rw-r--r-- 1 arch nobody 488 Nov 23 14:10 .login
-rw-r--r-- 1 arch nobody 265 Nov 23 14:10 .logout
-rw-r--r-- 1 arch nobody 57 Apr 13 21:17 .procmailrc
-rw-r--r-- 1 arch nobody 504 Nov 23 14:10 .profile
-rw------- 1 arch nobody 1225 Apr 13 21:15 archiwum

działa świetnie - mamy plik z archiwum :)

Pozostało jeszcze tylko przekonwertować go na html. Konwersje dodajemy do crona uzytkownika arch np raz na godzine albo raz na dzień, albo raz na 5 minut jeśli lista jest mocno uzywana, ale pierwszą konwersję zróbmy z "palca":

cancer@area47/usr/home/mail/ecararch[15]21:25>hypermail -m /usr/home/mail/arch/archiwum -d /usr/home/www/area47/lista/
WARNING: locale "en_US", not supported.

Oczywiscie położenie katalogu docelowego w/g uznania, warningiem zajmiemy się za chwilę, teraz należy zobaczyć czy nam się ładnie archiuwm wygenerowało.

Wygenerowało, stuningujmy je lekko, aby nabrało troche wyrazu:

Jako user arch w jego $HOME tworzymy pliczek .hmrc trzymający ustawienia hypermaila, może on wyglądać np tak:

language = pl_PL.ISO8859-2
label = lista mailingowa na potzreby artykułu dla bsdguru.org
usetable = 1
indextable = 1
showhtml = 2
mailto = cancer@area47.org

pokrótce co do czego => language - wiadomo, w jakiej wersji językowej ma być archiwum (odrazu załatwia nam to problem WARNING'a kilka linijek wyżej, label - nazwa archiwum (defaultowo jest to nazwa pliku z którego pochodzi archiwum), usetable - wykorzystywane sa tabelki zamiast standardowych linków do przedstawienia menu - ładniej, indextable - tak jak poprzednio z tym że w tabelki teraz wkłądamy pola Subject/Author/Date - jeszcze ładniej :) showhtml (od 0 do 2) - poprawia wygląd archiuwm, mailto - wiadomo - mail do admina listy.

Wygenerujmy zatem teraz archiwum z nowymi ustawieniami....

Wow, nieźle :) Więcej opcji w dokumentacji hypermaila (http://www.hypermail.org)

Dopiszemy zatem do crona generowanie archiwum:

*/5 * * * * /usr/pkg/bin/hypermail -m /usr/home/mail/arch/archiwum -d /usr/home/www/area47/lista/

Jeszcze krótko o zarządzaniu listą - robi się to poprostu wysyłając maila na [nazwa listy]-admin z konta administratora/moderatora, podając odpowiednie komendy, np w treści gdy podamy "who" w odpowiedzi dostaniemy liste wszystkich zapisanych na liste użytkowników. Można przeprowadzać także bardziej skomplikowane operacje ale w tej kwestii odsyłam na (http://www.ecartis.org/doc/html-single/) co prawda dokumentacja do ecartisa jest w trakcie tworzenia dopiero, ale zarządanie lista jest tam dobrze opisane.

No i to tyle, lista mailingowa działa, archiwum można przeglądać i sortować, powyższe zostawie na tydzień do testów - można się zapisać i testować :) http://area47.org/lista

Autor: 
Bartek 'cancer' Maciejewski
Porozmawiaj o tym artykule na forum: 

tytus, pt., 18/04/2008 - 20:32