Preskoči na glavno vsebino

Odosielanie dokladov e-mailom - REST API

Ako pomocou REST API a SMTP servera odosielať doklady?

Avtor: Petr Pech

Cez REST API — rovnako ako cez webové rozhranie — je možné odoslať doklad e-mailom. Aby odosielanie fungovalo, musí byť na serveri nastavené pripojenie k SMTP serveru.


Nastavenie SMTP servera

Do súboru flexibee-server.xml (na Linuxe v /etc/flexibee/flexibee-server.xml, kde ho nájsť) doplňte tieto hodnoty:

Hodnota

Význam

smtp.host

Adresa SMTP servera, typicky localhost, ak SMTP server beží na rovnakom stroji ako ABRA Flexi Server.

smtp.port

Port SMTP servera, typicky 25. Nepovinné.

smtp.defaultFrom

Predvolená e-mailová adresa odosielateľa.

smtp.encryption

Režim zabezpečenia SMTP komunikácie — hodnoty nájdete v tabuľke nižšie.

smtp.auth.user

Prihlasovacie meno, ak SMTP server vyžaduje autentizáciu. Nepovinné.

smtp.auth.password

Heslo. Nepovinné.

Hodnoty parametra smtp.encryption:

none

Bez zabezpečenia (predvolené).

starttls

Zabezpečená komunikácia, ak ju server podporuje (príkaz STARTTLS).

tls

Vyžadované prepnutie na zabezpečenú komunikáciu (TLS).

ssl

Plne zabezpečená komunikácia (SSL).

💡 V cloude, kde k súboru flexibee-server.xml nemáte prístup, možno SMTP nastaviť aj cez REST API pre jednotlivú firmu — pozrite Nastavenie SMTP servera - API.


Odoslanie dokladu

Na správne nakonfigurovanom serveri znamená odoslanie dokladu volanie metódou PUT alebo POST na subevidenciu odeslani-dokladu:

PUT https://demo.flexibee.eu/c/demo/faktura-vydana/1/odeslani-dokladu.xml?to=email@example.com&subject=Doklad%20ABC

Parameter

Význam

to=email@example.com

Adresát; parameter možno uviesť viackrát.

cc=email@example.com

Kópia; parameter možno uviesť viackrát.

subject=Doklad ABC

Predmet e-mailu.

sablona=code:SABLONA

Používateľská e-mailová šablóna — identifikátor záznamu z evidencie sablona-mail.

report-lang=en

Jazyk PDF prílohy. Ak nie je uvedený, použije sa predvolený jazyk e-mailu.

Musí byť zadaný aspoň jeden adresát alebo adresát v kópii — inak API vráti 400 s kódom recipientIsMissing a hlásením Musí byť uvedený aspoň jeden adresát. Ako odosielateľ (hlavička From) bude uvedený aktuálny používateľ, pod ktorým odoslanie vykonávate, prípadne predvolená hodnota z konfigurácie.

V tele požiadavky môže byť telo e-mailu v textovej podobe kódované v UTF-8. Súčasťou e-mailu bude v prílohe PDF a prípadne aj ISDOC podoba dokladu.

ℹ️ Je potrebné uviesť buď príponu odeslani-dokladu.xml, alebo hlavičku Accept: text/xml. Parametre v URL musia byť správne zakódované — všimnite si najmä predmet v príklade vyššie.

Odkiaľ sa berie text e-mailu

Predmet aj telo sa hľadajú v tomto poradí — použije sa prvý zdroj, ktorý má neprázdny text:

  1. Parameter subject, respektíve telo požiadavky. Text zložený len z bielych znakov sa nepoužije.

  2. Šablóna z parametra sablona.

  3. Šablóna z typu dokladu.

  4. Text z typu dokladu.

  5. Predvolená šablóna pre danú evidenciu.

  6. Predvolený systémový text.


Prispôsobovanie e-mailových správ

Zasielané správy možno upraviť dvoma spôsobmi:

  • Prispôsobenie textu — v type dokladu možno nastaviť predvolený text, ktorý sa pre zasielanie dokladov použije. Používateľské šablóny spravuje evidencia sablona-mail, pozrite Používateľské e-mailové šablóny v REST API.

  • Prispôsobenie šablóny — popísané v nasledujúcej sekcii.


Prispôsobenie šablóny e-mailovej správy

Základom je zapnutie vývojárskeho adresára (developerDirectory). Kompletný popis je dlhší, nás zaujíma len jeho nastavenie a následná úprava šablóny:

  1. Do súboru flexibee-server.xml (kde ho nájsť?) pridajte záznam s adresárom, kde budú dáta pre modifikáciu: <entry key="developerDirectory">/devel/</entry>

  2. Reštartujte ABRA Flexi.

  3. V danom adresári vytvorte adresár default — tzv. predvolenú inštanciu, iná hodnota má zmysel iba v cloudovej prevádzke — a v ňom adresár s identifikátorom firmy, ktorý je rovnaký ako vo webovom rozhraní. Prípadne možno použiť špeciálny identifikátor !all.

  4. Skopírujte ukážkové skripty do $developerDirectory/$instance/!all; podstatné sú súbory z adresára mail-templates.


Automatické odoslanie dokladov

ABRA Flexi podporuje automatické odoslanie všetkých doposiaľ neodoslaných dokladov, ktoré sú označené na odoslanie — teda tých, ktoré majú vo vlastnosti stavMailK hodnotu stavMail.odeslat (v aplikácii pole Stav mailu = Odeslat). Ďalšie možné hodnoty sú stavMail.neodesilat a stavMail.odeslano.

Odoslanie možno vynútiť volaním:

PUT https://demo.flexibee.eu/c/demo/faktura-vydana/automaticky-odeslat-neodeslane
Accept: application/xml

🚨 Toto volanie rozošle e-maily na všetky doklady označené na odoslanie naraz, preto si vopred overte, koľkých dokladov sa to týka — napríklad dotazom /c/{firma}/faktura-vydana.json?detail=custom:kod,stavMailK&filter=stavMailK%20eq%20'stavMail.odeslat'.

Namiesto demo zadajte systémový názov svojej firmy — uvidíte ho napríklad v URL po prihlásení do webového rozhrania. Ak prevádzkujete Flexi na vlastnom serveri, uveďte namiesto demo.flexibee.eu adresu svojho servera.


Súvisiace

Ste s tem dobili odgovor na svoje vprašanje?