Wysyłanie maili

W wielu miejscach programu może istnieć potrzeba, aby generować dużą ilość powiadomień wysyłanych np. mailem. Programowe wysyłanie pojedynczych wiadomości nie stanowi kłopotu, problem zaczyna się z wydajnością, gdy do wysłania są setki lub tysiące maili. W celu rozwiązania takiego kłopotu, program StudioSystem wraz z modułem ssJob pozwalają na łatwe przygotowanie i realizację mailingu.

Poniższy opis jest przykładem zastosowania systemu mailingu do wysyłania powiadomień dla użytkowników oprogramowania na platformie StudioSystem.

Opis ogólny

Wiadomości e-mail do wysłania są zapisywane w bazie SQL, natomiast usługa ssJob z dowolnie ustaloną częstotliwością sprawdza czy są wiadomości do wysłania i w tle samodzielnie je rozsyła. Każda wiadomość jest więc zapisywana w bazie SQL jako oddzielny rekord do realziacji. Po wysłaniu wiadomości jest ona usuwana z listy zadań do realizacji i przenoszona do tabeli historii.

Baza danych

Przygotowanie mailingu i jego obsługa wymaga skorzystania z następujących tabel bazy SQL

  • _task – tabela zawiera listę powiadomień do wysłania
  • _send – tabela zawiera listę kampanii mailingowych, jeden rekord to jedna kampania, dla której jest wiele wysyłek w tabeli _task
  • dpdok – tabela zawiera szablon wiadomości e-mai jaki ma być rozesłany w danej kampanii.
  • _historia – tabela zawiera rekordy kopiowane z tabeli _task po wysłaniu wiadomości e-mail

Relację pomiędzy tabelami zapewnia informacja numer referencyjny – kolumna REFNO

Tabela _send

  • [REFNO] – unikalny numer referencyjny kampanii mailingowej
  • [REFNO_TEMPLATE] – numer referencyjny szablonu wysyłki, zgodny z numerem referencyjnym tabeli dpdok
  • [REFNO_GROUP]
  • [SUBJECT] – tytuł kampanii mailingowej
  • [MAIL_CONTENT] – treść wiadomości jaka jest rozsyłana w kampanii mailongowej, jest kopiowana z szablonu (dpdok) w momencie generowania mailingu. Zachowanie treści szablonu pozwala na późniejszą weryfikację lub re-mailing z identyczną treścią, nawet gdy zostanie zmieniony (zmodyfikowany) szablon wiadomości dpdok.
  • [REPLY_TO] – adres mailowy zwrotny
  • [REPEAT] – oznaczenie czy wiadomość ma być ponownie wysyłana w razie niepowodzenia.
  • [ACH] – znacznik 1 pozycja zatwierdzona (do realizacji) znak X oznacza rekord usunięty
  • [PRX] – znacznik EML dotyczy zadań wysyłki mailingowej.
  • [ROLASYS] – oznaczenie roli systemowej, która realizuje zadania wysyłki.
  • [ODDZIAL] – symbol oddziału użytkownika dokonującego zapis
  • [MPK] – symbol MPK użytkownika dokonującego zapis
  • [DDOWOD] – data dodania do bazy
  • [KIEDY] – data i czas utworzenia rekordu
  • [LOGIN] – nazwa użytkownika dokonującego zapis
  • [STAMP] – identyfikator wiersza i jego zapisu / modyfikacji
  • [KONTO_MAIL] – kod adresu mailowy z szablonu EML tabela x_skorowidze

Tabela _task

  • [ROLASYS] – oznaczenie roli systemowej, która realizuje zadania wysyłki.
  • [PRX] – oznaczenie rodzaju powiadomienia, znacznik EML – wysłać e-mail
  • [REFNO] – unikalny numer referencyjny wysyłki
  • [TEMAT] – tytuł wiadomości kopiowany z tabeli _send, ale po personalizacji danych – podstawienie zmiennych dla danego użytkownika
  • [TRESC] – treść wiadomości kopiowana z tabeli _send, ale po personalizacji danych – podstawienie zmiennych dla danego użytkownika
  • [EMAIL] – adres e-mial adresta
  • [STATUS] – status wysyłki
  • [LOGIN] – nazwa użytkownika dokonującego zapis
  • [KIEDY] – data i czas utworzenia rekordu
  • [KONTOMAIL]
  • [REFNO_SEND] – numer referencyjny wysyłki (refno z tabeli _send)
  • [REPEAT] – oznaczenie czy powtórzyć próbę wysyłki w przypadku błędu dostarczenia wiadomości e-mail
  • [NRIDODN] – identyfikator kontrahenta z tabeli KNKON
  • [NRIDCRM] – identyfikator kontrahenta z tabeli KNCRM
  • [DW] – adres mailowy, na który ma być wysłana kopia wiadomości e-mail
  • [UDW] –  ukryty adres mailowy odbiorcy, do którego ma zostać wysłana kopia wiadomości e-mail
  • [ZALACZNIKI] – pełna ścieżka dostępu do pliku, który ma być wysłany jako załącznik wiadomości e-mail, np. D:\IIS_DEMO\http_studiosystemtest_demo_softwarestudio_com_pl\App_Mail\6365941865396514\6365941865396514.pdf

Tabela dpdok

  • [ROLASYS] – oznaczenie roli systemowej, która realizuje zadania wysyłki.
  • [ACH]  – znacznik 1 pozycja zatwierdzona (do realizacji) znak X oznacza rekord usunięty
  • [PRX]  – oznaczenie rodzaju powiadomienia, znacznik EML – wysłać e-mail
  • [TYPDOK] – oznaczenie rodzaju dokumentu np. magazynowy, handlowych, reklamacje itp.
  • [STATUS] – status zapisu
  • [REFNO] – unikalny numer referencyjny rekordu
  • [NRIDODN]  – identyfikator kontrahenta z tabeli KNKON
  • [NRIDKON] – identyfikator kontrahenta z tabeli KNKON
  • [NRIDCRM]  – identyfikator kontrahenta z tabeli KNCRM
  • [NRIDPRA]  – identyfikator pracownika z tabeli KNKON
  • [NRDOKUMENTU] – numer dokumentu
  • [NRDOWODU] – numer dowodu
  • [STAMP]  – identyfikator wiersza i jego zapisu / modyfikacji
  • [ODDZIAL]  – symbol oddziału użytkownika dokonującego zapis
  • [MAGAZYN] – symbol magazynu użytkownika dokonującego zapis
  • [MPK] – symbol MPK użytkownika dokonującego zapis
  • [KIEDY] – data i czas utworzenia rekordu
  • [DDOWOD]  – data dodania do bazy
  • [DSKAN]  – data skanowania załączników
  • [TERMIN] – termin realziacji
  • [DPRZYJECIA]
  • [RODZAJDOKUMENTU]
  • [TYPDOKUMENTU]
  • [KORESPONDENCJA]
  • [NRSPRAWY]
  • [NRLISTU]
  • [TYTUL] – tytuł dokumentu
  • [TAGI] – tagi opisujące dokument
  • [ADRES]
  • [PRIORYTET]
  • [LOGIN]
  • [UWAGI]
  • [NRIDFLD]
  • [NRIDASM]
  • [NRIDWMS]

 

Tabela _historia

  • [AKTYWNE] – oznaczenie czy dany rekord jest aktywny, domyślnie TAK
  • [ACH]  znacznik 1 pozycja zatwierdzona (do realizacji) znak X oznacza rekord usunięty
  • [PRX]
  • [KIEDY]
  • [LOGIN]
  • [STAMP]
  • [REFNO]
  • [KTRHID]
  • [NUMERDOK]
  • [TYTUL]
  • [TYPDOK]
  • [MAGAZYN]
  • [UWAGI]
  • [IP]
  • [HOST]
  • [DZIEN]
  • [DDOWOD]
  • [MPK]