Skip to main content
All CollectionsDokumentácia REST APIPokročilé príkazy
Odosielanie dokumentov e-mailom - REST API
Odosielanie dokumentov e-mailom - REST API

Ako odosielať dokumenty pomocou rozhrania REST API a servera SMTP?

Lenka Haringerová avatar
Written by Lenka Haringerová
Updated over 3 years ago

Dokument môžete odoslať e-mailom prostredníctvom rozhrania REST API (aj cez webové rozhranie). Aby to fungovalo, musíte nastaviť pripojenie k serveru SMTP. Pridajte nasledujúce hodnoty do súboru flexibee-server.xml (v Linuxe do /etc/flexibee/flexibee-server.xml):

smtp.host

Adresa servera SMTP, zvyčajne localhost (server SMTP beží na rovnakom počítači ako server ABRA Flexi)

smtp.port

Port servera SMTP, zvyčajne 25; nepovinné

smtp.defaultFrom

Predvolená e-mailová adresa odosielateľa

smtp.encryption

Režim zabezpečenia komunikácie SMTP:

nosecurity (predvolené)starttlsecurekomunikácia, ak ju server podporuje (príkaz STARTTLS)tlsrequiredprepnutie na zabezpečenú komunikáciu (TLS)ssecurekomunikácia (SSL)

smtp.auth.user

Prihlasovacie meno, ak server SMTP vyžaduje overenie; nepovinné

smtp.auth.password

Heslo; nepovinné

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

Odoslanie dokumentu prostredníctvom rozhrania REST API na správne nakonfigurovanom serveri potom znamená príkaz PUT (alebo POST) na adresu URL /c/company/invoice-issued/1/send-document.xml s nasledujúcimi parametrami:

?to=email@example.com

Príjemca; možno zadať viac parametrov

?cc=email@example.com

Kopírovať; možno zadať viacero parametrov cc

?subject=Document ABC

Predmet e-mailu

Na kópii musí byť uvedený aspoň jeden adresát alebo adresátka; povinný je aj predmet. Odosielateľ (hlavička From) bude aktuálny používateľ, pod ktorým odosielate, alebo predvolená hodnota z konfigurácie.

Telo požiadavky musí byť v textovej forme v kódovaní UTF-8. E-mail sa odošle v textovej a HTML podobe podľa šablóny, ktorá je v súčasnosti súčasťou systému ABRA Flexi. V budúcnosti plánujeme umožniť používanie vlastných šablón.

Súčasťou e-mailu bude príloha vo formáte PDF a prípadne aj vo formáte ISDOC.

Úplný príklad odoslania dokumentu z príkazového riadku pomocou nástroja curl:

curl -k -L -u user:password -X PUT -d 'Dobrý deň, posielame vám sľúbený dokument. S pozdravom ..." "https://localhost:5434/c/firma/faktura-vydana/1/odeslani-dokladu.xml?to=email@example.com&subject=Doklad%20ABC"

Všimnite si riadok predmetu - ako zvyčajne, parametre v adrese URL musia byť správne zakódované.

Poznámka: musíte uviesť buď send-document.xml, alebo hlavičku Accept: text/xml.

Prispôsobenie e-mailových správ

V systéme ABRA Flexi môžete odosielané správy prispôsobiť nasledovne:

  • Prispôsobenie textu - môžete prispôsobiť predvolený text v type dokumentu, ktorý sa použije na odosielanie dokumentov.

  • Prispôsobenie šablóny

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

Základným krokom je povolenie adresára pre vývojárov (developerDirectory). Celý opis je dlhší, ale nás zaujíma len časť o nastavení a následnej úprave šablóny:

  1. Musíte upraviť flexibee-server.xml(kde ho nájsť?) a pridať tam <entry key="developerDirectory">/devel/</entry>CopyNa miesto /devel/ vložte adresár, v ktorom budú dáta na úpravu (napr. C:ProjectsFlexiBee).

  2. Reštartovanie systému ABRA Flexi

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

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

Automatické odosielanie dokumentov

ABRA Flexi podporuje automatické odosielanie všetkých neodoslaných dokumentov, ktoré sú označené na odoslanie.

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¨
Did this answer your question?