SMTP server, přes který firma odesílá e-maily, lze nastavit i přes REST API. Slouží k tomu adresa /c/{firma}/nastaveni/smtp, kde {firma} je databázový identifikátor firmy.
Předpoklady
K nastavení SMTP serveru musí mít uživatel roli ADMIN s právem serveru Přistupovat do všech firem. Totéž nastavení najdete v desktopové aplikaci v menu Nástroje → Nastavení SMTP serveru.
Uložení nastavení
Nastavení uložíte metodou POST nebo PUT s následujícím XML v těle požadavku:
<nastaveni-smtp>
<!-- Adresa serveru -->
<host>vzor.seznam.cz</host>
<!-- Port serveru -->
<port>465</port>
<!-- Uživatel -->
<username>vzor@seznam.cz</username>
<!-- Heslo -->
<password>tajnehelso</password>
<!-- Výchozí odesílatel -->
<defaultFrom>Jméno Odesílatele <vzor@seznam.cz></defaultFrom>
<!-- Zabezpečení spojení -->
<encryptionMode>SSL</encryptionMode>
</nastaveni-smtp>
Položka | Význam |
| Adresa vašeho nebo externího SMTP serveru |
| Port SMTP serveru, například 465 nebo 587 |
| Uživatelské jméno, typicky e-mailová adresa. Uvádí se, pokud SMTP server vyžaduje autentizaci. |
| Heslo k uvedenému uživateli. Uvádí se, pokud SMTP server vyžaduje autentizaci. |
| Výchozí odesílatel. Lze doplnit jméno odesílatele, nebo ponechat pouze e-mailovou adresu. Uvádí-li se i jméno v lomených závorkách, musí být v XML zakódované jako |
| Režim zabezpečení SMTP komunikace, například |
Odpovědí je aktualizace záznamu:
<?xml version="1.0" encoding="utf-8"?>
<winstrom version="1.0">
<success>true</success>
<stats>
<created>0</created>
<updated>1</updated>
<deleted>0</deleted>
<skipped>0</skipped>
<failed>0</failed>
</stats>
<results></results>
</winstrom>
Přečtení nastavení
Uložené nastavení přečtete metodou GET. Namísto hesla získáte pouze příznak o tom, zda je vyplněno:
GET https://demo.flexibee.eu/c/demo/nastaveni/smtp.xml
<?xml version="1.0" ?>
<nastaveni-smtp>
<defaultFrom>vzor@seznam.cz</defaultFrom>
<encryptionMode>SSL</encryptionMode>
<host>smtp.seznam.cz</host>
<password filled="true"></password>
<port>465</port>
<username>vzor@seznam.cz</username>
</nastaveni-smtp>
ℹ️ Pokud SMTP server ve firmě zatím nastavený není, vrátí GET stavový kód 404 se zprávou „Není nastaven SMTP server" a kódem smtpSeverNotSet. Není to chyba volání — jen informace, že konfigurace chybí.
⚠️ Uvádějte příponu .xml nebo .json (případně pošlete hlavičku Accept). Bez ní vrátí server chybu jako HTML stránku a strukturovanou zprávu nezískáte.
Odeslání testovacího e-mailu
Funkčnost nastavení si můžete ověřit odesláním testovacího e-mailu — metodou GET s parametrem testMail, ve kterém uvedete adresu příjemce:
GET https://demo.flexibee.eu/c/demo/nastaveni/smtp.xml?testMail=adresat@testu.cz
V e-mailové schránce příjemce se objeví zpráva:
Předmět: Testovací email
Testovací email ze systému ABRA Flexi.
⚠️ Toto volání skutečně odešle e-mail na zadanou adresu. Používejte jej proto s vlastní adresou, ne s adresou zákazníka.
Neúspěšné požadavky
1. Špatně zadaný port
Při nevalidním portu je odpovědí:
<message>java.lang.IllegalArgumentException: port out of range:4651111</message>
2. Výchozí odesílatel ve špatném tvaru
Pokud defaultFrom neobsahuje platný e-mail, případně jméno není odděleno lomenými závorkami:
<message>Výchozí odesílatel musí obsahovat jednu adresu ve tvaru 'Jméno Příjmení <uzivatel@domena.cz>' nebo 'uzivatel@domena.cz'.</message>
3. Testovací e-mail nelze odeslat
Pokud je SMTP nastaveno chybně a testovací e-mail se neodešle:
<message>com.sun.mail.util.MailConnectException: Couldn't connect to host, port: vzor.seznam.cz, 465; timeout 30000; nested exception is:
java.net.UnknownHostException: vzor.seznam.cz
Couldn't connect to host, port: vzor.seznam.cz, 465; timeout 30000
vzor.seznam.cz</message>
FAQ
Jak SMTP nastavím v aplikaci?
Postup najdete v článcích Nastavení SMTP serveru pro desktopovou aplikaci a Nastavení SMTP serveru ve webovém rozhraní.
Nastavení Google SMTP vrací chybu, co s tím?
Řešení popisují články Nastavení Google SMTP v aplikaci vrací chybu a Nastavení Google SMTP pro odesílání e-mailů z aplikace.
Jak přes SMTP odešlu doklady nebo výplatní pásky?
Slouží k tomu služby popsané v článcích Odesílání dokladů e-mailem - REST API a Zasílání výplatních pásek přes SMTP.

