diff --git a/lib/ext/Syncroton/Command/Options.php b/lib/ext/Syncroton/Command/Options.php --- a/lib/ext/Syncroton/Command/Options.php +++ b/lib/ext/Syncroton/Command/Options.php @@ -26,8 +26,8 @@ { // same header like Exchange 2xxx??? return [ - 'MS-Server-ActiveSync' => '14.00.0536.000', - 'MS-ASProtocolVersions' => '2.5,12.0,12.1,14.0,14.1', + 'MS-Server-ActiveSync' => '16.00.0536.000', + 'MS-ASProtocolVersions' => '2.5,12.0,12.1,14.0,14.1,16.0', 'MS-ASProtocolCommands' => 'FolderCreate,FolderDelete,FolderSync,FolderUpdate,GetAttachment,GetItemEstimate,ItemOperations,MeetingResponse,MoveItems,Provision,ResolveRecipients,Ping,SendMail,Search,Settings,SmartForward,SmartReply,Sync,ValidateCert', ]; } diff --git a/lib/ext/Syncroton/Model/Email.php b/lib/ext/Syncroton/Model/Email.php --- a/lib/ext/Syncroton/Model/Email.php +++ b/lib/ext/Syncroton/Model/Email.php @@ -19,6 +19,7 @@ * @property array $flag * @property Syncroton_Model_EmailBody $body * @property array $cc + * @property array $bcc * @property array $to * @property int $lastVerbExecuted * @property DateTime $lastVerbExecutionTime @@ -85,6 +86,7 @@ 'sender' => ['type' => 'string', 'supportedSince' => '14.0'], 'umCallerID' => ['type' => 'string', 'supportedSince' => '14.0'], 'umUserNotes' => ['type' => 'string', 'supportedSince' => '14.0'], + 'bcc' => ['type' => 'string', 'supportedSince' => '16.0'], ], ]; } diff --git a/lib/ext/Syncroton/Server.php b/lib/ext/Syncroton/Server.php --- a/lib/ext/Syncroton/Server.php +++ b/lib/ext/Syncroton/Server.php @@ -138,7 +138,7 @@ $requestBody = $this->_body; } - header("MS-Server-ActiveSync: 14.00.0536.000"); + header("MS-Server-ActiveSync: 16.00.0536.000"); // avoid sending HTTP header "Content-Type: text/html" for empty sync responses ini_set('default_mimetype', 'application/vnd.ms-sync.wbxml'); diff --git a/lib/ext/Syncroton/Wbxml/Dtd/ActiveSync/CodePage22.php b/lib/ext/Syncroton/Wbxml/Dtd/ActiveSync/CodePage22.php --- a/lib/ext/Syncroton/Wbxml/Dtd/ActiveSync/CodePage22.php +++ b/lib/ext/Syncroton/Wbxml/Dtd/ActiveSync/CodePage22.php @@ -38,5 +38,8 @@ 'AccountId' => 0x11, 'FirstDayOfWeek' => 0x12, 'MeetingMessageType' => 0x13, + 'IsDraft' => 0x15, + 'Bcc' => 0x16, + 'Send' => 0x17, ]; } diff --git a/lib/kolab_sync_data_email.php b/lib/kolab_sync_data_email.php --- a/lib/kolab_sync_data_email.php +++ b/lib/kolab_sync_data_email.php @@ -35,6 +35,7 @@ */ protected $mapping = [ 'cc' => 'cc', + 'bcc' => 'bcc', //'contentClass' => 'contentclass', 'dateReceived' => 'internaldate', //'displayTo' => 'displayto', //? @@ -191,10 +192,11 @@ break; case 'cc': + case 'bcc': case 'to': case 'replyto': case 'from': - $addresses = rcube_mime::decode_address_list($headers->$name, null, true, $headers->charset); + $addresses = rcube_mime::decode_address_list($headers->get($name, false), null, true, $headers->charset); foreach ($addresses as $idx => $part) { // @FIXME: set name + address or address only? diff --git a/lib/kolab_sync_message.php b/lib/kolab_sync_message.php --- a/lib/kolab_sync_message.php +++ b/lib/kolab_sync_message.php @@ -212,9 +212,6 @@ $headers['To'] = 'undisclosed-recipients:;'; } - // remove Bcc header - unset($smtp_headers['Bcc']); - // send message if (!is_object($rcube->smtp)) { $rcube->smtp_init(true);