Preskoči na glavno vsebino

Nastavenie SMTP servera - API

Ako cez REST API uložiť, prečítať a otestovať nastavenie SMTP servera na odosielanie e-mailov z firmy.

Avtor: Petr Pech

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 &lt;vzor@seznam.cz&gt;</defaultFrom>
<!-- Zabezpečení spojení -->
<encryptionMode>SSL</encryptionMode>
</nastaveni-smtp>

Položka

Význam

host

Adresa vášho alebo externého SMTP servera

port

Port SMTP servera, napríklad 465 alebo 587

username

Používateľské meno, typicky e-mailová adresa. Uvádza sa, ak SMTP server vyžaduje autentizáciu.

password

Heslo k uvedenému používateľovi. Uvádza sa, ak SMTP server vyžaduje autentizáciu.

defaultFrom

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 &lt; a &gt;.

encryptionMode

Režim zabezpečenia SMTP komunikácie, napríklad SSL alebo TLS

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í &lt;uzivatel@domena.cz&gt;' 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?

Ako cez SMTP odošlem doklady alebo výplatné pásky?


Súvisiace

Ste s tem dobili odgovor na svoje vprašanje?