===4.3.1. lms-notify.php=== lms-notify.php umożliwia komunikację z klientami na wiele sposobów wyzwalaną różnymi zdarzeniami. Skrypt jest wielofunkcyjny - włączenie określonego zadania następuje poprzez określenie parametrem uruchomieniowym skryptu typów zadań. Do wysyłania poczty i sms-ów używane są standardowe mechanizmy dostępne w LMS. ==4.3.1.1. Treść i temat wiadomości == W treści i temacie wiadomości można używać następujących zmiennych: * %bankaccount - zostanie zastąpione numerem rachunku do przelewu * %b - saldo z zanegowanym znakiem, np. 107 * %B - saldo z prawdziwym znakiem, np. -107 * %totalb - podobnie jak %b z uwzględnieniem wszystkich należności * %totalB - podobnie jak %B z uwzględnieniem wszystkich należności * %date-y - zostanie zastąpione aktualnym rokiem, np. 2003 * %date-m - zostanie zastąpione aktualnym miesiącem, licząc od 1 poprzedzone 0, np. 02 * %date_month_name - zostanie zastąpione nazwą bieżącego miesiąca, np. marzec * %deadline-y - zostanie zastąpione numerem roku w którym przypada termin płatności, np. 2003 (tylko w powiadomieniu o fakturze lub nocie obciążeniowej) * %deadline-m - zostanie zastąpione numerem miesiąca w którym przypada termin płatności, licząc od 1 poprzedzone 0, np. 02 (tylko w powiadomieniu o fakturze lub nocie obciążeniowej) * %deadline-d - zostanie zastąpione numerem dnia w którym przypada termin płatności, licząc od 1 poprzedzone 0, np. 02 (tylko w powiadomieniu o fakturze lub nocie obciążeniowej) * %saldo - zostanie zastąpione aktualnym saldem klienta, np. 535 * %totalsaldo - podobnie jak %saldo z uwzględnieniem wszystkich należności * %abonament - zostanie zastąpione kwotą abonamentu jaka jest do danego klienta przypisana, np. 107 * %pin - numer PIN klienta * %cid - ID klienta * %number - numer dokumentu (tylko w powiadomieniu o fakturze lub nocie obciążeniowej) * %invoice - numer dokumentu (tylko w powiadomieniu o fakturze lub nocie obciążeniowej) * %value - wartość brutto na fakturze (tylko w powiadomieniu o fakturze) * %lastday - ostatni dzień bieżącego miesiąca, licząc od 1 poprzedzone 0, np. 31 * %cdate-y - zostanie zastąpione rokiem w którym wystawiono dokument (tylko w powiadomieniu o fakturze lub nocie obciążeniowej) * %cdate-m - zostanie zastąpione miesiącem w którym wystawiono dokument (tylko w powiadomieniu o fakturze lub nocie obciążeniowej) * %cdate_d - zostanie zastąpione dniem w którym wystawiono dokument (tylko w powiadomieniu o fakturze lub nocie obciążeniowej) **Przykład 4-2. Lms-notify.php: Przykład szablonu** UWAGA! Ta wiadomość została wygenerowana automatycznie. Uprzejmie informujemy iż na Pani/Pana koncie figuruje zaległość w opłatach za internet w wysokości %B zł. Jeżeli porozumieli się już Państwo z administratorami w kwestii opłaty za bieżący miesiąc czyli %date-m %date-y roku, prosimy o zignorowanie tej wiadomości. W wypadku gdy uważają Państwo iż zaległość ta jest nieporozumieniem prosimy o jak najszybszy kontakt. Wszelkie informacje na temat Państwa rozliczeń mogą Państwo znaleźć pod adresem http://www.naszasiec.pl/mojekonto/ Jeżeli chcieliby Państwo uregulować zaległości prosimy o kontakt: Dział Rozliczeń ASK NaszaSiec Gwidon Mniejważny telefon: 0-606666666 e-mail: gwidonm@naszasiec.pl -- Amatorska Sieć Komputerowa NaszaSiec http://www.naszasiec.pl/ ==4.3.1.2. Parametry uruchomieniowe skryptu== Poniżej parametry uruchomieniowe charakterystyczne dla skryptu lms-notify.php: * **-d**, **--debug** wiadomości nie są wysyłane do odbiorców; pozwala na proste debugowanie skryptu. * **-f**, **--fakedate**=YYYY/MM/DD skrypt zakłada, że wskazana data jest datą bieżącą * **-c**, **--channel**=kanały_komunikacyjne_powiadomień lista oddzielonych przecinkami kanałów komunikacyjnych z listy poniżej (domyślnie: **mail**): * **mail** - powiadomienia mailem, * **sms** - powiadomienia sms-em, * **www** - powiadomienia przez przeglądarkę www (skrypt jest w stanie generować listy reguł zawierające adresy IP), * **block** - specjalny kanał powodujący zablokowanie komputerów, wyłączenie przy zobowiązaniach flagi "faktura" oraz zmianę statusu klienta na **windykacja**, * **unblock** - specjalny kanał powodujący odblokowanie komputerów, włączenie przy zobowiązaniach flagi "faktura" oraz zmianę statusu klienta na **podłączony**. * **-t**, **--type**=typy_powiadomień_oddzielone_przecinkami lista dostępnych typów powiadomień (domyślnie: **wszystkie typy**): * **documents** - powiadomienia o upływających terminach umów/aneksów abonenckich (liczone w oparciu o datę "do" obowiązywania dokumentu), * **contracts** - powiadomienia o upływających terminach umów/aneksów abonenckich (liczone w oparciu o maksymalną datę obowiązywania "do" dla wszystkich zobowiązań klienta), * **debtors** - powiadomienia o zadłużeniu abonentów, * **reminder** - powiadomienia abonentów o nieopłaconych fakturach, * **invoices** - powiadomienia o wystawionych fakturach, * **notes** - powiadomienia o wystawionych notach odsetkowych, * **warnings** - powiadomienia abonentów, których komputery mają włączone ostrzeżenia, * **events** - powiadomienia abonentów i użytkowników o aktywnych zdarzeniach w terminarzu (temat i treść są kopiowane bezpośrednio ze zdarzenia), * **messages** - powiadomienia o wiadomościach nadanych do klientów (ma zastosowanie wyłącznie dla kanału **www**) * **-s**, **--section**=nazwa_sekcji_konfiguracyjnej nazwa sekcji konfiguracyjnej LMS z której ładowane są ustawienia skryptu (najpierw pod uwagę brane są ustawienia przechowywane w bazie danych/interfejsie użytkownika LMS, zaś w drugiej kolejności z pliku lms.ini) - domyślnie: **notify** ==4.3.1.3. Konfiguracja== Konfigurację konta SMTP oraz backendu SMS określamy standardowymi sekcjami konfiguracyjnymi LMS, tj. odpowiednio **mail** i **sms**. Wszystkie ustawienia składają się z dwóch członów oddzielonych znakiem podkreślenia ("_"): * nazwy typu powiadomienia, * ustawienia. Przykład: ustawienie wiadomości używanej przy powiadomieniach o wystawieniu faktur będzie miało postać **invoices_message**. Poniżej opisano obsługiwane ustawienia w postaci drugiego członu nazwy ustawienia). ^Nazwa ^Opis ^Wartość domyślna ^Przykład^ |limit|Limit salda klienta wyzwalający powiadomienia|0|debtors_limit=-50| |message|Treść wiadomości z powiadomieniem|... notification|invoices_message=Powiadomienie| |subject|Temat wiadomości z powiadomieniem|... notification|reminder_subject=to jest temat listu| |days|Liczba dni wyzwalająca powiadomienia, np. dla contracts liczba dni od dnia dzisiejszego za które upływa ważność zobowiązania klienta o najpóźniejsze dacie obowiązywania do|0|contracts_days=31| |file|Nazwa pliku do której zapisywane są reguły z adresami IP (ma zastosowanie dla kanału powiadomień **www**)|/etc/rc.d/messages.sh|messages_file=/etc/rc.d/rc.messages.sh| |header|Wiersz nagłówka pliku w którym są zapisywane reguły z adresami IP (ma zastosowanie dla kanału powiadomień **www**)|#!/bin/bash\n\nipset flush $type\n|messages_header=#!/bin/bash\n\nPATH="/bin:/sbin:/usr/bin:/usr/sbin"\n\nipset create messages_tmp hash:net\n"| |rule|Reguła z adresem IP - symbol specjalny %i za który podstawiany jest adres IP komputera klienckiego (ma zastosowanie dla kanału powiadomień **www**)|ipset add ... %i\n|messages_rule=ipset add messages_tmp %i\n| |footer|(ma zastosowanie dla kanału powiadomień **www**)|pusty|messages_footer=ipset swap messages_tmp messages\nipset destroy messages_tmp\n| Poniżej przedstawiono ustawienia niezależne od typu powiadomienia. ^Nazwa ^Opis ^Wartość domyślna ^Przykład^ |mailfrom (wymagana dla kanału **mail**)|Adres e-mail z którego zostanie wysłany e-mail. Proszę pamiętać, że na niektórych MTA (np. exim) konto to musi istnieć w systemie.|pusta|mailfrom=info@firma.pl| |mailfname (opcjonalny)|Nazwa nadawcy maila.|pusta|mailfname=Administratorzy| |smtp_host (opcjonalny)|Serwer SMTP, przez który ma zostać wysłana wiadomość.|pusty|smtp_host=smtp.firma.pl| |smtp_port (opcjonalny)|Port serwera SMTP|pusty|smtp_port = 25| |smtp_auth (opcjonalny)|Sposób autoryzacji. Dozwolone wartości: LOGIN, PLAIN, CRAM-MD5, NTLM.|pusta|smtp_auth=PLAIN| |smtp_user (opcjonalny)|Login do autoryzacji SMTP.|pusty|smtp_user=admin| |smtp_pass (opcjonalny)|Hasło do konta zdefiniowanego w opcji smtp_user.|puste|smtp_pass=password| |debug_email (opcjonalny)|Adres e-mail do debugowania. Gdy ustawiony, cała poczta zostaje wysłana na dany email zamiast do klientów. Przydatne do debugowania i sprawdzania czy wszystko działa OK.|nie ustawiony|debug_email=user@firma.pl| |service (opcjonalny)|Nazwa backendu sms, który ma być używany do wysyłki sms-ów|pusty|service=smstools| |debug_phone (opcjonalny)|Numer telefonu na który mają być wysyłane wszystkie sms-y (zamiast do klientów)|pusty|debug_phone=666666666| **Uwaga!** Brak ustawień **smtp_...** powoduje użycie ustawień z sekcji konfiguracyjnej **mail**.\\ Brak ustawienia **service** powoduje wysyłkę sms-ów w oparciu o domyślny backend sms-owy określony w sekcji konfiguracyjnej **sms**.