====== Odesílání emailů – ST – z více účtů ====== {{:cs:mervis-ide:35-help:sendmailcustom.png}} ===== Název funkce ===== SENDMAILCUSTOM ===== Volání v ST ===== PROGRAM TEST_SENDMAILCUSTOM VAR TESTEMAIL : BOOL :=TRUE; HOST : STRING[64] := 'SMTP.DOMAT.CZ'; PORT : UINT := 25; USER : STRING[64] := 'INFO@DOMAT.CZ'; PASSWORD : STRING[64] := '1234'; SENDER : STRING[64] := 'INFO@DOMAT.CZ'; RECIPIENT : STRING[64] := 'SUPPORT@DOMAT.CZ'; SUBJECT : STRING[64]; MESSAGE : STRING[64]; END_VAR IF TESTEMAIL THEN SUBJECT := 'TEST'; MESSAGE := 'TESTOVACI EMAIL BYL POSLAN.'; MESSAGING.SENDMAILCUSTOM(HOST, PORT, USER, PASSWORD, SENDER, RECIPIENT, SUBJECT, MESSAGE); TESTEMAIL := FALSE; END_IF; END_PROGRAM ===== Knihovna ===== MESSAGING ===== Verze ===== V1.0 ===== Popis ===== Volaná funkce posílá v každém výpočetním cyklu PLC jeden email. Z důvodu bezpečnosti doporučujeme jeho **použití pouze v ST kódu**. Psaní programu je třeba dbát zvýšené opatrnosti, aby nedošlo nechtěnému zahlcení adresáta emaily. Tato funkce umožňuje (oproti [[cs:mervis-ide:35-help:035-software_basic:060-libraries:035-communications:005-emails:005-sendmail|sendmail]] a [[cs:mervis-ide:35-help:035-software_basic:060-libraries:035-communications:005-emails:010-sendmailtrig|sendmailtrig]]) průběžně měnit emailové účty, ze kterých je email odesílán. Pokud je potřeba odesílat zprávy na více adres, je potřeba použít blok vícekrát, nebo si před něj vytvořit přepínač, adres. Je ale potřeba dodržet pravidlo, kdy v jeden moment dochází k odeslání pouze jednoho emailu. Mezi emaily by měla být pauza minimálně jedné vteřiny, ideálně však i více. Pokud toto pravidlo není dodrženo, dojde k zaplnění fronty pro odeslání. ===== Vstupy ===== |Vstup |Typ |Význam | |HOST |STRING_REF|reference na proměnnou s názvem serveru, ze kterého je posílán email | |PORT |UINT |číslo portu, který využívá PLC pro emailovou komunikaci | |USERNAME|STRING_REF|reference na proměnnou s uživatelským jménem účtu, ze kterého je posílán email | |PASSWORD|STRING_REF|reference na proměnnou s heslem do uživatelského účtu, ze kterého je posílán email | |CHANNEL |STRING_REF|reference na proměnnou s názvem komunikačního spojení (definuje se v možnostech PLC; viz níže)| |FROM |STRING_REF|reference na proměnnou s emailovou adresu, ze které je posílán email | |TO |STRING_REF|reference na proměnnou s emailovou adresu adresáta | |SUBJECT |STRING_REF|reference na proměnnou s předmětem emailu | |MESSAGE |STRING_REF|reference na proměnnou se samotnou emailovou zprávu | ===== Výstupy ===== |Výstup|Typ |Význam | |=> |SINT|číselný status; výsledek kontroly nastavení systému| ===== Funkce ===== Při každém volání funkce //sendmailcustom// v programu je poslán jeden email z definovaného emailového účtu //username// a adresy //from// na adresu //to//. Předmět emailové zprávy je definován v proměnné //subject// a samotné tělo v //message//. Tato funkce nemá definované parametry připojení k serveru v //Definici hlášení//. Tyto hodnoty musí být definovány v proměnných, které jsou připojeny na vstupy funkce //host, port, username a password//. Díky to mohou být tyto parametry měněny v průběhu programu a může se měnit uživatelský účet, ze kterého je email odesílán. Pozor, je nutné ověřit možnosti připojení PLC z místa instalace na emailový server. Výstupní proměnná result hlásí výsledek kontroly nastavení systému. |Čí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 Domat Control System| ===== Příklad použití ===== Typicky lze tato funkce využít pro hlášení alarmových stavů. Odeslání emailu je spuštěno nastalým alarmovým stavem. Příklad viz výše, //Volání v ST//.