Por vezes é necessário encontrar todos os e-mails não lidos no seu servidor de correio e descarregá-los para os mostrar ao seu cliente. O searchMails o método fá-lo por si! Utiliza o protocolo de pesquisa IMAP, que é feito inteiramente no lado do servidor. Isto significa que é rápido e permite recuperar apenas os emails desejados.
pesquisa de e-mail
Para efectuar uma pesquisa de correio electrónico, deve estar ligado ao seu servidor de correio e ter uma caixa de correio seleccionada. Para os exemplos, vamos utilizar a caixa de correio electrónico Inbox:
$transporter:=IMAP New transporter($serverInfo)
$boxInfo :=$transporter.selectBox("caixa de entrada")
Para pesquisar dentro da caixa de correio electrónico Inbox, envie uma consulta para o servidor IMAP. Para pesquisar todos os e-mails não lidos, crie um pedido com a bandeira “não lido” e envie-o para o servidor através do searchMails método do seu transportador IMAP:
$mailIds:=$transporter.searchMails("não lido")
Pode efectuar buscas mais complexas combinando várias bandeiras. Por exemplo, se quiser pesquisar todos os e-mails não lidos que foram recebidos de “imap.test@4d.com” desde 1 de Agosto de 2020:
$mailIds:=$transporter.searchMails("unread SINCE \"1-Aug-2020\" FROM " "")
Para uma lista completa das bandeiras disponíveis, consulte o searchMails documentação do método.
Em troca desta pesquisa, receberá uma colecção contendo todas as identificações de correio electrónico que correspondam ao seu pedido.
descarregar e-mails
Para descarregar todos os e-mails encontrados, pode utilizar o novo getMails método que toma uma colecção de IDs de correio no parâmetro :
$mails:=$transporter.getMails($mailsIds)
Aí está! Obteve todos os seus e-mails não lidos recebidos de “imap.test@4d.com” desde 1 de Agosto de 2020, em apenas algumas linhas de código.