Příjem e-mailů pomocí protokolu IMAP

Automaticky přeloženo z Deepl

Ve verzi 4D v18 jsme zavedli nový způsob odesílání e-mailů. Ve verzi 4D v18 R2 jsme pak přidali nový způsob získávání e-mailů pomocí protokolu POP3. Nyní ve verzi 4D v18 R4 podnikáme první kroky pro nový způsob zpracování protokolu IMAP. Stejně jako v případě protokolů SMTP a POP3 je k dispozici nový příkaz IMAP New transporter pro zpracování protokolu IMAP.

Protokol IMAP (Internet Message Access Protocol) je standardní internetový protokol používaný e-mailovými klienty k načítání e-mailových zpráv z poštovního serveru. Tento protokol umožňuje spravovat více poštovních schránek, stahovat e-maily, provádět vyhledávání na serveru, spravovat stav zpráv a mnoho dalšího!

A díky této první funkci protokolu IMAP můžete do přenosové schránky přidat metody, které umožňují: mít k dispozici seznam dostupných schránek, vybrat schránku a přijímat e-maily z vybrané schránky. Podívejme se, jak na to.

Níže uvedené HDI ukazuje, jak přijímat e-maily prostřednictvím protokolu IMAP:

HDI přijímat e-maily přes IMAP

vytvořit transportér IMAP

Stejně jako u protokolů SMTP a POP3 je při používání protokolu IMAP nutné nejprve vytvořit přenosovou jednotku (prostřednictvím příkazu IMAP New transporter příkaz):

$server:=New object
$server .host:="yourIMAPhost.com"
$server .port:=995
$server .user:="4D.IMAP@mail.com"
$server .password:="XXXXXX"
// Create a transporter from your server information
$IMAP_Transporter:=IMAP New transporter($server)

Vyberte poštovní schránku

Protože protokol IMAP podporuje více poštovních schránek, je třeba nejprve zadat požadovanou poštovní schránku.

Seznam všech dostupných poštovních schránek na poštovním serveru získáte příkazem getBoxList metodou:

$boxList:=$IMAP_Transporter.getBoxList()
Alert ("Vaše první jméno poštovní schránky je "+$boxList[0].name)

Jakmile znáte název konkrétní schránky, kterou potřebujete, jednoduše použijte metodu selectBox:

$boxInfo:=$transporter.selectBox($boxList[$boxId].name)

Tento příkaz vrátí užitečné informace, jako např:

  • počet e-mailů v poštovní schránce
  • počet posledních zpráv

Stáhnout e-mail

Máte dva způsoby, jak identifikovat poštu, kterou chcete stáhnout:

  • Prvním je použití pozice e-mailu ve schránce, stejně jako v případě POP3. Pokud například chcete stáhnout poslední přijatou poštu:

$mail$transporter. ( . ).getMail$boxInfomailCount

  • Druhým je použití atributu id objektu e-mailu vráceného serverem IMAP. Tento způsob je nejvhodnější použít, pokud chcete načíst konkrétní e-mail, protože pozice e-mailu ve schránce se může při mazání e-mailů změnit:

$mail:=$transporter.getMail($emailId)

Jak jsme již uvedli, jedná se o první funkci pro IMAP. Další se chystají. Zůstaňte naladěni!

Fabrice Mainguené
- Product Owner -Fabrice Mainguené se připojil k týmu 4D Program v listopadu 2016. Jako Product Owner má na starosti psaní uživatelských příběhů, které následně převádí do funkčních specifikací. Jeho úkolem je také zajistit, aby dodaná implementace funkcí splňovala potřeby zákazníků.Po získání bakalářského titulu v oboru informatiky na CNAM nastoupil Fabrice do malé softwarové vydavatelské společnosti jako vývojář Windev. Poté pracoval pro různé společnosti v oblasti průmyslu a obchodu jako vývojář aplikací Windev a webových aplikací a také jako technický poradce pro nové funkce.