in verschieben Posts wurde nach dem Löschen von IMAP-Mail auf dem raspberry gefragt.

Da das IPS-eigene PHP ja nicht die imap-Funktionalität umfasst (hier) und das Hinzufügen von 'php_imap.dll' nur unter Windows funktionieren kann, benutze ich auf dem raspberry die folgende Funktion:

PHP-Code:
<?

function Imap_Request($instID$url_pfx$request) {

    
$cfg json_decode(IPS_GetConfiguration($instID), true);
    
$host $cfg['Host'];
    
$port $cfg['Port'];
    
$username $cfg['Username'];
    
$password $cfg['Password'];

    
$url 'imaps://' $host ':' $port '/' $url_pfx;

    
$ch curl_init();

    
curl_setopt($chCURLOPT_URL$url);
    
curl_setopt($chCURLOPT_RETURNTRANSFER1);
    
curl_setopt($chCURLOPT_CUSTOMREQUEST$request);
    
curl_setopt($chCURLOPT_USERPWD$username ':' $password);

    
$response curl_exec($ch);
    
$errno curl_errno($ch);

    
curl_close($ch);

    if (
$errno) {
        echo 
"Imap_Request: gor error $errno\n";
        return(
false);
    }

    
// echo "response=$response\n";
    
return(true);

}

function 
Imap_DeleteMessage($instID$uid) {

    
$request 'UID STORE ' $uid ' +FLAGS \DELETED';
    
$ret Imap_Request($instID'INBOX/'$request);

    if (
$ret) {
        
$ret Imap_Request($instID'INBOX/''EXPUNGE');
    }

    return 
$ret;
}

?>
Aufruf:

PHP-Code:
Imap_DeleteMessage(1234 /*IMAP-Abruf-Instanz*//* UID */); 
Die Mail ist im Mailaccount gelöscht und nach der nächsten Aktualisierung des IMAP-Caches auch im IPS nicht mehr vorhanden.

Mit dem curl-Interface kann man nicht nur löschen, es steht einem damit auch grundsätzlich die komplette IMAP-Funktionalität zur Verfügung, wie Verschieben von Mails, (gelesen/ungelesen) markieren etc.

weitere Informationen siehe zB. hier:
https://curl.haxx.se/mail/lib-2013-03/0104.html, https://www.phpgangsta.de/das-imap-p...ail-betrachtet, https://debian-administration.org/ar...eries_via_curl, ...

Ob curl auch auf Symbox in einer entsprechenden Version vorhanden ist kann ich mangels Testmöglichkeit nicht sagen, bei Debian-Systemen sollte es verfügbar sein.

Auf Shell-Ebene kann man das natürlich auch leicht testen

Code:
curl --insecure --url "imaps://<host>:<port>/" --user "<username>:<password>"
sollte z.B. das ergebe

Code:
* LIST (\HasChildren) "/" "INBOX"
* LIST (\HasNoChildren) "/" "INBOX/Junk"
* LIST (\HasNoChildren) "/" "INBOX/Draft"
* LIST (\HasNoChildren) "/" "INBOX/Trash"
* LIST (\HasNoChildren) "/" "INBOX/Sent"
Hinweis: nicht bei jedem Mailserver lautete das Root-Verzeichnis "INBOX" bzw sind Mailordner unterhalb von "INBOX" zu
finden. GGfs. muss die URL (url_pfx bei Aufruf Imap_Request()) von dann angepasst werden.