Přeskočit na hlavní obsah
Všechny sbírkyDokumentace REST APIPokročilé příkazy
Odesílání dokladů e-mailem - REST API
Odesílání dokladů e-mailem - REST API

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

Petr Pech avatar
Autor: Petr Pech
Aktualizováno před více než 2 lety

Přes REST API (i přes webové rozhraní) lze odeslat doklad e-mailem.

Aby bylo odesílání funkční, je třeba nastavit připojení k SMTP serveru.

Do souboru flexibee-server.xml (na Linuxu v /etc/flexibee/flexibee-server.xml) doplňte následující hodnoty:

smtp.host

Adresa SMTP serveru, typicky localhost (SMTP server běží 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:

nonebez zabezpečení (výchozí)starttlszabezpečená komunikace, pokud ji server podporuje (příkaz STARTTLS)tlsvyžadované přepnutí na zabezpečenou komunikaci (TLS)sslplně zabezpečená komunikace (SSL)

smtp.auth.user

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

smtp.auth.password

Heslo; nepovinné

Poznámka:

Pokud potřebujete nějaké další konfigurační hodnoty, např. pro SSL, dejte nám vědět.

Odeslání dokladu přes REST API na správně nakonfigurovaném serveru pak znamená PUT (resp. POST) na URL /c/firma/faktura-vydana/1/odeslani-dokladu.xml s následujícími parametry:

?to=email@example.com

Adresát; parametrů to lze uvést více

?cc=email@example.com

Kopie; parametrů cc lze uvést více

?subject=Doklad ABC

Předmět e-mailu

?sablona=code:SABLONA

&report-lang=en

Jazyk PDF přílohy

Musí být zadán alespoň jeden adresát nebo adresát na kopii, předmět je také povinný. 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 musí být tělo e-mailu v textové podobě kódované v UTF-8. E-mail bude odeslán v textové i HTML variantě podle šablony, která je momentálně součástí ABRA Flexi. Do budoucna plánujeme možnost uživatelských šablon.

Jako součást e-mailu bude v příloze odeslána PDF a případně i ISDOC podoba dokladu.

Kompletní příklad odeslání dokladu z příkazové řádky použitím nástroje 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šimněte si zejm. předmětu – jako obvykle, parametry v URL musí být správně zakódovány.

Poznámka:

Je nutné uvést buď odeslani-dokladu.xml nebo hlavičku Accept: text/xml.

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

V ABRA Flexi lze upravovat zasílané zprávy takto:

  • Přizpůsobení textu – lze upravit v typu dokladu výchozí text, který bude použit pro zasílání dokladů.

  • Přizpůsobení šablony

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

Základem je zapnutí vývojářského adresáře (developerDirectory).

Kompletní popis je delší, ale nás zajímá pouze část s nastavením a následně úpravou šablony:

  1. Je potřeba upravit flexibee-server.xml (kde jej najít?) a přidat tam<entry key="developerDirectory">/devel/</entry>CopyMísto /devel/ dejte adresář, kde budou data pro modifikaci (např. C:ProjektyFlexiBee).

  2. Restartovat ABRA Flexi

  3. V daném adresáři je potřeba vytvořit adresář „default“ (tzv. výchozí instance – jiná hodnota má smysl pouze v cloudovém provozu) a v něm adresář s identifikátorem firmy (ten je stejný jako přes webové rozhraní). Případně je možné použít speciální identifikátor „!all“ (bez uvozovek).

  4. Nakopírovat ukázkové skripty do $developerDirectory/$instance/!all a pro nás jsou důležité soubory z adresáře mail-templates.

Automatické odeslání dokladů

ABRA Flexi podporuje automatické odeslání všech neodeslaných dokladů, které jsou označené k odeslání. Jsou to tedy ty doklady, které mají v poli Stav Mailu zadanou hodnotu "Odeslat".

Odeslání lze vynutit příkazem:

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

Místo demo je potřeba zadat název Vaší instance v cloudu. Pokud provozujete Flexi na vlastním serveru, tak místo demo.flexibee.eu je nutné vyplnit adresu Vašeho serveru. Místo firma je potřeba zadat systémový název Vaší firmy ve Flexi. Ten můžete vidět například v URL při přihlášení do webového rozhraní.

__________________________________________________________________

Dostali jste odpověď na svou otázku?