Skip to content

$mail.moveMessages

Description

Déplace un ou plusieurs messages dans un autre dossier sur le serveur. Cette méthode n'est utilisable que sur un serveur IMAP.

⚠️ Prenez garde à déplacer les messages en une fois et non de façon séquentielle. En effet, chaque modification du dossier source entraîne une renumérotation des messages par le serveur.

Syntaxe

$mail.moveMessages( messages , destination , options )

Paramètres

messages number,array
Message(s) à déplacer. Le paramètre doit est un numéro de message (reçu via la propriété num de la réponse de $mail.read) ou un tableau de numéros de messages.
destination string
Chemin de destination de messages. Noter par exemple "archive/2025/06".
options string

Les options concernent la connexion et le fonctionnement de la méthode.

Les options mailbox, type, host, port, username, password, security et properties fonctionnent selon le même principe que décrit dans la méthode $mail.read.

source string

Dossier source. Si non défini, la méthode utilise la boîte de réception (dossier "INBOX") comme source.

Le dossier indiqué doit exister et être différent de destination sinon le traitement est annulé.

autoCreateFolder boolean
Flag true/false indiquant à la méthode qu'elle est autorisée à créer l'arborescence de destination si nécessaire. Ce flag évite d'avoir à invoquer $mail.createFolder au préalable pour créer le(s) dossier(s) de destination.

Retour

Nombre de messages ayant pu être déplacés.

Exemple

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
var spamMessages = [];

var messages = $mail.read({
    mailbox: "mail.somehost.com",
    //ignoreFlags: [ "seen" ],
    setFlags: [ "seen" ],
    getContent: true,
    cleanHistory: true,
    fixInlineImages: true,
    getInlines: true,
    getAttachments: true
});

for (var msg : messages) {
    if ($string.startsWith(msg.subject, "[SPAM]")) {
        spamMessages += msg.num;
    }
}

if ($array.size(spamMessages) > 0) {
    $mail.moveMessages(spamMessages, "spam",
                       { mailbox: "mail.somehost.com", 
                         autoCreateFolder : true });
}