Skip to content

Fixed Find command to work with iPhone running ios 18.4.1 #147

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 1 commit into
base: develop
Choose a base branch
from

Conversation

mschering
Copy link
Contributor

What does this implement/fix? Explain your changes.

This pull request replaces my old pull request implementing the Find command. I took the base code and tested it but ran into an issue:

The Find command implementation:

$message = self::$backend->Fetch(false, $u['longid'], $cpo);

Didn't pass the folderId to the backend Fetch() method:

public function Fetch($folderid, $id, $contentparameters) {

The message can't be found that way. I also pass the server ID and not the long ID as kopano is the only backend that splits the long ID:

list($fsk, $sk) = Utils::SplitMessageId($id);

The BackendDiff class doesn't do this.

Does this close any currently open issues?

Not sure. But it might close #141

Any relevant logs, error output, etc?

...

Where has this been tested?

Server (please complete the following information):

  • OS: debian
  • PHP Version: 8.3
  • Backend for: Group-Office
  • and Version: current development branch

Smartphone (please complete the following information):

  • Device: iPhone 13
  • OS: iOS 18
  • Mail App Apple mail

@sebasi
Copy link

sebasi commented May 20, 2025

The backend should handle the long ids, as it generates these ids as it sees fit. ItemOperations doesn't have a folder id iirc so the handling of longids should be done exclusively in the backend IMHO.

@mschering
Copy link
Contributor Author

OK thanks, I can add this in my backend. But is it ok to pass false to $folderId too?

@sebasi
Copy link

sebasi commented May 20, 2025

But is it ok to pass false to $folderId too?

I would say so, yes. That's by design. The longid is self contained. The backend should be able to uniquely identify a message of the user just with this id.
The spec gives some good ideas too: https://learn.microsoft.com/en-us/openspecs/exchange_server_protocols/ms-ascmd/552f41c0-33ff-48ab-9fd0-92239e0577f0

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

iPhone find not returning emails
2 participants