Receber correio electrónico com protocolo IMAP

Tradução automática de Deepl

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
$server .host:="seuIMAPhost.com"
$server .port:=995
$server .user:=" "
$server .password:="XXXXXX"
4D.IMAP@m
ail.com
$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!

Fabrice Mainguené
- Proprietário do produto ->p>Fabrice Mainguené juntou-se à equipa do Programa 4D em Novembro, 2016. Como Proprietário do Produto, está encarregado de escrever as histórias dos utilizadores, traduzindo-as depois para especificações funcionais. O seu papel é também o de assegurar que a implementação da funcionalidade entregue vai ao encontro das necessidades do cliente.Após a obtenção da licenciatura em Informática no CNAM, Fabrice juntou-se a uma pequena empresa editora de software como programador Windev. Depois trabalhou para diferentes empresas nas áreas da indústria e comércio como programador Windev e web developer, bem como como consultor técnico sobre novas funcionalidades.