Narzędzia użytkownika

Narzędzia witryny


lms-rtparser

4.3.18. lms-rtparser

Jest to tzw. backend dla systemu Helpdesk, czyli skrypt który współpracując z serwerem pocztowym zapisuje do bazy danych wszystkie wiadomości skierowane na adresy Helpdesk'a. Skrypt pobiera z wejścia wiadomość pocztową, parsuje zawartość i umieszcza zgłoszenie w kolejce, wysyłając do zgłaszających potwierdzenie przyjęcia wiadomości. W temacie potwierdzenia znajduje się symbol zgłoszenia. Podczas parsowania wiadomości następuje, na podstawie tematu wiadomości, próba rozpoznania czy wiadomość nie jest odpowiedzią na inną wiadomość z już przypisanym numerem zgłoszenia. Od wiadomości zostają odłączone załączniki i umieszczone w katalogu zdefiniowanym w opcji mail_dir.

Oprócz modułów Perla standardowo wymaganych przez resztę skryptów, należy zainstalować także moduły MIME::Parser i MIME::Words z pakietu MIME-Tools oraz Mail::Sender i Text::Iconv.

Skrypt można uruchamiać na wiele sposobów. Jednym z nich jest stworzenie skryptu powłoki, który odczytując skrzynkę pocztową wywoła lms-rtparser dla każdego maila. Wygodniejszym zastosowaniem jest jednak zintegrowanie go z serwerem pocztowym. Poniżej przedstawiono sposób podłączenia go do postfixa przy użyciu opcji header_checks.

# plik main.cf:
header_checks = regexp:/etc/postfix/header_checks

# plik header_checks
/^To:.*adres@domena.*/ FILTER filter:dummy

# plik master.cf:
filter unix - n n - 10 pipe
      -flags=Rq user=nobody argv=/path/to/lms-rtparser

Powyższy sposób działa dla postfixa w wersjach nowszych od 2.0. Wcześniejsze wersje nie obsługują FILTER w header_checks. Z tym problemem można sobie poradzić używając procmaila:

# plik main.cf
mailbox_command = /usr/bin/procmail

# w katalogu domowym klienta, którego maile mają być obsługiwane przez HelpDesk:
# plik .forward
"|IFS=' ' && exec /usr/bin/procmail -f - || exit 75 #YOUR_USERNAME"

# plik .procmailrc
:0 c
   * ^To.*adres@domena
   | /bin/lms-rtparser

:0 A
$DEFAULT

Kolejny listing to przykład podłączenia parsera do Exima przy użyciu filtrów systemowych:

# plik exim.conf

system_filter_pipe_transport = address_pipe

# plik system_filter.txt

if $recipients is "adres_kolejki@domena.pl"
then 
     pipe "/sciezka/do/lms-rtparser -q id_kolejki"
endif

Jeżeli chcesz aby wiadomości wprowadzane poprzez lms-ui były kierowane do parsera, zamiast bezpośrednio zapisywane do bazy, powinieneś włączyć opcję konfiguracyjną helpdesk_backend_mode w sekcji [phpui].

Konfigurację tego skryptu zawiera sekcja [rt] w pliku lms.ini:

  • default_queue

Numer ID kolejki, do której trafią zgłoszenia. Jeśli nie podano, Kolejka zostanie odszukana na podstawie adresu odbiorcy maila. Opcja ta może zostać nadpisana przy pomocy parametru -q przy uruchomieniu skryptu. Domyślnie: niezdefiniowana. Przykład: default_queue =

  • mail_from

Nadawca potwierdzenia (adres). Jeśli nie zdefiniowano, zostanie użyty adres kolejki do której zapisano zgłoszenie. Domyślnie: pusty. Przykład: mail_from = rt@net.pl

  • mail_from_name

Nadawca potwierdzenia (nazwa). Domyślnie: niezdefiniowana. Przykład: mail_from_name = 'BOK SuperLAN'

  • autoreply_subject

Temat potwierdzenia. Tu można korzystać ze zmiennych %tid - identyfikator zgłoszenia i %subject - temat zgłoszenia. Domyślnie: „[RT#%tid] Receipt of request '%subject'”. Przykład: autoreply_subject = „[RT#%tid] Potwierdzenie odbioru zgłoszenia o temacie '%subject'”

  • autoreply_body

Treść potwierdzenia. Tu można korzystać ze zmiennych: %tid - identyfikator zgłoszenia i %subject - temat zgłoszenia. Domyślnie: „Your request was registered in our system.\nTo this request was assigned ticket identifier RT#%tid.\nPlease, place string [RT#%tid] in subject field of any\nmail relating to this request.\n.”

Przykład: autoreply_body = „Państwa zgłoszenie zostało zarejestrowane w naszym systemie.\nZgłoszeniu został nadany numer: RT#%tid.\nW korespondencji związanej z tym zgłoszeniem prosimy podawać w temacie ciąg znaków [RT#%tid].\n”

  • smtp_host

Serwer SMTP, przez który ma zostać wysłana wiadomość. Domyślnie: localhost Przykład: smtp_host = smtp.mydomain.pl

  • smtp_auth

Sposób autoryzacji. Dozwolone wartości: LOGIN, PLAIN, CRAM-MD5, NTLM. Domyślnie: pusta (brak autoryzacji) Przykład: smtp_auth = LOGIN

  • smtp_user

Login do autoryzacji SMTP. Domyślnie: pusty Przykład: smtp_user = admin

  • smtp_pass

Hasło do konta zdefiniowanego w opcji smtp_user. Domyślnie: puste Przykład: smtp_pass = password

  • mail_dir

Katalog w którym zostaną zapisane załączniki. Katalog ten powinien być dostępny dla apache'a i klienta uruchamiającego lms-rtparser. Gdy nie ustawiono, załączniki zostaną utracone. Domyślnie: niezdefiniowany. Przykład: mail_dir = /usr/local/lms/mail

  • tmp_dir

Katalog tymczasowy. Domyślnie zostanie użyty katalog zdefiniowany w zmiennej systemowej lub /tmp. Przykład: tmp_dir = /home/user/tmp

  • auto_open

Włączenie tej opcji spowoduje, że w momencie odebrania wiadomości dotyczącej zgłoszenia zamkniętego (lub martwego) zgłoszenie to zostanie otwarte. Domyślnie: wyłączone. Przykład: auto_open = 1

  • newticket_notify

Włączenie tej opcji spowoduje wysyłanie powiadomień o nowych zgłoszeniach do użytkowników którzy mają prawa do konkretnej kolejki. Domyślnie: wyłączone. Przykład: newticket_notify = 1

  • lms_url

Do powiadomienia o nowym zgłoszeniu zostaje załączony link do tego zgłoszenia w LMS-UI, aby użytkownik mógł szybko przejść do tego zgłoszenia. Domyślnie: http://localhost/lms/. Przykład: lms_url = https://lms.domena.pl/

  • include_customerinfo

Do powiadomienia o nowym zgłoszeniu zostają załączone podstawowe dane klienta, jeżeli został on rozpoznany po adresie mailowym. Domyślnie: włączona. Przykład: include_customerinfo = 0

lms-rtparser.txt · ostatnio zmienione: 2012/12/05 00:00 (edycja zewnętrzna)