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):
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:
kompilujemy:
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 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[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:
/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:
sprawdzamy jako admin (konto podane przy tworzeniu listy) czy rejestracja została przeprowadzona pomyślnie:
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#make install clean
cancer@area47~[3]20:51#rehash
Zeby gromadzić wiadomości na listę potrzebujemy pseudousera jakiegoś np. niech będzie nim '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[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:
:0
*
$ARCHIWUM
Jeszcze tylko plik w $HOME archa .forward o zawartośći:
i testujemy jak to nam działa!
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":
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:
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:
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
tytus, pt., 18/04/2008 - 20:32


