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 (aj cez webové rozhranie) je možné odoslať doklad e-mailom.

Aby bolo odosielanie funkčné, je potrebné nastaviť pripojenie k SMTP serveru.

Do súboru flexibee-server.xml (na Linuxe v /etc/flexibee/flexibee-server.xml) doplňte nasledujúce hodnoty:

smtp.host

Adresa SMTP servera, typicky localhost (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:

nonebez zabezpečenia (predvolené)starttlszabezpečená komunikácia, ak ju server podporuje (príkaz STARTTLS)tlspožadované prepnutie na zabezpečenú komunikáciu (TLS)sslplne zabezpečená komunikácia (SSL)

smtp.auth.user

Prihlasovacie meno, ak SMTP server vyžaduje autentifikáciu; nepovinné

smtp.auth.password

Heslo; nepovinné

Poznámka:

Ak potrebujete ďalšie konfiguračné hodnoty, napr. pre SSL, dajte nám vedieť.

Odoslanie dokladu cez REST API na správne nakonfigurovanom serveri znamená PUT (resp. POST) na URL /c/firma/faktura-vydana/1/odeslani-dokladu.xml s nasledujúcimi parametrami:

?to=email@example.com

Adresát; parametrov to možno uviesť viac

?cc=email@example.com

Kópia; parametrov cc možno uviesť viac

?subject=Doklad ABC

Predmet e-mailu

?sablona=code:SABLONA

&report-lang=en

Jazyk PDF prílohy

Musí byť zadaný aspoň jeden adresát alebo adresát v kópii, predmet je tiež povinný. Ako odosielateľ (hlavička From) bude uvedený aktuálny používateľ, pod ktorým odosielanie vykonávate, prípadne predvolená hodnota z konfigurácie.

V tele požiadavky musí byť telo e-mailu v textovej podobe kódované v UTF-8. E-mail bude odoslaný v textovej aj HTML variante podľa šablóny, ktorá je momentálne súčasťou ABRA Flexi. Do budúcnosti plánujeme možnosť používateľských šablón.

Ako súčasť e-mailu bude v prílohe odoslaná PDF a prípadne aj ISDOC podoba dokladu.

Kompletný príklad odoslania dokladu z príkazového riadka pomocou nástroja curl:

curl -k -L -u uzivatel:heslo -X PUT -d 'Dobrý den, zasíláme Vám slíbený dokument. S pozdravem ...' "https://localhost:5434/c/firma/faktura-vydana/1/odeslani-dokladu.xml?to=email@example.com&subject=Doklad%20ABC"

Všimnite si najmä predmet – ako zvyčajne, parametre v URL musia byť správne zakódované.

Poznámka:

Je potrebné uviesť buď odeslani-dokladu.xml alebo hlavičku Accept: text/xml.

Prispôsobovanie e-mailových správ

V ABRA Flexi je možné upravovať odosielané správy takto:

  • Prispôsobenie textu – v type dokladu je možné upraviť predvolený text, ktorý sa použije pri zasielaní dokladov.

  • Prispôsobenie šablóny

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

Základom je zapnutie vývojárskeho adresára (developerDirectory).

Kompletný popis je dlhší, ale nás zaujíma iba časť s nastavením a následnou úpravou šablóny:

  1. Je potrebné upraviť flexibee-server.xml (kde ho nájsť?) a pridať tam<entry key="developerDirectory">/devel/</entry>CopyMiesto /devel/ zadajte adresár, kde budú dáta pre modifikáciu (napr. C:ProjektyFlexiBee).

  2. Reštartovať ABRA Flexi

  3. V danom adresári je potrebné vytvoriť adresár „default" (tzv. predvolená inštancia – iná hodnota má zmysel iba v cloudovej prevádzke) a v ňom adresár s identifikátorom firmy (ten je rovnaký ako cez webové rozhranie). Prípadne je možné použiť špeciálny identifikátor „!all" (bez úvodzoviek).

  4. Skopírovať ukážkové skripty do $developerDirectory/$instance/!all a pre nás sú dôležité súbory z adresára mail-templates.

Automatické odoslanie dokladov

ABRA Flexi podporuje automatické odoslanie všetkých neodoslaných dokladov, ktoré sú označené na odoslanie. Sú to teda tie doklady, ktoré majú v poli Stav Mailu zadanú hodnotu „Odoslať".

Odoslanie je možné vynútiť príkazom:

curl -H "Accept: application/xml" -u winstrom:winstrom -X PUT -L https://demo.flexibee.eu:5434/c/demo/faktura-vydana/automaticky-odeslat-neodeslane

Namiesto demo je potrebné zadať názov Vašej inštancie v cloude. Ak prevádzkujete Flexi na vlastnom serveri, tak namiesto demo.flexibee.eu je potrebné vyplniť adresu Vášho servera. Namiesto firma je potrebné zadať systémový názov Vašej firmy vo Flexi. Ten môžete vidieť napríklad v URL pri prihlásení do webového rozhrania.

__________________________________________________________________

Ste s tem dobili odgovor na svoje vprašanje?