===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