IMAP IDLE Problem

mail
german

#1

Hallo,

irgendwie scheint es, als ob das IDLE auf dem UCS nicht richtig oder langsam arbeitet, denn auf meinem Android-Phone bekomme ich z.T. nur sehr verspätet (oder auch z.T. gar nicht) neue eMails mitgeteilt (auch ein Kollege berichtet das gleiche auf seinem Phone mit dem Server).

Es wird UCS 3.1 mit dem eigenen Mailstack (Cyrus) verwendet und idled ist gestartet und konfiguriert (so wie es UCS in einer Standard-Installation hat).

Gibt es evtl. von anderen schon Erfahrungen diesbezüglich? - Funktioniert es bei anderen einwandfrei?
Gibt es irgendwelche Tests / Konfigurationseinstellungen / Logs, die man im Detail anschauen könnte, um das Problem einzukreisen?

Ich habe auf meinem Android-Phone im gleichen eMail-App (K9) auch einen anderen Account (T-Online) mit identischen Einstellungen und da funktioniert IDLE/PUSH ohne Probleme und ohne Verzögerung und ich sehe in der Inbox auch immer den aktuellsten Stand.

Ich bin für jegliche Anregungen dankbar.
MfG,
F. Illenseer


#2

Hallo,

Sie könnten zunächst mit telnet testen, ob der Server überhaupt IDLE bekannt gibt.

user@host:~# telnet mail.domain.tld 143
Trying 192.168.1.111 ...
Connected to mail.domain.tld.
Escape character is '^]'.
* OK [CAPABILITY IMAP4rev1 LITERAL+ ID ENABLE STARTTLS AUTH=PLAIN SASL-IR] mail Cyrus IMAP v2.4.9-Debian-2.4.9-1.25.201207131205 server ready
01 login user@domain.tld password
01 OK [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 THREAD=ORDEREDSUBJECT THREAD=REFERENCES ANNOTATEMORE LIST-EXTENDED WITHIN QRESYNC SCAN XLIST URLAUTH URLAUTH=BINARY LOGINDISABLED COMPRESS=DEFLATE IDLE] User logged in SESSIONID=<mail-17205-1371114025-1>
02 logout
* BYE LOGOUT received
02 OK Completed
Connection closed by foreign host.

Die Ausgabe oben ist von einem zu Ihrem vergleichbaren System. Ich würde hier erwarten, dass IDLE funktioniert.
Ein kurzer Test mit Thunderbird hat bei mir ein sauberes IDLE-Verhalten gezeigt.

[code]…
<1371122444<16 IDLE

1371122444>+ idling
1371122467>* 2 EXISTS

  • 1 RECENT
    <1371122467<DONE
    ,
    [/code]

Tieferes Debugging (siehe Beispiel) können Sie mit dem per-User Protokoll machen. Mit der UCR-Variablen “mail/cyrus/userlogfiles” aktivieren Sie für neue (Test-)Mailboxen das Logging nach /var/lib/cyrus/log/ .
Bei existierenden Mailboxen erstellen Sie ein Verzeichnis (user@domain.tld) mit cyrus:mail als Eigentümer und setzen es auf 750.

Viele Grüße,
Dirk Ahrnke


#3

Ich habe mich auf den Mailserver mit “openssl” verbunden und laut Ausgabe, ist IDLE unterstützt:

. OK [CAPABILITY IMAP4rev1 LITERAL+ ID ENABLE ACL RIGHTS=kxte QUOTA MAILBOX-REFE RRALS NAMESPACE UIDPLUS NO_ATOMIC_RENAME UNSELECT CHILDREN MULTIAPPEND BINARY CA TENATE CONDSTORE ESEARCH SORT SORT=MODSEQ THREAD=ORDEREDSUBJECT THREAD=REFERENCE S ANNOTATEMORE LIST-EXTENDED WITHIN QRESYNC SCAN XLIST URLAUTH URLAUTH=BINARY LO GINDISABLED AUTH=PLAIN COMPRESS=DEFLATE IDLE] User logged in SESSIONID=<server-5 092-1372084220-1>
Das logging müsste ich noch testen, aber mir scheint definitiv, dass mein Android Gerät (und auch das des Kollegen) nicht mehr die Mails direkt zu melden, so wie es mit unserem alten Server (war auch ein Cyrus) noch funktionierte.


#4

Hallo,

ein beliebter Einflussfaktor wäre noch eine Firewall, die die Verbindung vor Ablauf des Timeouts kappt.


#5

Da sich an der “öffentlichen Firewall” (also nach außen; Gebäude) nichts geändert hat, könnte es bzgl. der Firewall dann auch nur an der in UCS integrierten liegen… - Gibt es da Details, wo ich drehen/nachsehen könnte?


#6

Hallo,

mir ist zumindest nicht bekannt, dass iptables bestehende IMAP-Verbindungen in IDLE kappt.
Es ist wahrscheinlich zunächst am Sinnvollsten, das Userlogging zu aktivieren.

Der Cyrus-Default für IMAP-Timeouts liegt übrigens bei 30 Minuten. Weniger geht laut Doku nicht. Es ist nicht davon auszugehen, dass der Timeout bei Ihnen anders gesetzt ist, es sei denn, Sie haben das aktiv in der Konfiguration und im Template bewusst hochgesetzt.

In K9 kann man die Zeitspanne zwischen den IDLE-Kommandos einstellen (Einstellungen - Kontoeinstellungen - Nachrichten abrufen - Erweitert - Pushverbindung erneuern). Der Default liegt bei 24 Minuten und somit unter dem serverseitigem Timeout. Sie könnten das auch mal auf 12 Minuten setzen.

Viele Grüße,
Dirk Ahrnke