I presume it’s complaining that the return can be modified by the function… it doesn’t prevent the email from being sent, however.

The other issue is that in the caldav backend if there is no organizer email set (which will be true for an event with no attendees by default) some mobiles will not match it. There’s a workaround in the code for this but the username is not set. A diff to fix this, which then requires you sign into Exchange with “domain\user” (e.g. “denninger.net\karl”) so the domain is picked up is:

The other issue is that in the caldav backend if there is no organizer email set (which will be true for an event with no attendees by default) some mobiles will not match it. There’s a workaround in the code for this but the username is not set. A diff to fix this, which then requires you sign into Exchange with “domain\user” (e.g. “denninger.net\karl”) so the domain is picked up is:

There’s a further problem I’ve found - the IMAP backend doesn’t support subfolders at all, and my server does – which makes them inaccessible. The “forked” version of Z-push (fmbete’s) which I am running right now does support them properly; I also have some other contributions to that codebase that I’d be happy to bring over here too; the most-important is a change so a “delete” command only actually deletes if in the Trash folder; it otherwise moves to the Trash and marks it read.

This is critical for IMAP backend connections because IMAP as a protocol on a delete command doesn’t actually delete – it just sets the deleted flag. The “expunge” command to the server then removes everything in the current folder with the delete flag set. So what happens if you do a “delete/expunge” the way the code currently sits is that if you have, say, a Thunderbird PC client connected to the same IMAP server, and you have marked several messages for deletion, they’re not actually gone yet. Now you delete one email on your phone and BANG – everything you marked is permanently expunged. That is never what you want to happen… It doesn’t bite you of course if you’re never on anything but an Exchange client, but in a multi-client environment you’ll get nailed by that one and it will result in much crying because Expunge really IS expunge…

So if I can figure out how to get IMAP folders to work properly on this rev then I’ll also contribute the change to fix that, which is sorta important for anyone with an IMAP backend (e.g. someone using Dovecot / Postfix in a multi-client environment, etc.)

Francisco (fmbiete) contributed his changes to the imap backend and we merged them into Z-Push for 2.3.0. I don’t know though if there are more changes which haven’t made into the code and how different this forked version is from the current Z-Push.

Feel free to open pull requests with the changes and we’ll review them.

I sent the request in for approval of my Jira account and will send in the patch for that once it’s set up. I started the issue and posted a cdiff as an attachment, but don’t see a “create branch” link (which I assume means I’m not yet approved?)

I’ve added your user to the Z-Push project. Please check if you are able to change ticket’s status and also create a branch (you might have to login into stash.z-hub.io once for that - the credentials are the same as for JIRA).