Stellen Sie den Inhaltstyp der E-Mail-Nachricht für den Anhang auf „Text / Kalender“ ein. method = REQUEST ”
Ich versuche, eine iCalendar-formatierte ICS-Datei von App Engine mit der App Engine-E-Mail-API zu senden. Dies funktioniert hervorragend in GMail. Outlook erkennt die Datei jedoch nicht, und meines Erachtens liegt das Problem darin, dass der Inhaltstyp auf "Text / Kalender" und nicht auf "Text / Kalender; Methode = ANFRAGE" festgelegt ist.
Ich habe versucht, E-Mails mit Telnet mit und ohne "method = REQUEST" zu senden, um festzustellen, dass Outlook die ics-Datei nur dann bearbeitet, wenn dies enthalten ist. Ich habe die von App Engine gesendeten Header überprüft und festgestellt, dass sie nicht method = REQUEST enthalten. Aus diesem Grund glaube ich, dass dies das Problem ist.
Ich habe auch andere Leute gesehen, die dieses Problem gemeldet habenHier undHier. Es gibt eine Java-Lösung für den ersten Link, aber nachdem ich jetzt die App Engine-Mail-API mit einem feinen Zahnkamm durchgesehen habe, war es mir bisher nicht möglich, den Inhaltstyp mit Python festzulegen.
Ich habe versucht, das EXTENSION_MIME_MAP-Diktat zu überschreiben:
mail.EXTENSION_MIME_MAP['ics'] = 'text/calendar; charset=utf-8; method=REQUEST;'
und den Header selbst setzen:
message.headers = {'content-type': 'text/calendar; charset=utf-8; method=REQUEST;'}
Beide waren ein langer Schuß, und es war nicht überraschend, dass sie beide nicht funktionierten.
Wie kann das gemacht werden?