Em 4D v18, introduzimos uma nova forma de enviar e-mails. Depois, em 4D v18 R2, acrescentámos uma nova forma de recuperar mensagens de correio electrónico utilizando POP3. Agora em 4D v18 R4, estamos a dar os primeiros passos para uma nova forma de lidar com o protocolo IMAP. Tal como fizemos para SMTP e POP3, há um novo comando IMAP New transporter para lidar com o protocolo IMAP.
O Internet Message Access Protocol (IMAP) é um protocolo padrão da Internet utilizado pelos clientes de correio electrónico para recuperar mensagens de correio electrónico de um servidor de correio. Este protocolo permite gerir múltiplas caixas de correio, descarregar e-mails, realizar pesquisas no servidor, gerir o estado das mensagens, e muito mais!
E com esta primeira funcionalidade IMAP, pode adicionar métodos ao transportador para: ter a lista das caixas de correio disponíveis, seleccionar uma caixa de correio, e receber correio electrónico da caixa de correio seleccionada. Vamos ver como.
O HDI abaixo demonstra como receber correio electrónico através do IMAP:
O HDI recebe correio electrónico através do IMAP
criar um transportador IMAP
Tal como SMTP e POP3, quando se utiliza o protocolo IMAP, é preciso primeiro criar um transportador (através do IMAP New transporter comando):
$server$server:=New object
ail.com
$server .host:="seuIMAPhost.com"
$server .port:=995
$server .user:=" "
$server .password:="XXXXXX"
4D.IMAP@m
$IMAP_Transporter:=IMAP New transporter(// Create a transporter from your server information )
Seleccionar caixa de correio
Porque o IMAP suporta múltiplas caixas de correio, a primeira coisa a fazer é especificar a caixa de correio que deseja.
Pode obter uma lista de todas as caixas de correio disponíveis no seu servidor de correio com o comando getBoxList método:
$boxList:=$IMAP_Transporter.getBoxList()
Alert ("O seu primeiro nome de caixa de correio é "+$boxList[0].name)
Quando souber o nome da caixa de correio específica de que necessita, basta usar o método selectBox:
$boxInfo:=$transporter.selectBox($boxList[$boxId].name)
Este comando devolve informação útil, como por exemplo:
- o número de e-mails na caixa de correio
- o número de mensagens recentes
Descarregar e-mail
Tem duas formas de identificar o correio que deseja descarregar:
- A primeira é utilizar a posição do correio electrónico na caixa de correio, tal como faria para o POP3. Por exemplo, se quiser descarregar o último correio recebido:
$mail:=$transporter.getMail($boxInfo.mailCount)
- A segunda é utilizar o atributo id do objecto de correio electrónico devolvido pelo servidor IMAP. Esta forma é melhor utilizada quando se pretende recuperar um email específico, uma vez que a posição de um email na caixa de correio pode ser modificada quando se eliminam emails:
$mail:=$transporter.getMail($emailId)
Como dissemos anteriormente, esta é a primeira característica para o IMAP. Há mais a chegar. Fiquem atentos!