nextcloud / nextcloud/mail

Inconsistent behaviour for incoming ics calender events

Open
#9,604 6 comments 1 reaction 0 assignees View on GitHub

Nobody has claimed this yet.

1. to develop bug feature:imip
Dominant language
JavaScript
Stars
1k
Forks
348
Avg merge
12h 28m
Merged PRs (30d)
91

Description

Steps to reproduce
  1. send a calendar invitation from an external calendar e.g. Outlook or Kopana
  2. attach the same ics file to an email and send it too
  3. compare the different behaviour - the first one resulting in not being able to import the event into the own calendar
Expected behavior

Nextcloud mail behaves consistently in both cases - or at least allows to import always.

Actual behavior

When sent as an attachment using a standard mail program, ics files appear as an email attachment and can be imported into the calendar:

image

But when issued from an external calender / PIM system such as Outlook or in this case Kopana the result ist different:

image

In this case, the Mail App recognises the ics attachment as a calendar event and displays it nicely. Unfortunately there is no way to add it to my calendar. BTW: In the ... menu there is a "create event" in the 2nd level but this does not take the event's date and time but creates an event for the actual time. There is another menu item to create a task right below - so it seems these are something else.

Mail app version

3.6.0

Mailserver or service

No response

Operating system

No response

PHP engine version

PHP 8.0

Web server

Apache (supported)

Database

MySQL

Additional info

Lets's have a look into the sources:

case 1 sent from Kopana

Return-Path: <prvs=08458d4b7d=t.****@*****.de>
X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on
	lvps***-***-***-***.dedicated.hosteurope.de
X-Spam-Level: 
X-Spam-Status: No, score=-1.9 required=7.0 tests=BAYES_00,MIME_QP_LONG_LINE,
	URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.2
X-Original-To: **@****.de
Delivered-To: **@****.de
Received: from vpn1.****.de (vpn1.****.de [***.***.***.***])
	by lvps***-***-***-***.dedicated.hosteurope.de (Postfix) with ESMTPS id A1AD31F38D
	for <**@****.de>; Thu, 25 Apr 2024 10:11:40 +0200 (CEST)
Received: from [***.***.***.***] (port=57528 helo=mail02.corp.****.de)
	by ****.****.de with esmtpsa  (TLS1.2) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
	(Exim 4.96)
	(envelope-from <****@****.de>)
	id 1rzuCf-0003Xx-2X
	for ****@****.de;
	Thu, 25 Apr 2024 10:11:37 +0200
Received: from localhost (localhost [127.0.0.1])
	by mail02.corp.****.de (Postfix) with ESMTP id BA31E700C3E
	for <****@****.de>; Thu, 25 Apr 2024 10:11:37 +0200 (CEST)
X-SASI-Hits: BODYTEXTP_SIZE_3000_LESS 0.000000,
	BODYTEXTP_SIZE_400_LESS 0.000000, BODY_SIZE_2000_2999 0.000000,
	BODY_SIZE_5000_LESS 0.000000, BODY_SIZE_7000_LESS 0.000000,
	CALENDAR_ATTACHED 0.000000, FROM_SAME_AS_TO_DOMAIN 0.000000,
	HTML_00_01 0.050000, HTML_00_10 0.050000, MIME_LOWER_CASE 0.050000,
	MIME_TEXT_ONLY_MULTI 0.000000, NO_FUR_HEADER 0.000000, OUTBOUND 0.000000,
	OUTBOUND_SOPHOS 0.000000, SENDER_NO_AUTH 0.000000, TO_NAME_IS_ADDY 0.000000,
	TRANSACTIONAL 0.000000, URI_WITH_PATH_ONLY 0.000000,
	X_PRIORITY_HIGH 0.000000, __ANY_URI 0.000000, __ATTACHMENT_NOT_IMG 0.000000,
	__ATTACH_CTE_8BIT 0.000000, __ATTACH_CTE_QUOTED_PRINTABLE 0.000000,
	__BODY_NO_MAILTO 0.000000, __BULK_NEGATE 0.000000,
	__CALENDAR_ATTACHED4 0.000000, __CP_URI_IN_BODY 0.000000, __CT 0.000000,
	__CTYPE_HAS_BOUNDARY 0.000000, __CTYPE_MULTIPART 0.000000,
	__CTYPE_MULTIPART_ALT 0.000000, __DQ_NEG_DOMAIN 0.000000,
	__DQ_NEG_HEUR 0.000000, __DQ_NEG_IP 0.000000,
	__FROM_DOMAIN_IN_ANY_TO1 0.000000, __FROM_DOMAIN_IN_RCPT 0.000000,
	__FROM_DOMAIN_NOT_IN_BODY 0.000000, __FROM_NAME_NOT_IN_BODY 0.000000,
	__FUR_RDNS_SOPHOS 0.000000, __HAS_FROM 0.000000, __HAS_MSGID 0.000000,
	__HAS_X_MAILER 0.000000, __HAS_X_PRIORITY 0.000000,
	__HEADER_ORDER_FROM 0.000000, __HELO_LOCALHOST 0.000000,
	__HELO_LOCALHOST1 0.000000, __HIGHBIT_ASCII_MIX 0.000000,
	__HTTPS_URI 0.000000, __MIME_TEXT_ONLY 0.000000, __MIME_TEXT_P 0.000000,
	__MIME_TEXT_P1 0.000000, __MIME_TEXT_P2 0.000000, __MIME_VERSION 0.000000,
	__MULTIPLE_RCPTS_TO_X2 0.000000, __MULTIPLE_URI_TEXT 0.000000,
	__NO_HTML_TAG_RAW 0.000000, __OUTBOUND_SOPHOS_FUR 0.000000,
	__OUTBOUND_SOPHOS_FUR_IP 0.000000, __OUTBOUND_SOPHOS_FUR_RDNS 0.000000,
	__PASSWORD_IN_BODY 0.000000, __RCPT_DOMAIN_NOT_TO 0.000000,
	__RCVD_FROM_DOMAIN 0.000000, __RCVD_FROM_SUSP_HOSTNAME 0.000000,
	__SANE_MSGID 0.000000, __SUBJ_HIGHBIT 0.000000,
	__SUBJ_TRANSACTIONAL 0.000000, __SUBJ_TR_GEN 0.000000,
	__TO_DOMAIN_IN_FROM 0.000000, __TO_HOST_IN_FROM 0.000000,
	__TO_MALFORMED_2 0.000000, __TO_NAME 0.000000,
	__TO_NAME_DIFF_FROM_ACC 0.000000, __TO_NO_NAME 0.000000,
	__TO_REAL_NAMES 0.000000, __URI_IN_BODY 0.000000, __URI_NOT_IMG 0.000000,
	__URI_NO_MAILTO 0.000000, __URI_NO_WWW 0.000000, __URI_NS 0.000000,
	__URI_WITH_PATH 0.000000, __UTF8_SUBJ 0.000000, __X_VIRUS_SCANNED 0.000000
X-SASI-Probability: 8%
X-SASI-RCODE: 200
X-SASI-Version: Antispam-Engine: 5.1.4, AntispamData: 2024.4.25.72716
X-Virus-Scanned: by amavisd-new-2.11.0 (20160426) (Debian) at
	corp.****.de
Received: from mail02.corp.****.de ([127.0.0.1])
	by localhost (mail02.corp.****.de [127.0.0.1]) (amavisd-new, port 10024)
	with ESMTP id NmG0BOI2pu2O; Thu, 25 Apr 2024 10:11:37 +0200 (CEST)
Received: from mail02.corp.****.de (localhost [127.0.0.1])
	by mail02.corp.****.de (Postfix) with ESMTP id 86EEF700C1E;
	Thu, 25 Apr 2024 10:11:37 +0200 (CEST)
Received: by mail02 (kopano-spooler) with MAPI; Thu, 25 Apr 2024 10:11:37
 +0200
Subject: =?UTF-8?Q?Canceled=3A_DWH-Projekt_-_Kl=C3=A4rung_der_Datenanforde?=
 =?UTF-8?Q?rungen_=28Folge=29?=
From: "**** ****" <t.****@****.de>
To: =?us-ascii?Q?****=40****=2Ede?= <****@****.de>, "**** ****"
  <****@****.de>
Date: Thu, 25 Apr 2024 08:11:37 +0000
Mime-Version: 1.0
Content-Type: multipart/alternative;
 boundary="=_V0xa8z-kV9WRMnXWg-pZNrGLTwxMxbYM87QbV5XxMX7BhWr6"
X-Priority: 1 (Highest)
X-Mailer: Kopano 8.7.25
Message-Id: <kcEE.ZPP5nVACQUe1pDeO6+MRGg.gAKgMeiW2gE@mail02.corp.****.de>

This is a multi-part message in MIME format. Your mail reader does not
understand MIME message format.
--=_V0xa8z-kV9WRMnXWg-pZNrGLTwxMxbYM87QbV5XxMX7BhWr6
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

Wann: Donnerstag 25. April 2024 11:00 - Donnerstag 25. April 2024 12:00
Wo: Zoom (https://us02web.zoom.us/j/********)

*~*~*~*~*~*~*~*~*~*

https://us02web.zoom.us/j/*******
--=_V0xa8z-kV9WRMnXWg-pZNrGLTwxMxbYM87QbV5XxMX7BhWr6
Content-Type: text/calendar; method=CANCEL; charset=utf-8
Content-Transfer-Encoding: 8bit

BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//Kopano//8.7.25//EN
CALSCALE:GREGORIAN
METHOD:CANCEL
BEGIN:VEVENT
STATUS:CANCELLED

case 2 (attachment sent - import works)

X-Original-To: ****@****.de
Delivered-To: ****@****.de
Received: from wolke.****.de (unknown [***.***.***.***])
	by lvps***-***-***-***.dedicated.hosteurope.de (Postfix) with ESMTPSA id 79ECE1F38D
	for <****@****.de>; Thu, 25 Apr 2024 20:13:42 +0200 (CEST)
MIME-Version: 1.0
Date: Thu, 25 Apr 2024 18:13:42 +0000
Content-Type: multipart/mixed;
 boundary="4faf01c3-1b03-4503-a800-5b509913ead2-1"
From: ****@****.de
Message-ID: <4bf29077b820dafd07c5fbe9df253c0df869d12e@****.de>
TLS-Required: No
Subject: Kopano
To: ****@*****.de

--4faf01c3-1b03-4503-a800-5b509913ead2-1
Content-Type: multipart/alternative;
 boundary="044fa952-1ca8-4e36-ba5d-dfedd1fc2825-2"

--044fa952-1ca8-4e36-ba5d-dfedd1fc2825-2
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: quoted-printable


--044fa952-1ca8-4e36-ba5d-dfedd1fc2825-2
Content-Type: text/html; charset="utf-8"
Content-Transfer-Encoding: quoted-printable

<!DOCTYPE html><html><head><meta http-equiv=3D"Content-Type" content=3D"t=
ext/html; charset=3Dutf-8"></head><body><br></body></html>
--044fa952-1ca8-4e36-ba5d-dfedd1fc2825-2--

--4faf01c3-1b03-4503-a800-5b509913ead2-1
Content-Type: text/calendar; name="events-kopano.ics"
Content-Disposition: attachment; filename="events-kopano.ics"
Content-Transfer-Encoding: base64

QkVHSU46VkNBTEVOREFSDQpWRVJTSU9OOtIuMA0KUFJPRElEOi0vL0tvcGFuby8vOC43LjI1
Ly9FTg0KQ0FMU0NBTEU6R1JFR09SSUFODQfNRVRIT0Q6UkVRVUVTVA0KQkVHSU46VkVWRU5U
DQpTVEFUVVM6Q09ORklSTUVEDQpBVFRFTdRFRTtST0xFPVJFUS1QQVJUSUNJUEFOVDtQQVJU
U1RBVD1ORUVEUy1BQ1RJT047UlNWUD1UUlVFO0NOPU1hcnRhIA0KIFdpY2hsaW5za2E6bWFp ...

Unfortunately case 1 appears more often - case 2 I created myself after learning that importing calendar events should work. They do, but not always :-)

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

The issue names no source files or tests. Reproduce both MIME forms described in the report and trace the mail calendar-event recognition and import entry points; done means invitations displayed as calendar events can be imported consistently with their original date and time.

Written by the indexing model from the issue text.

Assessment

Tech stack
javascript, php
Domain
full-stack
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.