Manchmal müssen Sie alle ungelesenen E-Mails auf Ihrem Mailserver finden und herunterladen, um sie Ihrem Client anzuzeigen. Die searchMails Methode erledigt das für Sie! Sie verwendet das IMAP-Suchprotokoll, das vollständig auf der Serverseite ausgeführt wird. Das bedeutet, dass die Suche schnell ist und Sie nur die gewünschten E-Mails abrufen können.
E-Mail-Suche
Um eine E-Mail-Suche durchzuführen, müssen Sie mit Ihrem Mailserver verbunden sein und ein Postfach ausgewählt haben. In den Beispielen verwenden wir das Postfach Posteingang:
$transporter:=IMAP New transporter($serverInfo)
$boxInfo :=$transporter.selectBox("Posteingang")
Um im Posteingang zu suchen, senden Sie eine Anfrage an den IMAP-Server. Um nach allen ungelesenen E-Mails zu suchen, erstellen Sie eine Abfrage mit dem Kennzeichen „ungelesen“ und senden Sie diese über die searchMails Methode Ihres IMAP-Transporters an den Server:
$mailIds:=$transporter.searchMails("ungelesen")
Sie können komplexere Suchen durchführen, indem Sie mehrere Flags kombinieren. Wenn Sie zum Beispiel nach allen ungelesenen E-Mails suchen möchten, die seit dem 1. August 2020 von „imap.test@4d.com“ eingegangen sind :
$mailIds:=$transporter.searchMails("ungelesene SINCE \"1-Aug-2020\" FROM \"imap.test@4d.com\"")
Eine vollständige Liste der verfügbaren Flags finden Sie in der searchMails Dokumentation der Methode.
Im Gegenzug für diese Suche erhalten Sie eine Sammlung mit allen E-Mail-IDs, die Ihrer Anfrage entsprechen.
emails herunterladen
Um alle gefundenen Mails herunterzuladen, können Sie die neue getMails Methode verwenden, die eine Sammlung von E-Mail-IDs als Parameter entgegennimmt:
$mails:=$transporter.getMails($mailsIds)
Das war’s! Sie haben alle Ihre ungelesenen E-Mails, die Sie seit dem 1. August 2020 von „imap.test@4d.com“ erhalten haben , in nur wenigen Codezeilen erhalten .