Release 50 of the z-push zimbra backend has just been uploaded to SourceForge
Z-Push Zimbra Backend | Download Z-Push Zimbra Backend software for free at SourceForge.net
Here is a summary of the changes.
Code:
THESE RELEASE NOTES FOR RELEASE 50 INCLUDE ALL DETAILS OF RELEASE 49 AS SO MANY
INSTALLATIONS ARE STILL RUNNING RELEASE 48 (OR EARLIER). THERE IS JUST ONE
MAJOR CHANGE MADE BETWEEN RELEASES 49 & 50. IT DOES NOT ALTER THE FUNCTIONALITY
BUT CHANGES SOME PHP FUNCTIONS USED TO IMPLEMENT THE FUNCTIONALITY IN ORDER TO
MINIMISE THE POSSIBILITY OF AN OUT-OF-MEMORY CRASH WHEN PROCESSING EMAILS
PLEASE READ THESE RELEASE NOTES COMPLETELY BEFORE IMPLEMENTING RELEASE 50
THIS IS EXPECIALLY CRITICAL IF YOU ARE TURNING ON ANY OF THE NEW FEATURES
AND ARE UPGRADING AN EXISTING INSTALLATION FROM RELEASE 48 OR EARLIER
AS A RESULT OF THE REWRITE OF EMAIL HANDLING, TWO ADDITIONAL INCLUDE FILES
ARE NEEDED - mime.php and mimePart.php - WHICH ARE USED FOR BUILDING EMAILS
THESE CAN BE PLACED IN THE INCLUDE OR BACKEND FOLDER (BUT JUST ONE OF THEM)
EMAIL SYNC WILL NOT WORK WITHOUT THEM
Changes Made To Revision 50:
- Removed use of Mail_MimeDecode for synching emails out to the device, and
for getting details of the original email for Smart Forward/Reply as it
was found to be consuming huge chunks of memory whenever an email had large
attachments. This could cause the sync to crash. It would continue to
crash every time the phone tried to sync the mail folder until such time
as the message was moved on the server, or was outside of the window for
days to sync. Replaced functionality with native zimbra soap calls.
Mail_MimeDecode is still needed for SendMail from the phone to handle the
raw rfc822 data sent to zimbra - hopefully people will not be sending
huge attachments from their phones but, even if the send does fail, it
will not affect the sync of emails out to the phone.
- Fixed filtering Calendar/Contacts/Task folders when virtual is set to false
for a folder type and SmartFolders is enabled
- Removed function FromHeaderFix - as it is not used
- Removed function GetAttachmentBody - as it is not used
- Removed function GetBody - as it is not used
- Changed text/html encoding from base64 to quoted-printable for mime body
as it generally produced smaller output
Changes Made To Revision 49:
- HTML email when used with a patched install of the as12 branch of z-push
from the z-push SVN repository. I will document the installation process
separately in the near future. It has been tested with Android 2.3 and
Windows Mobile 6.5 to date. I have no access to Apple devices so cannot
do any testing on those - so they may still need some work.
The remainder fo the changes below apply to installations under either an
official z-push 1.5.x release, or the patched as12 release.
- Added new options to the config file to allow disabling of any folder
type system-wide. See details in notes at top of zimbra.php file
- Added new SmartFolders feature - to allow users to control the list of
folders they wish to sync to their devices without using XML files
NOTE: If you wish to enable SmartFolders - you MUST stop sync and clear
all old state data from the state folder. Even if no SmartFolder names
are used, the sequence and naming of the folders will change
NOTE: If SmartFolders are enabled, XML files will not be processed
To enable the feature set ZIMBRA_SMART_FOLDERS to true in config.php
Once enabled, the final character in a folders name can take on special
meanings as follows :-
"-" Do not include this folder or any subfolders thereof
"." Include this folder - But do not include any subfolders thereof
- Changed Attachments handling to allow attachments in multi-part messages
to be returned. Also allows attaching of an email as a .eml file
- Added ability to filter out Completed Tasks during sync - Note: As zimbra
does not store a Completed Date, the last modified timestamp is used
- Added Reminders for Tasks (for zimbra 7.0+) - need a zcs 6.0.nn user to test
if it will work on zcs 6.0.nn also
- Enhancement in SendMail to include original message text for reply/forward
This is done in preference to attaching the original as Android devices are
unable to open .eml attachments natively at this time
- Added check in SendMail for z-push version to ensure we properly format the
path to the "state" directory - change is to match the config.php change to
the definition of STATE_DIR introduced by z-push 1.5
- Fix in SendMail to honour ZIMBRA_ENFORCE_VALID_EMAIL when set to true. If
the from email address used is not a valid one for the account it is
replaced by the default sender email address.
- Fix in SendMail to add sender name to the address in all cases. This is a
generalized fix based on the original premise of the ZIMBRA_NOKIA_MFE_FIX
as it seems that iPhone and Android also send emails without a sender name
- Fixed GetSearchResults to match response 'keys' to latest zpushdefs.php
- Fixed possible memory leaks and reduced memory usage by unset()ing rtf and
mime decoder class instances, and various arrays
- Removed the input parameter from the params array send to Mail_mimeDecode
as it is already passed to the class on creation, and created and unset a
params object to ensure that memory is cleaned up
- Fix for special characters (",&,<,>) in user passwords
- Added fix for Euro symbol & other non-standard cp1252 characters
- Changes made to MoveMessage to prevent items being moved from one account to
another, and from one folder type to another. These restrictions are to
prevent items becoming inaccessible on the device. See comments in function
for more information.
- Removed username from Sync Request log entry for z-push 1.5 and later as
the z-push engine is already logging it
- Fix for Categories field from HTC Desire (Android 2.2) - Phone sends an
empty string Categories field instead of an array. The blank field caused an
error in CreateTagRequest. Fix to check that (is_array(input->categories))
- Fix added for iPhone/iPad/etc Meeting Request/Response handling as it appears
that the Apple client sends off meeting requests/responses directly from the
handset instead of letting the server handle them
- Fix in PROVISIONING getPolicyKey to avoid writing "validate" records in
database for android devices
- Fix in PROVISIONING generatePolicyKey to limit upper bound on random number
generator to 2147483647 (as some phones cannot handle larger numbers)
- Added function ReportMemoryUsage (called on Logoff) to track memory use
- Added new functions that are needed for ActiveSync protocol version 12
- ImportMessageFlag - use of this required a change to request.php
- GetSettings - used for Out-Of-Office
- SetSettings - used for Out-Of-Office, and storing Handset data
- Updated GetSearchResults to add mailbox search capability
PLEASE READ THESE RELEASE NOTES COMPLETELY BEFORE IMPLEMENTING RELEASE 50
THIS IS EXPECIALLY CRITICAL IF YOU ARE TURNING ON ANY OF THE NEW FEATURES