SMTP server, cez ktorý firma odosiela e-maily, je možné nastaviť aj cez REST API. Slúži na to adresa /c/{firma}/nastaveni/smtp, kde {firma} je databázový identifikátor firmy.
Predpoklady
Na nastavenie SMTP servera musí mať používateľ rolu ADMIN s právom servera Pristupovať do všetkých firiem. Rovnaké nastavenie nájdete v desktopovej aplikácii v menu Nástroje → Nastavenie SMTP servera.
Uloženie nastavenia
Nastavenie uložíte metódou POST alebo PUT s nasledujúcim XML v tele požiadavky:
<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 vášho alebo externého SMTP servera |
| Port SMTP servera, napríklad 465 alebo 587 |
| Používateľské meno, typicky e-mailová adresa. Uvádza sa, ak SMTP server vyžaduje autentizáciu. |
| Heslo k uvedenému používateľovi. Uvádza sa, ak SMTP server vyžaduje autentizáciu. |
| Predvolený odosielateľ. Je možné doplniť meno odosielateľa, alebo ponechať iba e-mailovú adresu. Ak sa uvádza aj meno v lomených zátvorkách, musí byť v XML zakódované ako |
| Režim zabezpečenia SMTP komunikácie, napríklad |
Odpoveďou je aktualizácia 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>
Prečítanie nastavenia
Uložené nastavenie prečítate metódou GET. Namiesto hesla získate iba príznak o tom, či je vyplnené:
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>
ℹ️ Ak SMTP server vo firme zatiaľ nie je nastavený, vráti GET stavový kód 404 so správou „Není nastaven SMTP server" a kódom smtpSeverNotSet. Nejde o chybu volania — len o informáciu, že konfigurácia chýba.
⚠️ Uvádzajte príponu .xml alebo .json (prípadne pošlite hlavičku Accept). Bez nej vráti server chybu ako HTML stránku a štruktúrovanú správu nezískate.
Odoslanie testovacieho e-mailu
Funkčnosť nastavenia si môžete overiť odoslaním testovacieho e-mailu — metódou GET s parametrom testMail, v ktorom uvediete adresu príjemcu:
GET https://demo.flexibee.eu/c/demo/nastaveni/smtp.xml?testMail=adresat@testu.cz
V e-mailovej schránke príjemcu sa objaví správa:
Předmět: Testovací email
Testovací email ze systému ABRA Flexi.
⚠️ Toto volanie skutočne odošle e-mail na zadanú adresu. Používajte ho preto s vlastnou adresou, nie s adresou zákazníka.
Neúspešné požiadavky
1. Nesprávne zadaný port
Pri nevalidnom porte je odpoveďou:
<message>java.lang.IllegalArgumentException: port out of range:4651111</message>
2. Predvolený odosielateľ v nesprávnom tvare
Ak defaultFrom neobsahuje platný e-mail, prípadne meno nie je oddelené lomenými zátvorkami:
<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 sa nedá odoslať
Ak je SMTP nastavené nesprávne a testovací e-mail sa neodoš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
Ako SMTP nastavím v aplikácii?
Postup nájdete v článkoch Nastavenie SMTP servera pre desktopovú aplikáciu a Nastavenie SMTP servera vo webovom rozhraní.
Nastavenie Google SMTP vracia chybu, čo s tým?
Riešenie popisujú články Nastavenie Google SMTP v aplikácii vracia chybu a Nastavenie Google SMTP na odosielanie e-mailov z aplikácie.
Ako cez SMTP odošlem doklady alebo výplatné pásky?
Slúžia na to služby popísané v článkoch Odosielanie dokladov e-mailom - REST API a Zasielanie výplatných pások cez SMTP.

