Přeskočit na hlavní obsah

Odesílání dokladů e-mailem - REST API

Jak pomocí REST API a SMTP serveru odesílat doklady?

Autor: Petr Pech

Přes REST API — stejně jako přes webové rozhraní — lze odeslat doklad e-mailem. Aby odesílání fungovalo, musí být na serveru nastavené připojení k SMTP serveru.


Nastavení SMTP serveru

Do souboru flexibee-server.xml (na Linuxu v /etc/flexibee/flexibee-server.xml, kde jej najít) doplňte tyto hodnoty:

Hodnota

Význam

smtp.host

Adresa SMTP serveru, typicky localhost, běží-li SMTP server na stejném stroji jako ABRA Flexi Server.

smtp.port

Port SMTP serveru, typicky 25. Nepovinné.

smtp.defaultFrom

Výchozí e-mailová adresa odesílatele.

smtp.encryption

Režim zabezpečení SMTP komunikace — hodnoty najdete v tabulce níže.

smtp.auth.user

Přihlašovací jméno, pokud SMTP server vyžaduje autentizaci. Nepovinné.

smtp.auth.password

Heslo. Nepovinné.

Hodnoty parametru smtp.encryption:

none

Bez zabezpečení (výchozí).

starttls

Zabezpečená komunikace, pokud ji server podporuje (příkaz STARTTLS).

tls

Vyžadované přepnutí na zabezpečenou komunikaci (TLS).

ssl

Plně zabezpečená komunikace (SSL).

💡 V cloudu, kde k souboru flexibee-server.xml nemáte přístup, lze SMTP nastavit i přes REST API pro jednotlivou firmu — viz Nastavení SMTP serveru - API.


Odeslání dokladu

Na správně nakonfigurovaném serveru znamená odeslání dokladu volání metodou PUT nebo POST na subevidenci odeslani-dokladu:

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

Parametr

Význam

to=email@example.com

Adresát; parametr lze uvést vícekrát.

cc=email@example.com

Kopie; parametr lze uvést vícekrát.

subject=Doklad ABC

Předmět e-mailu.

sablona=code:SABLONA

Uživatelská e-mailová šablona — identifikátor záznamu z evidence sablona-mail.

report-lang=en

Jazyk PDF přílohy. Není-li uveden, použije se výchozí jazyk e-mailu.

Musí být zadán alespoň jeden adresát nebo adresát na kopii — jinak vrací API 400 s kódem recipientIsMissing a hlášením Musí být uveden alespoň jeden adresát. Jako odesílatel (hlavička From) bude uveden aktuální uživatel, pod kterým odeslání provádíte, případně výchozí hodnota z konfigurace.

V těle požadavku může být tělo e-mailu v textové podobě kódované v UTF-8. Součástí e-mailu bude v příloze PDF a případně i ISDOC podoba dokladu.

ℹ️ Je nutné uvést buď příponu odeslani-dokladu.xml, nebo hlavičku Accept: text/xml. Parametry v URL musí být správně zakódovány — všimněte si zejména předmětu v příkladu výše.

Odkud se bere text e-mailu

Předmět i tělo se hledají v tomto pořadí — použije se první zdroj, který má neprázdný text:

  1. Parametr subject, respektive tělo požadavku. Text složený jen z bílých znaků se nepoužije.

  2. Šablona z parametru sablona.

  3. Šablona z typu dokladu.

  4. Text z typu dokladu.

  5. Výchozí šablona pro danou evidenci.

  6. Výchozí systémový text.


Přizpůsobování e-mailových zpráv

Zasílané zprávy lze upravit dvěma způsoby:

  • Přizpůsobení textu — v typu dokladu lze nastavit výchozí text, který se pro zasílání dokladů použije. Uživatelské šablony spravuje evidence sablona-mail, viz Uživatelské e-mailové šablony v REST API.

  • Přizpůsobení šablony — popsáno v následující sekci.


Přizpůsobení šablony e-mailové zprávy

Základem je zapnutí vývojářského adresáře (developerDirectory). Kompletní popis je delší, nás zajímá jen jeho nastavení a následná úprava šablony:

  1. Do souboru flexibee-server.xml (kde jej najít?) přidejte záznam s adresářem, kde budou data pro modifikaci: <entry key="developerDirectory">/devel/</entry>

  2. Restartujte ABRA Flexi.

  3. V daném adresáři vytvořte adresář default — tzv. výchozí instanci, jiná hodnota má smysl pouze v cloudovém provozu — a v něm adresář s identifikátorem firmy, který je stejný jako ve webovém rozhraní. Případně lze použít speciální identifikátor !all.

  4. Nakopírujte ukázkové skripty do $developerDirectory/$instance/!all; podstatné jsou soubory z adresáře mail-templates.


Automatické odeslání dokladů

ABRA Flexi podporuje automatické odeslání všech dosud neodeslaných dokladů, které jsou označené k odeslání — tedy těch, které mají ve vlastnosti stavMailK hodnotu stavMail.odeslat (v aplikaci pole Stav mailu = Odeslat). Další možné hodnoty jsou stavMail.neodesilat a stavMail.odeslano.

Odeslání lze vynutit voláním:

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

🚨 Toto volání rozešle e-maily na všechny doklady označené k odeslání naráz, takže si předem ověřte, kolika dokladů se to týká — například dotazem /c/{firma}/faktura-vydana.json?detail=custom:kod,stavMailK&filter=stavMailK%20eq%20'stavMail.odeslat'.

Místo demo zadejte systémový název své firmy — uvidíte jej například v URL po přihlášení do webového rozhraní. Provozujete-li Flexi na vlastním serveru, uveďte místo demo.flexibee.eu adresu svého serveru.


Související

Dostali jste odpověď na svou otázku?