[RESOLU] IMAP IDLE non fonctionnel sur BlueMind < 3.0.14

Bonjour,

Nous sommes en BlueMind 3.0.13 sur CentOS 6.5 et le mode IMAP IDLE ne semble pas fonctionner.
En effet, on constate dans Thunderbird qu’il faut relever les dossiers manuellement pour avoir les nouveaux messages alors qu’ils sont censé arriver presque instantanément via le mode IDLE.

Pourtant le démon idled tourne bien.
De temps en temps nous avons le message suivant dans le fichier /var/log/maillog :cyrus/imap[18333]: idle for too long, closing connection

Lorsqu’on test le serveur IMAP avec la commande imtest on ne voit pas le mode IDLE dans la ligne CAPABILITY :[root@bluemind ~]# imtest localhost S: * OK IMAP4 ready C: C01 CAPABILITY S: * CAPABILITY IMAP4rev1 UIDPLUS XLIST AUTH=PLAIN STARTTLS S: C01 OK completed ...

Nous avons ceci dans les fichiers de configuration de Cyrus :[code][root@bluemind ~]# cat /etc/imapd.conf | grep idle
idlemethod: idled

Unix domain socket that idled listens on.

idlesocket: /var/run/cyrus/socket/idle
[root@bluemind ~]# cat /etc/cyrus.conf | grep idle
# this is only necessary if idlemethod is set to “idled” in imapd.conf
idled cmd=“idled”[/code]

Edit :
Il semble que cyrus n’affiche pas tout les modes supportés tant que l’on n’est pas connecté.
Si je refais la commande imtest, que je me connecte et que je lance la commande capability :

[code]…
10 CAPABILITY

  • CAPABILITY IMAP4rev1 LITERAL+ ID ENABLE ACL RIGHTS=kxte QUOTA MAILBOX-REFERRALS NAMESPACE UIDPLUS NO_ATOMIC_RENAME UNSELECT CHILDREN MULTIAPPEND BINARY CATENATE CONDSTORE ESEARCH SORT SORT=MODSEQ SORT=DISPLAY THREAD=ORDEREDSUBJECT THREAD=REFERENCES ANNOTATEMORE LIST-EXTENDED WITHIN QRESYNC SCAN XLIST URLAUTH URLAUTH=BINARY AUTH=PLAIN SASL-IR IDLE STARTTLS
    10 OK completed[/code]
    Là je vois bien le mode IDLE.

Cependant Thunderbird ne semble pas le voir (vérifié avec TBTracer).
Serai-ce un problème au niveau du client Thunderbird ?

Merci d’avance pour votre aide.

Je me répond à moi même car j’ai trouvé la solution :slight_smile:

Effectivement, il semble que Thunderbird n’envoie pas la commande CAPABILITY une fois connecté au serveur IMAP, ce qui fait qu’il ne sait pas que le serveur supporte l’IDLE.

Pour corriger cela, il faut afficher la CAPABILITY IDLE avant la connexion.
Cela est effectué par le proxy imap nginx dans le fichier /etc/nginx/global.d/bm-mail-proxy.conf :
Avant :imap_capabilities "IMAP4rev1" "UIDPLUS" "XLIST";
Après :imap_capabilities "IMAP4rev1" "UIDPLUS" "XLIST" "QUOTA" "IDLE";
Note : j’ai rajouté la CAPABILITY QUOTA pour faire marcher le plugin Displayquota sous Thunderbird.

Apparemment cette modification a été effectué dans les nouvelles versions de BlueMind (3.0.14 ou 3.0.15) : http://git.blue-mind.net/gitlist/bluemind/blob/master/conf/nginx/global.d/bm-mail-proxy.conf?branch=master&file=conf%2Fnginx%2Fglobal.d%2Fbm-mail-proxy.conf#L2