MAPI/mailto/SMTP
V systému ABRA Gen se na různých místech používá odesílání e-mailů. Je řešeno vícero způsoby, podle potřeb daného místa programu. Např. pomocí:
V ABRA Gen se využívá např. v těchto místech:
- v panelech s adresou – funkční tlačítko Odeslat E-mail vedle pole E-mail
- v agendě Adresář firem - funkce E-mail
- v agendě Adresář osob - funkce E-mail
- v agendě Provozovny - funkce E-mail
- v agendě Call centrum - tlačítko Poslat e-mail
- v pluginu Tlačítka s akcemi (ButtonsPlugin) – MailToCommand
- po kliknutí na odkaz mailto: (někde, kde se vyskytuje html, ve wiki apod.)
Otevře se aplikace asociovaná s protokolem mailto:. Čerpá se z asociací (např. na Windows 7 viz Nastavení výchozích programů/Nastavení přidružení programů/nastavení pro protokol mailto:, na Windows 8/Windows 10 viz Přidružení protokolu). Jedná se o totéž, jako když se v příkazové řádce Windows (Spustit) zavolá příkaz "mailto:".
Při komunikaci s Mozilla Thunderbit 64bit může na některých stanicích dojít k problémům s komunikací. V takovém případě doporučujeme přejít na Mozilla Thunderbit 32bit.
V ABRA Gen se využívá např. v těchto místech:
- v rámci odeslání tiskového výstupu e-mailem prostřednictvím e-mailového klienta - možnosti, jak vyvolat odeslání tiskového výstupu e-mailem, viz Odeslání e-mailem ve zvoleném formátu, zde viz volby pro odeslání prostřednictvím e-mailového klienta, tj.:
- v dialogovém okně pro výběr tiskové sestavy - funkční tlačítko E-mail,
- v náhledu (preview) tiskové sestavy - funkční tlačítko Poslat data e-mailem,
- v rámci funkce Nastavení tisku po uložení,
- aj.
- v agendě Kampaně - funkční tlačítko Test e-mailu
- u definovatelných exportů, které mají nastavenu akci pro zpracování Odeslat e-mailem
- ISDOC driver, tj. při zpracování dokumentů kategorie ISDOC vydaný, které mají v parametrech své kategorie jako Způsob zpracování a odeslání nastaveno Zpracovat a odeslat výchozím e-mailovým klientem nebo u kterých je tento způsob zpracování zvolen až rámci Průvodce zpracováním dokumentů ISDOC vydaných při samotném zpracování příp. se sem předvyplní z nastavení na firmě
- PDM driver, tj. při zpracování dokumentů kategorie Export české pošty
- při výskytu chyby v systému ABRA Gen u klienta V rámci možnosti odeslat chybové hlášení výrobci
Několik informací k MAPI: existují 2 úrovně MAPI: SimpleMAPI a ExtendedMAPI. SimpleMAPI je množina 12 metod, které implementují základní e-mailovací funkcionalitu. ExtendedMAPI naopak umožňuje kompletní ovládání e-mailové funkcionality – práce se složkami, zakládání účtů apod. SimpleMAPI umí většina e-mailových programů: Outlook Express, Thunderbird, Outlook (ale ne všechny verze) aj. Naproti tomu Extended MAPI umí pouze omezené množství klientů, např. Outlook (ne Express!) a administrační konzole pro server MS Exchange.
Kombinace SimpleMAPI rozhraní MS Outlook
U SimpleMAPI rozhraní v kombinacemi s Outlookem dochází k potížím, kdy Outlook použije formát odeslaného e-mailu RTF, přestože má nastaveno, aby tak nečinil, což vede na potíže s čitelností příloh u adresátů e-mailu. Proto je k dispozici parametr UseOutLookWithOLE v Nexus.cfg, kterým lze zajistit, že se SimpleMAPI rozhraní nepoužije. Zda se tedy pro odeslání e-mailu v daném místě ABRA Gen použije standardně SimpleMAPI rozhraní nebo OLE rozhraní, závisí na stavu parametru UseOutLookWithOLE v Nexus.cfg a na tom, jaký je váš výchozí klient.
Kombinace SimpleMAPI rozhraní Mozilla Thunderbird
Při komunikaci s Mozilla Thunderbit 64bit může na některých stanicích dojít k problémům s komunikací. V takovém případě doporučujeme přejít na Mozilla Thunderbit 32bit.
Upozornění k použití více e-mailových adres najednou
Pokud se jedná o místo ABRA Gen, kde se e-mail posílá přes SimpleMAPI nebo OLE (tedy nikoli přes mailto:) a o případ, kdy je zadáno více mail. adres, oddělených středníkem nebo čárkou (např. funkční tlačítko Test e-mailu v agendě Kampaně) a na základě parametru UseOutLookWithOLE=0 se používá SimpleMAPI, viz výše, tak může dojít k tomu, že se chybně interpretují oddělovače (resp. neinterpretují se jako oddělovače), tudíž vzniklá mail. adresa je neplatná. Děje se např. právě u MS Outlook. V takovém případě buď musíte předvyplněné adresy před odesláním e-mailu upravit, nebo doporučujeme nepoužívat hodnotu UseOutLookWithOLE=0.
Pokud na OS Windows 8/Windows 10 dochází k potížím při odesílání přes Outlook, může být na vině zapnuté řízení uživatelských účtů. Pokud by ani jeho vypnutí nepomohlo, je třeba v registru:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System nastavit hodnotu EnableLUA na 0.
Následující popis je nad rámec této příručky a je pouze doplňující informací pro lepší orientaci uživatele pro případ, že má s voláním mailového klienta z výše uvedených daných míst ABRA Gen nějaké potíže. Platí pro Windows 7/Windows 8. Pokud máte jiný operační systém, pak bude situace podobná, ale nelze zaručit, že zcela stejná. Nicméně následující popis by mohl být vodítkem pro zjištění příčiny případných potíží a jejich odstranění.
Informace o přítomnosti SimpleMAPI rozhraní a o výchozím e-mailovém klientovi je evidována v registrech vašeho operačního systému. Výchozí klient pro SimpleMAPI rozhraní je uživatelsky vidět v nastavení přidružení pro program jako "MAPI – Odeslat poštu" (např. ve Windows 7 viz Ovládací panely/Výchozí programy). Nastaví se též nastavením výchozího klienta přímo v aplikaci.
Byly zaznamenány případy, kdy se po vizuálním nastavení mailového klienta coby výchozího, neprovedl adekvátní záznam do registrů do větví, kde se přítomnost SimpleMAPI rozhraní resp. výchozí klient zjišťuje. Pokud tedy se vám otvírá jiný klient, než očekáváte dle vašeho nastavení, zkontrolujte obsah příslušných registrů korespondujících s popisem uvedeným dále.
V systému ABRA Gen je k dispozici parametr UseOutLookWithOLE, kterým lze ovlivnit, zda se e-mail bude posílat přes OLE rozhraní Outlooku, nebo přes SimpleMAPI rozhraní. Výsledek ale závisí také na tom, jaké e-mailové klienty máte nainstalované, zda a které máte nastaveny jako výchozí, zda je na daném počítači k dispozici SimpleMAPI rozhraní atd. Podle těchto skutečností se vyvolá příslušný klient buď jednou nebo druhou metodou, příp. systém ABRA Gen oznámí, že potřebný poštovní klient není k dispozici. Nejdříve se tedy provedou příslušná zjištění, zda je na počítači přítomno SimpeMAPI rozhraní a jaký výchozí klient pro SImpleMAPI:
- Přítomnost SimpeMAPI rozhraní se pro účely ABRA Gen zjišťuje v registrech:
\\\Registry\HKLM\SOFTWARE\{Wow6432Node\}Microsoft\Windows Messaging Subsystem (podvětev {Wow6432Node\} pro 64 bit Windows):
- Zda je rozhraní instalováno, se zjišťuje z existence a hodnoty klíče ExtendedMAPI (MAPIX). Pokud je zde MAPIX = 1 , tak se bere, že SimpleMAPI rozhraní je přítomno.
- Verze MAPI se zjišťuje z klíče MAPIXVER.
- Pokud se dle textu výše nenašlo ExtendedMAPI (nepodařilo se přečíst hodnotu MAPIX), pak se pokusí ověřit jeho přítomnost jiným způsobem a to z registrů prohledáním knihoven implementujících MAPI u jednotlivých e-mailových klientů (z větve \\\Registry\HKLM\SOFTWARE\Clients\Mail (v klíči DLLPathEx příp. v DLLPath)) a otestováním, zda-li implementují 12 metod ze SimpleMAPI rozhraní. Pokud se najde nějaká taková DLL, tak se bere, že SimpleMAPI rozhraní je přítomno.
- Jaký je Výchozí klient pro SimpleMAPI se čerpá nejdříve z registrů \\\Registry\HKCU\SOFTWARE\Clients\Mail (z výchozí hodnoty). Pozor, ne HKLM, ale HKCU! (Toto se mění nastavením výchozího klienta pro daného uživatele.)
- Pokud se nepodařilo zjistit výchozího klienta z HKCU registrů, čerpá se z větve \\\Registry\HKLM\SOFTWARE\Clients\Mail.
- Přítomnost Outlook OLE se zjišťuje voláním systémové funkce, jestli je k dispozici objekt ProgID='Outlook.Application'.
Dále se postupuje dle hodnoty parametru UseOutLookWithOLE:
- =0 - Tj. e-mail se má poslat pomocí MAPI ⇒ Pošle se pomocí knihovny JCL + MAPI, tj. zavolá se ten e-mailový klient, který je výchozím klientem pro SimpleMAPI. Pokud SimpleMAPI rozhraní není přítomno (viz výše) nebo není k dispozici výchozí poštovní klient, objeví se chybové hlášení ABRA Gen, že potřebný e-mailový klient není nainstalován.
- =1 - Tj. je-li Výchozím klientem pro SimpleMAPI rozhraní Outlook, pak se e-mail má poslat pomocí OLE Outlooku, jinak jako při hodnotě 0. ⇒ Podle výsledku přítomnosti Outlook OLE, se toto použije přednostně. V opačném případě jako při hodnotě 0.
- =2 - tj. vždy přes OLE Outlooku.
- =jiná hodnota - tj. jako v případě hodnoty 0.
V případě potíží lze využít logování [Log.Email] v Nexus.cfg, viz kap. Logování běhu aplikace. Mj. zaloguje hodnoty získané při zjišťování SimpleMAPI:
UseOutLookWithOLE - aktuální hodnota parametru
AnySimpleMAPIClientInstalled - jestli je přítomnost SimleMAPI rozhraní - viz výše
IsOutlookInstalled - jestli je k dispozici Outlook s OLE rozhraním
DefaultMAPIClient - výchozí SimpleMAPI klient (pouze, když UseOutLookWithOLE=1)
NeedOpenOutlookOLE - 1, když UseOutLookWithOLE = 2 nebo ( UseOutLookWithOLE = 1 a zároveň IsOutlookInstalled )
AnyClientInstalled - 1, když (NeedOpenOutlookOLE=1 a zároveň IsOutlookInstalled) nebo (NeedOpenOutlookOLE=0 a zároveň AnySimpleMAPIClientInstalled )
Pokud je AnyClientInstalled=0, pak vyskočí hláška, že není nainstalovaný žádný klient
Např. agenda Odeslané e-maily, kde se nevolá žádný e-mailový klient.