Gerir bandeiras IMAP

Tradução automática de Deepl

Para permitir que a sua solução se integre facilmente com outros clientes de correio electrónico, é frequentemente necessário acrescentar informações tais como “já visto” ou “urgente”. O protocolo IMAP permite-lhe associar uma lista de bandeiras com uma mensagem para gerir esta informação adicional. 4D v18 R6 inclui um conjunto de funções para o objecto IMAP Transporter para adicionar ou remover bandeiras IMAP.

Com o protocolo IMAP é possível gerir cinco bandeiras :

  • \Visto: A mensagem foi lida
  • \Respondeu: A mensagem foi respondida
  • \Flagged: A mensagem é marcada como “assinalada” para atenção urgente/especial
  • \Apagado: A mensagem é marcada como “a ser apagada”. Note-se que a remoção efectiva tem efeito quando a expunge() é chamada, quando se muda a caixa de correio, ou se fecha a ligação. Esta bandeira já é adicionada pela delete() função
  • \Desenho: A mensagem não completou a composição (marcada como um rascunho).

Acrescentar bandeiras

Para gerir as bandeiras de correio electrónico, é necessário estar ligado ao seu servidor de correio e ter uma caixa de correio seleccionada. Para os exemplos seguintes, utilizaremos a caixa de correio electrónico da caixa de entrada:

var $transporter : 4D.IMAPTransporter
$transporter :=IMAP New transporter($serverInfo)
$boxInfo :=$transporter.selectBox("caixa de entrada")

Para adicionar bandeiras em e-mails, como no objecto de e-mail, crie um objecto de palavras-chave que contenha todas as bandeiras que pretende definir, e passe-as como parâmetro para o addFlags() função. Por exemplo, se quiser marcar alguns emails como rascunho:

$mails:=$transporter.searchMails("ASSUNTO \ 4D\")
$keywords :=New object
$ keywords .$draft:=True

$transporter .addFlags($mails; $keywords )

Remover bandeiras

Da mesma forma, para remover bandeiras dos emails, criar um objecto de palavras-chave, e passá-lo para a função removeFlags() função. Por exemplo, se quiser remover todas as bandeiras apagadas na sua caixa de correio para evitar a eliminação dos e-mails marcados:

$mails:=$transporter.searchMails("DELETED")
$ keywords :=New object
$ keywords .$deleted:=True

$transporter .removeFlags($mails; $keywords )

Expandir e-mails

Num post de blog anterior, mostramos-lhe como adicionar a /Deleted flag a um e-mail com a função delete() função.

Para além da função delete() função, acrescentámos a nova expunge() para lhe permitir aplicar a /Deleted flag sem esperar pela mudança da caixa de correio ou pelo fecho da ligação. Por exemplo, se quiser remover todos os e-mails da sua caixa de correio electrónico não desejado:

$boxInfo:=$transporter.selectBox("Junk Email")

// marks all the email in the current mail box for deletion
$status :=$transporter.delete(IMAP all)

// deletes all the marked emails
$transporter .expunge()

Consulte a documentação para saber mais sobre as novas funcionalidades!

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.