Hello,
We are currently developing Active Sync support for SOGo (www.sogo.nu). Everything works well with Android and iOS based devices but Outlook 2013 doesn't work.
The FolderSync command works well, but the initial Sync request seems to be ignored by Outlook, as it keeps sending it over and over. Here is the initial FolderSync response:
<?xml version="1.0" encoding="utf-8"?><!DOCTYPE ActiveSync PUBLIC "-//MICROSOFT//DTD ActiveSync//EN" "http://www.microsoft.com/">
<FolderSync xmlns="FolderHierarchy:">
<Status>1</Status>
<SyncKey>1</SyncKey>
<Changes>
<Count>9</Count>
<Add>
<ServerId>mail/INBOX</ServerId>
<ParentId>0</ParentId>
<Type>2</Type>
<DisplayName>INBOX</DisplayName>
</Add>
<Add>
<ServerId>mail/Drafts</ServerId>
<ParentId>0</ParentId>
<Type>3</Type>
<DisplayName>Drafts</DisplayName>
</Add>
<Add>
<ServerId>mail/Sent</ServerId>
<ParentId>0</ParentId>
<Type>5</Type>
<DisplayName>Sent</DisplayName>
</Add>
<Add>
<ServerId>mail/Trash</ServerId>
<ParentId>0</ParentId>
<Type>4</Type>
<DisplayName>Trash</DisplayName>
</Add>
<Add>
<ServerId>mail/Aaaaappppp</ServerId>
<ParentId>0</ParentId>
<Type>12</Type>
<DisplayName>Aaaaappppp</DisplayName>
</Add>
<Add>
<ServerId>mail/Shared Folders/bar</ServerId>
<ParentId>0</ParentId>
<Type>12</Type>
<DisplayName>Dossiers partagés/bar</DisplayName>
</Add>
<Add>
<ServerId>vevent/personal</ServerId>
<ParentId>0</ParentId>
<Type>8</Type>
<DisplayName>Personal Calendar</DisplayName>
</Add>
<Add>
<ServerId>vtodo/personal</ServerId>
<ParentId>0</ParentId>
<Type>7</Type>
<DisplayName>Personal Calendar</DisplayName>
</Add>
<Add>
<ServerId>vcard/personal</ServerId>
<ParentId>0</ParentId>
<Type>9</Type>
<DisplayName>Personal Address Book</DisplayName>
</Add>
</Changes>
</FolderSync>
Here is the initial Sync response:
<?xml version="1.0" encoding="utf-8"?><!DOCTYPE ActiveSync PUBLIC "-//MICROSOFT//DTD ActiveSync//EN" "http://www.microsoft.com/">
<Sync xmlns="AirSync:">
<Collections>
<Collection>
<SyncKey>-1</SyncKey>
<CollectionId>mail/INBOX</CollectionId>
<Status>1</Status>
</Collection>
<Collection>
<SyncKey>-1</SyncKey>
<CollectionId>vevent/personal</CollectionId>
<Status>1</Status>
</Collection>
<Collection>
<SyncKey>-1</SyncKey>
<CollectionId>vcard/personal</CollectionId>
<Status>1</Status>
</Collection>
<Collection>
<SyncKey>-1</SyncKey>
<CollectionId>mail/Trash</CollectionId>
<Status>1</Status>
</Collection>
<Collection>
<SyncKey>-1</SyncKey>
<CollectionId>mail/Sent</CollectionId>
<Status>1</Status>
</Collection>
<Collection>
<SyncKey>-1</SyncKey>
<CollectionId>vtodo/personal</CollectionId>
<Status>1</Status>
</Collection>
<Collection>
<SyncKey>-1</SyncKey>
<CollectionId>mail/Aaaaappppp</CollectionId>
<Status>1</Status>
</Collection>
<Collection>
<SyncKey>-1</SyncKey>
<CollectionId>mail/Shared Folders/bar</CollectionId>
<Status>1</Status>
</Collection>
</Collections>
</Sync>
After that, here is the other Sync response:
<?xml version="1.0" encoding="utf-8"?><!DOCTYPE ActiveSync PUBLIC "-//MICROSOFT//DTD ActiveSync//EN" "http://www.microsoft.com/">
<Sync xmlns="AirSync:">
<Collections>
<Collection>
<SyncKey>127-317</SyncKey>
<CollectionId>mail/INBOX</CollectionId>
<Status>1</Status>
<Commands>
<Add xmlns="AirSync:">
<ServerId xmlns="AirSync:">125</ServerId>
<ApplicationData xmlns="AirSync:">
<From xmlns="Email:">sogo3@example.com</From>
<To xmlns="Email:">sogo10@example.com</To>
<Subject xmlns="Email:">test plain 1</Subject>
<DateReceived xmlns="Email:">20140114T133337Z</DateReceived>
<Importance xmlns="Email:">1</Importance>
<Read xmlns="Email:">1</Read>
<MessageClass xmlns="Email:">IPM.Note</MessageClass>
<InternetCPID xmlns="Email:">65001</InternetCPID>
<Body xmlns="AirSyncBase:">
<Type>4</Type>
<EstimatedDataSize>772</EstimatedDataSize>
<Truncated>0</Truncated>
<Data>Return-Path: <sogo3@example.com>
Received: from sogo.example.com (localhost [127.0.0.1])
by sogo (Cyrus v2.4.12-Debian-2.4.12-2) with LMTPA;
Tue, 14 Jan 2014 08:33:37 -0500
X-Sieve: CMU Sieve 2.4
Received: from localhost (localhost [127.0.0.1])
by sogo.example.com (Postfix) with ESMTP id AA70A2801A1
for <sogo10@example.com>; Tue, 14 Jan 2014 08:33:37 -0500 (EST)
User-Agent: SOGoMail 2.1.2
X-Forward: 172.20.20.7
MIME-Version: 1.0
from: "Wolfgang Fritz" <sogo3@example.com>
subject: test plain 1
message-id: <6a3b-52d53c80-1-61634300@97912150>
to: "sogo10" <sogo10@example.com>
content-type: text/plain; charset="utf-8"
date: Tue, 14 Jan 2014 08:33:37 -0500
content-transfer-encoding: 7bit
test plain 1
</Data>
</Body>
<ContentClass xmlns="Email:">urn:content-classes:message</ContentClass>
<Flag xmlns="Email:">
<FlagStatus>0</FlagStatus>
</Flag>
<NativeBodyType xmlns="AirSyncBase:">4</NativeBodyType>
</ApplicationData>
</Add>
<Add xmlns="AirSync:">
<ServerId xmlns="AirSync:">126</ServerId>
<ApplicationData xmlns="AirSync:">
<From xmlns="Email:">sogo3@example.com</From>
<To xmlns="Email:">sogo10@example.com</To>
<Subject xmlns="Email:">Event Invitation: "test meeting 1"</Subject>
<DateReceived xmlns="Email:">20140114T151104Z</DateReceived>
<Importance xmlns="Email:">1</Importance>
<Read xmlns="Email:">1</Read>
<MessageClass xmlns="Email:">IPM.Note</MessageClass>
<InternetCPID xmlns="Email:">65001</InternetCPID>
<Body xmlns="AirSyncBase:">
<Type>4</Type>
<EstimatedDataSize>3310</EstimatedDataSize>
<Truncated>0</Truncated>
<Data>Return-Path: <sogo3@example.com>
Received: from sogo.example.com (localhost [127.0.0.1])
by sogo (Cyrus v2.4.12-Debian-2.4.12-2) with LMTPA;
Tue, 14 Jan 2014 10:11:04 -0500
X-Sieve: CMU Sieve 2.4
Received: from localhost (localhost [127.0.0.1])
by sogo.example.com (Postfix) with ESMTP id 9A0C7280C68
for <sogo10@example.com>; Tue, 14 Jan 2014 10:11:04 -0500 (EST)
x-sogo-message-type: calendar:invitation
MIME-Version: 1.0
content-type: multipart/mixed; boundary="----=_=-_OpenGroupware_org_NGMime-29284-1389712264.533830-0------"
date: Tue, 14 Jan 2014 10:11:04 -0500
from: "Wolfgang Fritz" <sogo3@example.com>
subject: Event Invitation: "test meeting 1"
to: "sogo10" <sogo10@example.com>
Message-Id: <20140114151104.9A0C7280C68@sogo.example.com>
------=_=-_OpenGroupware_org_NGMime-29284-1389712264.533830-0------
content-type: text/html; charset=utf-8
<html>
<head>
<style type="text/css">
.container { max-width: 600px; }
h1 { font-size: 18px; font-weight: normal; padding-bottom: 9px; border-bottom: 1px solid #ccc; }
h1 small { font-size: 12px; color: #999; }
.dl-horizontal dt { float: left; width: 120px; overflow: hidden; clear: left; text-align: right; text-overflow: ellipsis; white-space: nowrap; }
dt { font-weight: bold; line-height: 17px; }
dt, dd { font-size: 12px; line-height: 18px; }
dt { display: block; }
h1, dd, .dl-list dt { margin-left: 130px; }
</style>
</head>
<body>
<div class="container">
<h1>Event Invitation: "test meeting 1"
<small>Wolfgang Fritz</small></h1>
<dl class="dl-horizontal">
<dt>Start:</dt>
<dd>Wednesday, January 15, 2014 - 08:00 America/Montreal
</dd>
<dt>End:</dt>
<dd>Wednesday, January 15, 2014 - 09:00 America/Montreal
</dd>
</dl>
</div>
</body>
</html>
------=_=-_OpenGroupware_org_NGMime-29284-1389712264.533830-0------
content-type: text/calendar; method=REQUEST; charset="ISO-8859-1"
content-transfer-encoding: quoted-printable
Content-Class: urn:content-classes:calendarmessage
BEGIN:VCALENDAR
PRODID:-//Inverse inc./SOGo 2.1.2//EN
VERSION:2.0
METHOD:REQUEST
BEGIN:VTIMEZONE
TZID:America/Montreal
X-LIC-LOCATION:America/Montreal
BEGIN:DAYLIGHT
TZOFFSETFROM:-0500
TZOFFSETTO:-0400
TZNAME:EDT
DTSTART:19700308T020000
RRULE:FREQ=3DYEARLY;BYMONTH=3D3;BYDAY=3D2SU
END:DAYLIGHT
BEGIN:STANDARD
TZOFFSETFROM:-0400
TZOFFSETTO:-0500
TZNAME:EST
DTSTART:19701101T020000
RRULE:FREQ=3DYEARLY;BYMONTH=3D11;BYDAY=3D1SU
END:STANDARD
END:VTIMEZONE
BEGIN:VEVENT
UID:7264-52D55380-1-3CD17680
SUMMARY:test meeting 1
CLASS:PUBLIC
ATTENDEE;PARTSTAT=3DNEEDS-ACTION;CN=3Dsogo10;ROLE=3DREQ-PARTICIPANT;RSV=
P=3DTRUE:mai
lto:sogo10@example.com
ORGANIZER;CN=3DWolfgang Fritz:mailto:sogo3@example.com
CREATED:20140114T151104Z
DTSTAMP:20140114T151104Z
LAST-MODIFIED:20140114T151104Z
DTSTART;TZID=3DAmerica/Montreal:20140115T080000
DTEND;TZID=3DAmerica/Montreal:20140115T090000
TRANSP:OPAQUE
END:VEVENT
END:VCALENDAR
------=_=-_OpenGroupware_org_NGMime-29284-1389712264.533830-0--------
</Data>
</Body>
<ContentClass xmlns="Email:">urn:content-classes:message</ContentClass>
<Flag xmlns="Email:">
<FlagStatus>0</FlagStatus>
</Flag>
<NativeBodyType xmlns="AirSyncBase:">4</NativeBodyType>
</ApplicationData>
</Add>
</Commands>
</Collection>
<Collection>
<SyncKey>1390234625</SyncKey>
<CollectionId>vevent/personal</CollectionId>
<Status>1</Status>
<Commands>
<Add xmlns="AirSync:">
<ServerId xmlns="AirSync:">1358-52DD4C00-7-1C8F5920.ics</ServerId>
<ApplicationData xmlns="AirSync:">
<StartTime xmlns="Calendar:">20140120T130000Z</StartTime>
<EndTime xmlns="Calendar:">20140120T133000Z</EndTime>
<TimeZone xmlns="Calendar:">LAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACwGQsAAAABAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQFwMAAAACAAIAAAAAAAAAxP///w==</TimeZone>
<Organizer_Email xmlns="Calendar:"/>
<Organizer_Name xmlns="Calendar:"/>
<Subject xmlns="Calendar:">test meeting 1</Subject>
<UID xmlns="Calendar:">040000008200E00074C5B7101A82E0080000000050837F27D115CF01000000000000000010000000CDB129B5CE29804CB432AF17CBC48EB5</UID>
<Sensitivity xmlns="Calendar:">0</Sensitivity>
<BusyStatus xmlns="Calendar:">0</BusyStatus>
</ApplicationData>
</Add>
</Commands>
</Collection>
<Collection>
<SyncKey>1390234548</SyncKey>
<CollectionId>vcard/personal</CollectionId>
<Status>1</Status>
<Commands>
<Add xmlns="AirSync:">
<ServerId xmlns="AirSync:">1358-52DD4B80-5-1C8F5920.vcf</ServerId>
<ApplicationData xmlns="AirSync:">
<LastName xmlns="Contacts:">Brocoli</LastName>
<FirstName xmlns="Contacts:">Annie</FirstName>
</ApplicationData>
</Add>
</Commands>
</Collection>
<Collection>
<SyncKey>214-74</SyncKey>
<CollectionId>mail/Trash</CollectionId>
<Status>1</Status>
</Collection>
<Collection>
<SyncKey>104-118</SyncKey>
<CollectionId>mail/Sent</CollectionId>
<Status>1</Status>
</Collection>
<Collection>
<SyncKey>1390234625</SyncKey>
<CollectionId>vtodo/personal</CollectionId>
<Status>1</Status>
<Commands>
<Add xmlns="AirSync:">
<ServerId xmlns="AirSync:">1358-52DD4B00-1-1C8F5920.ics</ServerId>
<ApplicationData xmlns="AirSync:">
<Complete xmlns="Tasks:">0</Complete>
<DateCompleted xmlns="Tasks:">(null)</DateCompleted>
<Importance xmlns="Tasks:">1</Importance>
<ReminderSet xmlns="Tasks:">0</ReminderSet>
<Sensitivity xmlns="Tasks:">0</Sensitivity>
<Subject xmlns="Tasks:">test 2</Subject>
</ApplicationData>
</Add>
</Commands>
</Collection>
<Collection>
<SyncKey>1-1</SyncKey>
<CollectionId>mail/Aaaaappppp</CollectionId>
<Status>1</Status>
</Collection>
<Collection>
<SyncKey>1-1</SyncKey>
<CollectionId>mail/Shared Folders/bar</CollectionId>
<Status>1</Status>
</Collection>
</Collections>
</Sync>
As you can see, there are 2 mails, 1 event and 1 contact.
Can anyone tell me what could be wrong in our response which could lead Outlook 2013 to reject it?
Thanks,