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!