Viewing 6 replies - 1 through 6 (of 6 total)
  • Plugin Author anmari

    (@anmari)

    Indeed it might be, especially if it is likely that there might not be an email there. I’ll fix that but note It sounds like you might have an ATTENDEE section in your ics file which is empty, or it has something the plugin has not anticipated.

    “The calendar address specified within the ‘ORGANIZER’ and ‘ATTENDEE’ properties in an iCalendar object sent using iMIP MUST be a proper ‘mailto:’ [MAILTO] URI specification for the corresponding ‘Organizer’ or ‘Attendee’ of the ‘VEVENT’ or ‘VTODO’.”

    https://tools.ietf.org/html/rfc5545#section-3.8.4.1
    https://msdn.microsoft.com/en-us/library/ee624844(v=exchg.80).aspx

    Would you please post the public ics link you are using (or email me [email protected]) so that I can see what it has and whether it is a case that I should accommodate in some way.

    Thanks

    Thread Starter nichtsistwahr

    (@nichtsistwahr)

    Thanks.

    You can find the public ics here. (~1.6 MB)

    FYI, the .ics is generated by SOGo, the caldav clients used to create events are Apple Calendar and DAVdroid.

    Plugin Author anmari

    (@anmari)

    HI thanks for sending that – always nice to test with real test data

    wow it is large – there are over 2390 events of which only about 329 are in 2015 (and of course some/bulk of those in the past too).

    It’d be a good idea from a performance point of view to see if you could delete or exclude the past events to reduce unnecessary work in fetching and parsing the ics file

    At a quick look, I can’t see any empty mailto’s but there ones that have
    ORGANIZER:mailto:Sogo
    (ie not an email address, which according to RFC5545 is required).

    Google seems happy to import, but it doesn’t seem to upload attendees.

    I also always run the ics files through the validators (they not 100%, but it is sometimes informative)

    In this case, its not helpful!
    a) The https://icalvalid.cloudapp.net/ crashes with a server error on that ics url, on a file of it and on a small extract (but not on other test ics files i have), so WHO knows what it thinks is going on there!

    b) The severinghaus validator doesn’t appear to allow yet for the ACKNOWLEDGED property which is sitting in the VALARMS in the file (seems it’s not a formal property yet, just draft?), so it spews at that, and won’t try further (sadly)
    https://severinghaus.org/projects/icv/?url=https%3A%2F%2Ffabioreinhardt.de%2Fwp-content%2Fuploads%2Ffabioreinhardt.ics says
    “Sorry, your calendar could not be parsed.
    Error: Error was: Error at line 2670: Illegal property [ACKNOWLEDGED]
    Cause: Caused by: Illegal property [ACKNOWLEDGED]”

    With a quick google using “ORGANIZER:mailto: valid email”, it seems not having a valid email may cause problems elsewhere:
    https://forum.owncloud.org/viewtopic.php?t=4105&p=39874
    https://github.com/owncloud/apps/issues/1116
    https://bugs.kde.org/show_bug.cgi?id=140624

    This (my) plugin will in future probably just ignore properties with invalid emails (adding in the overhead of having to validate the emails), rather than fail or give error message.

    Plugin Author anmari

    (@anmari)

    plugin will cope better with such an anomaly in latest version.

    Thread Starter nichtsistwahr

    (@nichtsistwahr)

    Awesome. I still get that same notice though. ??

    How about changing that line (249) to something like:
    if (isset($email) && is_email($email)) $attendee['mailto'] = $email;
    since there still is no guarantee the variable will be set. Alternatively you could of course just initialize the variable.

    I managed to track down the source of the invalid email address btw. It turns out DAVdroid or rather android simply assumes the account name is a valid email address and neither does any checks whether that’s actually true. SOGo then passed on the string without verifying it. Which now leaves me with a bunch of invalid organizer entries. :/

    Plugin Author anmari

    (@anmari)

    I’m staring at that thinking how did I not include a check for existence – too much coffee? – not enough coffee? – wrong kind of coffee?

    Thanks for the update on where the bad entries are coming from. One of my very first programming memory / lesson (back in the dark ages) was “never ever trust the input data” – my tutor just ran his hand over the keyboard and squished random input everywhere.

    (Sips the coffee) – It’ll be in the next update.

Viewing 6 replies - 1 through 6 (of 6 total)
  • The topic ‘Notice: Undefined variable: email in includes/amr-import-ical.php on line 256’ is closed to new replies.