Summary | ActiveSync Returns Incorecct Status to Device during MoveItems |
Queue | Horde Framework Packages |
Type | Bug |
State | Not A Bug |
Priority | 1. Low |
Owners | mrubinsk (at) horde (dot) org |
Requester | sascha (at) valckenier-kips (dot) de |
Created | 02/20/2015 (3789 days ago) |
Due | |
Updated | 02/23/2015 (3786 days ago) |
Assigned | 02/20/2015 (3789 days ago) |
Resolved | 02/23/2015 (3786 days ago) |
Github Issue Link | |
Github Pull Request | |
Milestone | |
Patch | No |
Assigned to Michael Rubinsky
State ⇒ Not A Bug
there may be something to workaround in Horde_Imap_Client. Closing
this bug. If/when you get a IMAP log of this broken behavior please
create a new ticket under Framework packages for Horde_Imap_Client.
horde 5.2.5
mysql server 5.5 with utf8
dbmail 3.1.8 and 3.2.3
cyrus 2.4
apache 2 + php5
--
I have copy my database from productionsystem to my testsystem.
And i have configured with same parameters of my production but only
local ips from my network.
First check with dbmail 3.1.8. My Mail are same as in production.
Horde webmail work same as in production.
Setup the iOS Device and try to move a Message. The same error as in
production. Delete Mail the same.
Then i switch to dbmail 3.2.3 and the same as bevor.
Now i have setup and configure a cyrus Mailserver and copy every
Message with imapsync to the cyrus.
The same try as bevor, and now it works without failures.
And additional bug is also fixed. i have system e-mails from logcheck,
with dbmail i can only see in horde/imp and on the Device a Attachment
"7BIT". With cyrus, the inline text will in horde/imp displayed and on
iOS the same. DBMAIl is a attachmend and cyrus show me the e-mail
corrcect.
I must check what returns now the function with dbmail returns
nothing. With cyrus i must show in the log.
The function will not return the ids and force_map is setup.
i have opend a ticket for the dbmail server with the 2 problems.
I think the dbmail imap server returns in other format as cyrus and so
were not detect the new msgid or the imap commandprotocoll is not
correct from dbmail server.
Greetings Sascha
UID if the force_map paramter is true in the copy() method (which it
is in Horde_ActiveSync_Imap_Adapter::moveMessage()).
\
Yes i am current in analyse and try to find at which procedure the
newid will not returned.
In my mind, i think the IMAP-Backend Server is the problem.
I use DBMail 3.1.8 current. I think the UIDPLUS Feature is needed for
ActiveSync for this. The Horde IMP comes out without this. This
feature is after my researches implemented, possible disabled or not
in the List of the Features of the Server and the Client does not use
then this.
My ActiveSync Client is a iOS Device and in the ActiveSync-Debug the
Response XML returns no MSGID and the Status 1 (Invalid Srouce).
The Server Moves the Message correctly but my Deivce means it's not
moved, but the message is removed from the current folder on device
and is to finde in the new folder. The Working is absolut correct but
the Status will not right returned. If i have new information after my
analyses, i will report this.
Priority ⇒ 1. Low
State ⇒ Feedback
The logic in the code you pasted is correct. If a new UID is not
returned for a moved message, something went wrong with moving the
message (or an issue with the driver code, but, as I said, I can't
reproduce this). WIthout a UID we can't report success back to the
device, since it needs to know the new UID.
You need to find out why the old_uid -> new_uid mapping is not being
returned in your case. The call stack looks something like this:
Horde_ActiveSync_Request_MoveItems calls
Horde_ActiveSync_Connector_Importer::importMessageMove(), which calls
Horde_Core_ActiveSync_Driver::moveMessage(), which calls
Horde_ActiveSync_Imap_Adapter::moveMessage()
I would start by looking in
Horde_ActiveSync_Imap_Adapter::moveMessage() and see what the imap
client is returning from the copy command. ($imap->copy).
If that is correct, next you should check the importer's
importMessageMove method to be sure the data is handled correctly there.
What client is this? A sync log might also be helpful to weed out any
obvious errors.
Priority ⇒ 2. Medium
Type ⇒ Bug
Summary ⇒ ActiveSync Returns Incorecct Status to Device during MoveItems
Queue ⇒ Horde Framework Packages
Milestone ⇒
Patch ⇒ No
State ⇒ Unconfirmed
In Function MoveItems (Moving a E-Mail from Inbox to a Folder), i
become Status value 1 back. my Mobile Device give me a error back,
that mail could't moved. But the Mail was on my DBMail 2.3.8 Server
Moved correctly.
I have enabled Debug and added Debugging Line in MoveItems.php.
On Move the PHP Script becomes no new Message ID from IMAPD and after
them the Script give back the Status "1".
I'am not sure, if the IMAP-Server or Horde/ActiveSync has the problem.
This will i testing later.
Here the Code from MoveItems, that give me the bad Status back:
if (empty($move_res['results'][$move[self::SRCMSGKEY]])) {
// Hm. Specs say to send INVALID_SRC if the msg is
// already moved, or no longer present, but that seems
// to lead to the client keeping the item and
continuously
// retrying. We can't fake the move since we need a
// new uid.....
$status = in_array($move[self::SRCMSGKEY],
$move_res['missing'])
? self::STATUS_INVALID_SRC
: self::STATUS_SERVER_ERR;
} else {
$new_msgid =
$move_res['results'][$move[self::SRCMSGKEY]];
}
The Statmante Return invalid Source. Is a way to correct this. My
Mobiledevice make me crazy. Every moving returns me a Errormessage.
Thanks Sascha