apple / ccs-calendarserver

The Calendar and Contacts Server.
https://www.calendarserver.org
Apache License 2.0
484 stars 136 forks source link

outlook.com and office365 - calendar invites - problem with plus addressing #541

Open hdijkema opened 5 years ago

hdijkema commented 5 years ago

The iMIP message send by outbound.py uses 'plus addressing' for the reply-to field and the ORGANIZER field in the ics message. However, outlook.com / office365 clear the '+' sign in the ics message, resulting in a wrong reply address when the user accepts or denies the invite.

Changing the line:

addressWithToken = "%s+%s@%s" % (pre, token, post)

to:

addressWithToken = "%s%%2B%s%%40%s" % (pre, token, post)

in outbound.py, solves this issue.

gmail accepts the "url encoded address" also.

dreness commented 4 years ago

I took a quick pass at the proposed change, but I'm pretty sure more than just this is required - like maybe a corresponding change for inbound processing? With just this change, one of the txdav.caldav.datastore.scheduling.imip tests failed, and in trying to fix that, more tests began failing...

Also I'm not really sure that this change would be 'correct', even if it appeases outlook. Any change here should avoid breaking existing clients and workflows, which suggests the need for additional support for handling either url-encoded or non-url-encoded addresses. Unfortunately I don't have the time to figure this out...

To run just the tests in question, from the base ccs-calendarserver directory, do:

./bin/test txdav.caldav.datastore.scheduling.imip