Move mails between folders on different backend servers – Problem with Horde Webmail

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hello,
we have a traditional murder (frontend with 2 backend servers – cyrus-imapd-3.2.6-Debian-3.2.6-2+deb11u1).
We use shared folder (group namesapce).
Moving e-mails between folders on different backend servers (from backend1 to backend2) works with Thunderbird, alpine etc. With Horde Webmail there is an error, see below.

IMAP logs:

OK:                                                                             
Frontend:
<1648127917<6 UID MOVE 855056 group.fritest2
>1648127917>* OK [COPYUID 1647952540 855056 11] Completed

Backend (same source and target)
<1648127917<6 UID Move 855056 {14+}
>1648127917>* OK [COPYUID 1647952540 855056 11] Completed

NOT OK:
Frontend:
<1648127910<6 UID MOVE 855054 group.fritest
>1648127910>6 OK [COPYUID 1611826992 15] Completed

Backend (source):
<1648127910<6 Uid Fetch 855054 (Flags Internaldate)
>1648127910>* 1981 FETCH (FLAGS (\Seen $Label4 NonJunk) UID 855054 INTERNALDATE "23-Mar-2022 19:55:11 +0100")
6 OK Completed (0.000 sec)
<1648127910<PROXY2 Uid Fetch 855054 (Rfc822.peek)
>1648127910>* 1981 FETCH (UID 855054 RFC822 {3129}
Return-Path: …
PROXY2 OK Completed (0.000 sec)

Backend (target):
<1648127910<6 Append {13+}
group.fritest (\Seen $Label4 NonJunk) "23-Mar-2022 19:55:11 +0100" {3129+}
Return-Path: …
>1648127910>6 OK [APPENDUID 1611826992 15] Completed
<1648127910<Q01 LOGOUT
>1648127910>* BYE LOGOUT received
Q01 OK Completed

So the responses on COPYUID are different.

When moving between different backend servers, Horde Webmail throws warnings and errors in its log file:

2022-03-24T14:18:30 WARNING: HORDE: [imp] PHP ERROR: array_combine(): Both parameters should have an equal number of elements [pid 64686 on line 4905 of "/usr/share/pear/Horde/Imap/Client/Socket.php"]

PHP source is:

       case 'COPYUID':                                                                                                                                                                                  
            // Defined by RFC 4315
            // COPYUID: [0] = UIDVALIDITY, [1] = UIDFROM, [2] = UIDTO
            $pipeline->data['copyuid'] = array_combine(
                $this->getIdsOb($rc->data[1])->ids,
                $this->getIdsOb($rc->data[2])->ids
            );

So the IMAP client in Horde expects 3 values for COPYUID response (and doesn't handle if there are 2 values only – it throws errors in the following processing).

Is cyrus-imapd wrong in this case returning 2 values only (missing the source UID of the moved message)?

Thanks,
Frank

--
Chemnitz University of Technology, Germany

Attachment: smime.p7s
Description: S/MIME Cryptographic Signature






[Index of Archives]     [Cyrus SASL]     [Squirrel Mail]     [Asterisk PBX]     [Video For Linux]     [Photo]     [Yosemite News]     [gtk]     [KDE]     [Gimp on Windows]     [Steve's Art]

  Powered by Linux