Poczta > Szablony wiadomości e-mail

Drukuj

Szablony wiadomości e-mail

System Obieg Dokumentów posiada mechanizm umożliwiający wykorzystanie szablonów HTML/Flexy dla wysyłanych wiadomości email.

 

Mechanizm szablonów dla wiadomości email funkcjonuje w oparciu o bibliotekę Flexy. Umożliwia on wykorzystanie podczas tworzenia wiadomości wybranego, przygotowanego wcześniej szablonu - przypisanego do danego konta pocztowego (domyślnie), bądź wybranego ręcznie na formularzu wiadomości email. Szablon to w zasadzie plik HTML/Flexy zawierający dowolne elementy (np. tabele, obrazki), style (np. tło, rodzaj i wielkość czcionki, itd.) oraz predefiniowane zmienne.

 

Jeśli podczas tworzenia wiadomości, na formularzu dokonana zostanie zmiana konta, z którego wiadomość zostanie wysłana, bądź bezpośrednio wybrany zostanie jeden z dostępnych szablonów, treść wiadomości zostanie przeładowana z zastosowaniem właściwego szablonu zachowując prawidłową stopkę, cytowaną wiadomość (np. dla odpowiedzi, podczas przekazywania wiadomości), oraz wprowadzoną treść.

 

img_sod_295

 

Tworzenie nowego szablonu

Wykorzystywane w systemie szablony przechowywane są po otworzeniu aplikacji Poczta > Konfiguracja > przycisk Szablony wiadomości. Do okienka można wgrać własne szablony za pomocą przycisku Dodaj lub metodą "przeciągnij i upuść".

Rozpoznawane w systemie szablony mają rozszerzenie .tpl i powinny być zapisane w kodowaniu UTF-8.

 

img_sod_647

 

W systemie SOD szablony są identyfikowane nazwami plików z obciętym rozszerzeniem (np. plik nowy_szablon.tpl będzie wyświetlany na liście wyboru szablonu pod nazwą nowy_szablon).

 

Szablony są parsowane przez silnik Flexy, a ich wynikowa zawartość traktowana jest jako HTML.

 

W szablonach można wykorzystywać także predefiniowane zmienne, których wartość jest generowana automatycznie w zależności od kontekstu użycia szablonu:

 

text - treść wiadomości wprowadzona przez użytkownika

 

footer - stopka wiadomości, właściwa dla danego konta, bądź użytkownika jeśli stopka dla konta nie została określona

 

quoted - treść cytowanej wiadomości wraz z nagłówkiem - w przypadku tworzenia odpowiedzi lub przekazywania wiadomości

 

W każdej wersji systemu SOD instalowany jest domyślnie wykorzystywany szablon o nazwie default. Nie jest zalecana modyfikacja tego pliku, ani jego usuwanie. Domyślny szablon jest używany w przypadku braku możliwości użycia szablonu oczekiwanego w danym kontekście (np. brak właściwego pliku, brak uprawnień do pliku). Zmiany powinny być wprowadzane na zasadzie dodawania nowych szablonów. Możliwe jest wskazanie innego szablonu domyślnego poprzez modyfikację stałej EMAIL_DEFAULT_TEMPLATE w pliku konfiguracyjnym config.inc:

 

define('EMAIL_DEFAULT_TEMPLATE', 'default');

 

Aby być pewnym, że ramki tabeli nie będą widoczne podczas wysyłania e-maili warto pamiętać o ustawieniu jej parametru border na 0:

<table border="0">....</table>

 

Linkowanie grafiki

W szablonie można oczywiście umieszczać elementy graficzne (tag IMG) bądź też określać w definicji stylów obrazy wykorzystywane jako tło. Należy jednak pamiętać, że elementy te muszą być linkowane jako zasoby zewnętrzne, tzn. nie przesyłane wraz z wiadomością. Grafikę najczęściej publikuje się na serwerze obsługującym witrynę internetową.

Elementy graficzne można także w formie kodowania base64

 

<img src="data:image/png;base64,iVBORw0KGgoAA......." />)

 

Wykorzystanie szablonu w korespondencji

Dla każdego z kont pocztowych możliwe jest niezależne określenie właściwego szablonu, który będzie wykorzystywany podczas tworzenia wiadomości.

 

formularz konfiguracji konta >> zakładka Ogólne >> pole Szablon wiadomości

 

Domyślnie, dla nowo konfigurowanych kont automatycznie wybierany jest szablon określony we wspomnianej stałej EMAIL_DEFAULT_TEMPLATE.

 

W przypadku wysyłania bardziej specyficznych wiadomości (np. ofert), gdzie oczekiwane jest zawarcie bardziej szczegółowych, statycznych informacji, możliwe jest wybranie szablonu już bezpośrednio na formularzu tworzonej wiadomości, na zakładce Opcje. Określony w ten sposób szablon ma wyższy priorytet, niż domyślny szablon przypisany do konta, więc w tym momencie kolejne zmiany w polu Od będą powodowały jedynie aktualizację stopki.

 

Przykładowy szablon HTML/Flexy

Poniżej zamieszczony został kod szablonu widocznego.

 

Deklaracje !important przy rozmiarze czcionki i rodzaju czcionki są konieczne dla nadpisania domyślnych ustawień edytora wysiwyg.

 

<body>

<head>

<style type="text/css">

    body {

        font-size: 12pt !important;

        font-family: calibri, arial, sans-serif !important;

        color: #000;

        background: #fff;

        padding: 4px;

    }

    table, td {

        font-family: calibri, arial, sans-serif;

        border-style: none;

        padding: 0px;

        margin: 0px;

    }

    td {

        vertical-align: top;

    }

    img {

        padding: 0px;

        border: 0px;

    }

    .tmain {

        width: 100%;

    }

    .tmain .leftCol {

        width: 200px;

        color: #999;

        border-right: 1px solid #bbb;

    }

    .tmain .rightCol {

        padding: 0px 12px;

    }

    .footer {

        border-top: 1px solid #bbb;

        margin-top: 12px;

        padding-top: 12px;

    }

    .account {

        color: #777;

    }

    .quoted {

        padding: 0px 10px;

    }

    .quoted blockquote {

        border: 2px none #3D8BFF;

        border-style: none solid;

        padding: 0px 10px;

        margin: 0px;

    }

</style>

</head>

<table class="tmain">

    <tr>

        <td class="leftCol">

            <div class="company">

                <img src="https://symfonia.pl/img/Logo_White.png"><br>

                System obiegu dokumentów,<br>workflow i CRM

            </div>

        </td>

        <td class="rightCol">

            

            {text:h}

            

            {if:footer}

            <div class="footer account">

                {footer:h}

            </div>

            {end:}

        </td>

    </tr>

</table>

 

{if:quoted}

    <br><br>

    <div class="quoted">

    {quoted:h}

    </div>

{end:}

 

</body>

 

Wstawianie danych z bazy do szablonu maila

Przydatną opcją dla dużych organizacji jest pobieranie automatyczne danych do stopki z danych pracownika pochodzących ze struktury organizacyjnej i konta użytkownika. Przykładowe zapytania poniżej:

<div class="imie">

      {sql_query(#SELECT u.firnam || ' ' || u.lasnam  AS line_1 FROM organization_units o LEFT JOIN users_link_org_units ulo ON o.orunid = ulo.orunid LEFT JOIN users u ON u.usr_id = ulo.usr_id WHERE u.usr_id = {%1}#,LOGGED_USR_ID)}<br></div>

      <br />

       <div class="stanowisko">

      {sql_query(#SELECT o.ndenam AS line_2 FROM organization_units o LEFT JOIN users_link_org_units ulo ON o.orunid = ulo.orunid LEFT JOIN users u ON u.usr_id = ulo.usr_id WHERE u.usr_id = {%1}#,LOGGED_USR_ID)}<br/>

       <br/>

       {sql_query(#SELECT CASE WHEN u.iphone IS NOT NULL THEN 'phone  ' || u.iphone ELSE ''END AS line_3 FROM organization_units o LEFT JOIN users_link_org_units ulo ON o.orunid = ulo.orunid LEFT JOIN users u ON u.usr_id = ulo.usr_id WHERE u.usr_id = {%1}#,LOGGED_USR_ID)}<br/>

       {sql_query(#SELECT CASE WHEN u.phone_  IS NOT NULL THEN 'mobile ' || u.phone_  ELSE ''END AS line_4 FROM organization_units o LEFT JOIN users_link_org_units ulo ON o.orunid = ulo.orunid LEFT JOIN users u ON u.usr_id = ulo.usr_id WHERE u.usr_id = {%1}#,LOGGED_USR_ID)}<br/>

      <u>{sql_query(#SELECT CASE WHEN e_mail IS NOT NULL THEN e_mail  ELSE ''END AS line_5 FROM organization_units o LEFT JOIN users_link_org_units ulo ON o.orunid = ulo.orunid LEFT JOIN users u ON u.usr_id = ulo.usr_id WHERE u.usr_id = {%1}#,LOGGED_USR_ID)}</u><br/>

       

<br >

</div>

 

Drukowanie szablonu maila

Za drukowanie mail odpowiada plik email.tpl znajdujący się w /public_html/apps/edokumenty/var/tpl w przypadku problemów z drukowaniem, np czcionka jest zbyt mała należy zmodyfikować zawartość pliki modyfikując linię:

<td><b>{labelTo}:</b></td>

na

<td><b>{labelTo}:</b></td>

<td><p style="width: 800px; word-wrap:break-word;">{to}</p></td>

 

Lub przekopiować szablon z tpl_default do tpl.