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.