Preskoči na glavno vsebino

Konfigurácia vlastného SMTP v REST API

Ako nastaviť SMTP server pomocou REST API Flexi?

Avtor: Petr Pech

V desktopovej aplikácii je možné nastaviť SMTP server v menu Nástroje -> Nastavenie SMTP servera. Na sprístupnenie tejto funkcie musí mať používateľ rolu ADMIN s právami servera - Pristupovať do všetkých firiem.

Toto nastavenie je možné vykonať aj pomocou REST API. Pomocou API je možné nastaviť SMTP server na adrese: /c/{firma}/nastaveni/smtp, kde {firma} je databázový identifikátor firmy.

Nastavenie je možné uložiť HTTP metódou POST alebo PUT, ktorá bude mať v tele požiadavky nasledujúce parametre:

  • host - adresa Vášho alebo externá adresa SMTP servera.

  • port - Port SMTP servera (465, 587, ...)

  • username - E-mailová adresa používateľa. (ak SMTP server vyžaduje autentifikáciu)

  • password - Heslo k e-mailovej adrese používateľa. (ak SMTP server vyžaduje autentifikáciu)

  • defaultFrom - predvolený odosielateľ, podľa vzoru uvedeného vyššie je možné doplniť meno odosielateľa, prípadne je možné ponechať iba e-mailovú adresu.

  • encryptionMode - Režim zabezpečenia SMTP komunikácie (SSL, TLS, ...)

Príklady použitia

1. Uloženie nastavenia SMTP do ABRA Flexi:

Telo požiadavky v XML:

<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>

Odpoveď ABRA Flexi je potom 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>

2. Čítanie uloženého nastavenia vykonáme HTTP metódou GET:

Odpoveď ABRA Flexi je potom prehľad nastavenia SMTP:

<?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>

Pri čítaní uloženého nastavenia pomocou metódy GET získate namiesto hesla iba príznak o tom, či je vyplnené filled=true.

3. Otestovanie nastavenia pomocou testovacieho e-mailu, použijeme HTTP metódu GET s parametrom testMail.:

V e-mailovej schránke adresat@testu.cz sa zobrazí e-mail:

Předmět: Testovací email
Testovací email ze systému ABRA Flexi.

Neúspešné požiadavky

1. Nesprávne zadaný port
V prípade, že zadáte neplatný port, odpoveď API je:

<message>java.lang.IllegalArgumentException: port out of range:4651111</message>

2. Predvolený odosielateľ v nesprávnom tvare

V prípade, že je zadaný bez platného e-mailu, e-mail je nutné zadať so znakmi &lt; a &gt;

<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. Nesprávne nastavenie SMTP, nie je možné odoslať testovací e-mail

V prípade, že nedôjde k odoslaniu testovacieho e-mailu, odpoveď API je:

<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


Potrebujete poradiť?

V prípade otázok k aplikácii nás kontaktujte na podporaflexi@abra.eu prípadne prostredníctvom okna chatu v pravom dolnom rohu.

Ste s tem dobili odgovor na svoje vprašanje?