======= Odesílání e-mailů ======= #;; Patron Neuron Gate Unipi 1.1 Axon #;; Mervis, společně s jednotkami Unipi, podporuje odesílání emailů. Tento návod popisuje, jak nastavit PLC a realizovat odesílání emailů diagramem funčních bloků. Zasílání emailů je možné jak nešifrovaně (non-SSL), tak šifrovaně (SSL). ---- V následujícím návodu je vysvětleno pouze odesílání emailů blokem **sendmailtrig**, realizované ve FBD. V jazyce ST doporučujeme použít blok **sendmail**, jehož použití je popsáno v nápovědě Mervis IDE. Funkcí bloku **sendmailtrig** je odeslat email na předem definovanou adresu při detekci náběžné hrany na vstupu **send**. {{ :en:sw:01-mervis:sending-email:sending_emails_01_sendmailtrig_fbd_block.png?nolink&175 |}} **Upozornění:** \\ Při tvorbě programu je nutné zajistit, aby v jeden moment docházelo k odeslání pouze jednoho emailu a před odesláním dalšího emailu byla dodržena pauza alespoň jednu vteřinu. ===== Nastavení alarmového kanálu ===== Pro správnou funkci odesílání emailů je nutné nejdříve nastavit alarmový kanál. Dvojitě klikněte na **PLC** v **levém panelu**, vyberte záložku **Definice hlášení**, klikněte pravým tlačítkem myši do prostoru hlavního okna (seznam alarmových kanálů) a v kontextovém menu vyberte možnost **Přidat alarmový kanál**: {{ .:sending-email:sending_emails_02_setup_channel.png?direct |}} ---- Objeví se nový alarmový kanál. Ve výchozím stavu je nastaven pro odesílání emailových zpráv. Nyní je možné definovat název, který se následně použije na vstupu bloku **sendmailtrig**, nebo ponechat výchozí název **alrchannel**. {{ .:sending-email:sending_emails_03_new_channel.png?direct |}} Dále se definuje typ spojení **SMTP**. Po kliknutí na kanál v hlavním okně se v pravém sloupci zobrazí tabulka vlastností zvoleného kanálu: * **Server**: ze které bude email odesílán * **Port**: na kterém bude RT komunikovat (dle emailového serveru) * **Používat přihlašování**: ''TRUE'' v případě nutnosti přihlašování * **Jméno uživatele**: v případě přihlašování, standardně emailová adresa * **Heslo**: v případě přihlašování, heslo pro použitý email * **Povolit SSL**: pro zabezpečenou komunikaci * **Validace certfikátu**: standardně ''FALSE'', více v článku [[ssl-certification-validation-hidden|]] {{ .:sending-email:sending_emails_04_channel_attributes.png?direct |}} Všechny změny je nutné potvrdit kliknutím na OK v červené liště: {{ .:sending-email:sending_emails_05_name_channel.png?direct |}} ===== Odesílání emailů ===== Funkční blok **sendmailtrig** lze nalézt v levém panelu v záložce **FUPLA bloky**, nebo v kontextovém menu **Přidat blok knihovny** po stisknutí pravého tlačítka myši v **hlavním okně** (prostoru fbd programu). {{ .:sending-email:sending_emails_06_fbd_block_program.png?direct |}} ---- Tento funkční blok má 6 vstupů. Pro pohodlnější ladění je vhodné vytvořit pomocné proměnné, které se na tyto vstupy připojí. První je vstup **channel**, který je datového typu string. Při definování proměnné je možné zvolit název shodný s názvem vstupu, ale je třeba třeba zvolit shodný datový typ, tedy string. Počáteční hodnotou je název alarmového kanálu, kde výchozí hodnotou je řetězec **alrchannel**: {{ .:sending-email:sending_emails_07_global_variable.png?direct |}} ---- **Stejný postup platí i pro ostatní vstupní proměnné:** |< 100% 15% 15% 70%>| ^ Vstup ^ Typ ^ Význam ^ | CHANNEL | STRING | název alarmového kanálu (definuje se v možnostech PLC; [[#nastaveni_alarmoveho_kanalu|viz výše]]) | | FROM | STRING | emailová adresa odesílatele | | RECIPIENT | STRING | emailová adresa příjemce | | SUBJECT | STRING | předmět emailu | | MESSAGE | STRING | zpráva emailu | | SEND | BOOL | povel pro odeslání emailu | ---- Výsledek by měl vypadat přibližně takto: {{ .:sending-email:sending_emails_08_sendmailtrig_with_variables.png?direct |}} ---- Pokud je odeslání emailu úspěšné, výstup **Result** bude mít hodnotu 0. |< 100% 15% 15% 70%>| ^ Výstup ^ Typ ^ Význam ^ | RESULT | SINT | číselný status; výsledek operace (odeslání emailu) | Jiná hodnota než nula znamená chybový kód; v takovém lze určit příčinu problému (chybu) pomocí následující tabulky, nebo nápovědy funkčního bloku (po označení bloku a stisknutí klávesy **F1**). |< 100% 20% 80%>| ^ Číselný status ^ Význam ^ | 0 | OK | | 8 | Plná emailová fronta | | 16 | Neznámý kanál | | 24 | Chyba - hodnota číselného statusu nelze určit | | jiné | Interní chyba - kontaktujte technickou podporu | ==== Příklad použití ==== Typicky lze tuto funkci využít pro hlášení alarmových stavů. Odeslání emailu je spuštěno nastalým alarmovým stavem, v tomto příkladu překročením proměnné ''teplota'' přes hodnotou proměnné ''mez_teploty'' (s hysterezí). Další email (s jiným obsahem zprávy) je odeslán po snížení hodnoty proměnné ''teplota'' pod hodnotu ''mez_teploty'' (s hysterezí). {{ .:sending-email:sending_emails_09_program_windowed.png?direct |}} ===== Doporučení pro Gmail: ===== V případě Google účtu (je-li nastaveno dvoufázové ověřování) je postup pro vygenerování hesla následující: - V Google Account nastavení - Vyhledat **Hesla Aplikací** - Vybrat aplikaci **Pošta** a zařízení "**Jiné** //vlastní název//" - Vygenerovat heslo pro použití ve Vaší aplikaci: "xxxyyyyzzz"