What would cause an ICS file sent out by Lucee/ColdFusion and Amazon SES to be rejected by the Android Gmail app?

Viewed 280

I created an ICS file to send out to our users on certain actions. Said file passed validation, and worked on many email services (Windows Live Mail, Outlook, Hotmail web interface, and Gmail web interface), but my GMail app on my Android phone simply reported "describe error".

I assumed this was an error with my description field, so I spent hours fiddling with that field, which sometimes caused it to work, and other times caused it to fail, even with the same ICS file. Eventually I realized that the following were true:

  • Any ICS file sent from my web app caused a "describe error" error in Android GMail
  • Any ICS file sent from my web app, saved, and then resent in a new message from any email client would open successfully in GMail / calendar
  • Any ICS file sent from my web app, then forwarded to myself, would open successfully in GMail / calendar

This caused me to believe that this was likely a MIME type issue. So I tried setting the MIME type in the cfmailparam tag. My final code, at this point, looks like this:

    <cfmail from="#fromAddr#" to="#email#" subject="#meetingSubject#" type="HTML">
        #thisBody#
        <cfmailparam file="Calendar.ics" content="#icsBody#" type="text/calendar">
    </cfmail>

I continued to receive the error in Android GMail. What could be causing this "describe error" and is there any way to get more debugging information for it? At this point I'm not even sure what the problem is, let alone whether it's occurring in Lucee, SES, the ICS file, Hotmail (my email provider), Android GMail (the app), or the Android calendar app.

My emails are being generated and sent on a Lucee (5.3.6.61) server. I've setup Amazon SES as my only email server in CF Admin. My SES is in sandbox mode and sending to verified emails. Other emails are sent out and received fine. These emails are sent out and received just fine. One of my test ICS files is below, though I have replicated this issue with a description field containing only the word "test":

BEGIN:VCALENDAR
VERSION:2.0
METHOD:REQUEST
BEGIN:VEVENT
DESCRIPTION:A test type meeting has been scheduled by Test 
    user for your partner\, John. \n\n Scheduled date: Tuesday\, Nov 
    24\, 2020\n Scheduled time: 11:30 AM\n \n\n This is an online meeting 
    held via your computer or smart phone. Please use the provided link to 
    join this meeting five minutes before the start time. You may join using 
    only audio\, or with both audio and video through your phone\'s front 
    camera or computer webcam. \n\n No download is required on a PC\; you 
    may join the meeting within your web browser. If you plan to use a smart 
    phone\, please allow extra time before the meeting to install the app.
    \n\n https://xxxxxxxxxxxxxxx.com/456218
DTSTAMP:20201124T173000Z
DTEND:20201124T163000Z
DTSTART:20201124T173000Z
LOCATION:https://xxxxxxxxxxxxxxx.com/456218
ORGANIZER:MAILTO:Service@xxxxxxxxxxxxxx.com
ATTENDEE:xxxxxxxxxxxxxxxxxx@xxxxxxxxxxxxx.com
SEQUENCE:0
SUMMARY:Test type meeting
UID:98265439657154944
END:VEVENT
END:VCALENDAR
0 Answers
Related