Alte E-Mails im IMAP-Konto automatisch löschen

Ich habe ein E-Mail-Konto, das Kopien von Quittungen empfängt und speichert, die an Kunden gesendet werden, die Reservierungen vornehmen.

Da sich das Konto mit der Zeit füllt und ich kein Interesse daran habe, mir den Inhalt anzusehen und die Mails manuell zu bearbeiten, brauche ich eine automatische Lösung, um mich anzumelden und Mails zu löschen, die älter als x Tage sind.

PHP-Skripting ist keine Option, da mein Dienstanbieter keinen Skriptzugriff auf den Mailserver zulässt.

Irgendwelche Ideen für einen (Mail-)Dienst, der eine Regel einrichten kann, um diese automatisch zu löschen (ohne dass ich mich bei ihrem System anmelden muss)?

Die meisten E-Mail-Clients verfügen über eine solche Funktion zum automatischen Löschen alter Nachrichten. Können Sie oder sie diese Funktion einfach in jeder Client-App aktivieren, die sie zum Überprüfen ihrer Nachrichten verwenden?
Habe mit ihnen Kontakt aufgenommen - sie haben keine Lösung - haben versucht, sie davon zu überzeugen, ihr System zu aktualisieren, aber ohne Erfolg ...

Antworten (1)

Ich konnte kein Skript platzieren, das auf die E-Mails meiner Domain zugreift. Es stellt sich jedoch heraus, dass sie nur den Zugriff auf den lokalen Host blockiert haben - nicht jedoch den Zugriff auf den externen Host. Daher war meine Antwort auf die Lösung am Ende ein PHP-Skript.

Ich dachte, ich würde es für Interessierte teilen.
Ich habe jedoch nie einen Dienst gefunden, der mir helfen könnte.

Skript zum automatischen Löschen alter Mails:

<?php

$del = new DateTime();
$del->modify('-1 month');

$mbox = imap_open("{imap.test.com:993/imap/ssl}INBOX", "username", "password")
 or die("can't connect: " . imap_last_error());

$MC = imap_check($mbox);

// Fetch an overview for all messages in INBOX
$result = imap_fetch_overview($mbox,"1:{$MC->Nmsgs}",0);
foreach ($result as $overview) {
    $date = $overview->date;
    $date = DateTime::createFromFormat('D, d M Y H:i:s O', $date); 

    if($date<$del) {
        imap_delete($mbox,$overview->msgno);
    }
}   
imap_expunge($mbox);
imap_close($mbox);
?>