JM-Lemmi / ical-relay

Relay ical urls and edit them on the fly with different modules.
GNU General Public License v3.0
9 stars 2 forks source link

[Source] E-Mail. #11

Open JM-Lemmi opened 2 years ago

JM-Lemmi commented 2 years ago

I'm imagining this working on the Client side, that you just have to invite "cal+profilename@julian-lemmerich.de" for the meeting.

The Entry will be stripped of all the invite features, but the rest should stay the same.

JM-Lemmi commented 2 years ago

An invitation E-Mail arrives like this:

From julian.lemmerich@outlook.de  Thu Oct  6 22:33:00 2022
Return-Path: <julian.lemmerich@outlook.de>
X-Original-To: xxx@xxxxxxx.de
Delivered-To: xxx@xxxxxxxx.de
Received: from EUR05-AM6-obe.outbound.protection.outlook.com (mail-am6eur05olkn2052.outbound.protection.outlook.com [40.92.91.52])
        by mail.xxxxxxx.de (Postfix) with ESMTPS id A9AE5FB9DE
        for <xxx@xxxxxxx.de>; Thu,  6 Oct 2022 22:33:00 +0200 (CEST)
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=f/G/n13oD05zy2Vv6Tq+R+7QN7MwodZYBLuMpfHI4APVD8Gg6Y27Ugu+amVKX9g1xi7BgGmvbbOpn1h3/tEESUIVARgtALKJogJH/cKeZ3jE9jUwAilDsctECvhE55VFI29D/tb6ISNQljOwITv7HN+/e1scyfyrrbpmbxYf3Y4HmR4L4s0k9pcBgXdqxgIj9Zb24pobLQaFX2Ir5FaMgHRVODevndMeH2Mm3A1lBn/BkxZ/y2YcoWuvSb91lTVkuDv9HgZVWHUwYB9vD8B1yQoLQZoKDTRv48UK++klSHbhrEkqkONqltJmteU+LmaEXxFi1XPwgZ9J0fsIrlFIrg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=ixozRWGCGjrtsJUcUtYuO8pNgr2p5C4VIZnOcJ3crPk=;
 b=U7ZccMnIfAmO6zH4wSaHVZLHOM3GDN80v+8/IT39sib5eqrayObbUVDxtvfey5g7PqxheoCSMvaUcMLs69aLEIcKlidkh0STCZ3hrq/eYocKoYDBODA0qNXX0ihI6jEliKP4sbmpffjtZxRF+iOqzUrmw5YP6vIJEh6l6r2fEtYhGKeORrIrGG6vEsGcFE8bVbZflqNuA7KyFMYLUJlpsC6r3muRqYQ6evR9ilGRmiLyV89Cf4iFVl5/n0kOyaTKNGS2oY58yC2z2vWiyN9Zc6etGDfY538It1+O/CHd51grbvQkAxo0YrxXB+0SFoWClFSIp9QQ0XlLJckd0CeCFQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none;
 dkim=none; arc=none
Received: from PAXP195MB1151.EURP195.PROD.OUTLOOK.COM (2603:10a6:102:1ad::8)
 by AM0P195MB0466.EURP195.PROD.OUTLOOK.COM (2603:10a6:20b:16d::23) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5676.28; Thu, 6 Oct
 2022 20:32:59 +0000
Received: from PAXP195MB1151.EURP195.PROD.OUTLOOK.COM
 ([fe80::38ce:1dd7:4bf3:d8fa]) by PAXP195MB1151.EURP195.PROD.OUTLOOK.COM
 ([fe80::38ce:1dd7:4bf3:d8fa%6]) with mapi id 15.20.5676.031; Thu, 6 Oct 2022
 20:32:59 +0000
From: Julian Lemmerich <julian.lemmerich@outlook.de>
To: "xxx@xxxxxxx.de" <xxx@xxxxxxx.de>
Subject: Testeintrag
Thread-Topic: Testeintrag
Thread-Index: AdjZwstavJxGMFUEQLizbSN3yBH0BQAAAVvw
Date: Thu, 6 Oct 2022 20:32:59 +0000
Message-ID:
 <PAXP195MB1151CD3F4EC4C13776F5F668FB5C9@PAXP195MB1151.EURP195.PROD.OUTLOOK.COM>
Accept-Language: de-DE, en-US
Content-Language: de-DE
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-ms-publictraffictype: Email
x-ms-exchange-calendar-series-instance-id:
 BAAAAIIA4AB0xbcQGoLgCAAAAAAQIE+U09nYAQAAAAAAAAAAEAAAAHLVOCGULHpBo/udv7HreXk=
x-tmn: [4bRAjK/0avPgA/3CmFRV7ZUKwTwxDKA3SZLj8mudTO3f4mO4M/1qS5CgPPxuRFwB]
x-ms-traffictypediagnostic:
 PAXP195MB1151:EE_MeetingMessage|AM0P195MB0466:EE_MeetingMessage
x-ms-office365-filtering-correlation-id: ab9d2df0-c228-4502-8b71-08daa7d9f58f
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info:
 RVqG9FSJfNStX+KcMxju+zO1J2Nb9KuffeOzOzeJuiUCicrkrG11ao5Po/8L3CXrxC5c9vNW3GJFLyyB0zwZAswxn15oZ/oWkVeMxMQPDdQpqQasA3eXFCd4uz2JTdCPhoMcyxzAFpLj0RtnPSDm7SABpRMYN0XW5tHLQ4JVnkzlc47MrIPgnYevTPMSl7VDQWt8pWESdT2s5zorOgLUY02pI0LVcCeYA1bIyeC9iNpSDzMByLbcINjDZAqwJNmi4aPfLxjPxRNlKgzsXuJxYk/jR+sNdcaTyxB3QFOyNacGVw4DS6d3u0GRqOfBPerWJoSkr0k/PLY2YZR6VcF8EY9+a1ZZ6g6SKbuY+jaa4VVZ7/OYarECeT6rqQaQhMIcKoDABY/NHmgc50AzEmMNwop/vj0BYC8GmlOXjLuGCD22cuxVnWZs+VkXGzhP5hccskEHbElNvt1RDEFRq0MKFaY0oqWq8/nAr+Dar/EaNMN9QHbotmeSpNfsehC/es+1U1nS5YKaEUGYMfskJEAPSElSblM9NfPZBjBgPXtcJMIEl2pupzta58N0ZtAxbGbwhrjBBYXTGsa3ujxgoTa6N25ZibcnuozCWLZZ2KD+COyxxvnxFMYh+NgBpB93tCaJJ2pndl2k1p73d/YXoqqC3g==
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?X55x5NnJIFrF+n29yl2bl5boPH8egiEzVKL5wFXo/Vxg3HSLAV9UFn4RtQ?=
 =?iso-8859-1?Q?82YtCQ5q4ziqNLw0Nf/nQ+6uAGom5gTEwu2Mkw5u3pIln5uPeblmEMZrmr?=
 =?iso-8859-1?Q?2g3OvLPUpuyEu6LFxSJf0LvC4f84o9lqMRix+XlTReiQtoI0g162paauBG?=
 =?iso-8859-1?Q?fYf9pj+HbNPPuTXxNOwUzfLE7dPDYVPfO5YxGDwVNEdyJjSoaajBfJOC3x?=
 =?iso-8859-1?Q?YgngSbm4XGF8/MQa6LkPal3neo8ndxN5I8Vg/KubN2G5EMqui8Jv8OkTk9?=
 =?iso-8859-1?Q?Cx/+BijNyI68eYBzglcf1A9bA7INv1OH1Di+kTQLLjXo2YreSCBClPN354?=
 =?iso-8859-1?Q?o4l19uRgWatafRcLtqxEatYH5Uv6qQXqiN6gkA4/QmNmvxXq2xuzd2wjWG?=
 =?iso-8859-1?Q?YNtIFLzUtjRdu5seoAmrNneWg1sCj8nsOjbDwpgtifkExok8E32OqRR8bI?=
 =?iso-8859-1?Q?ZtnaxItPqTRhbd0guKiIzHDNdhlYdrGJ9aRjLL4EBybxD43pI0kKJ/aJFQ?=
 =?iso-8859-1?Q?wuzaXaENqJLnJMPe2ax1a6VHZOU2oeqm28yFq+SvvQdmwp+CWjkW9VmapX?=
 =?iso-8859-1?Q?AHngY8jsTYJgegVHLDyBv8sPy/68ZZOiVf877pB7S4FBJakQOS13bLQmZC?=
 =?iso-8859-1?Q?6ndc9/EC2ijKwF+KDzqqlHllJxZQj9m+7VyvHnySsxMFOMJoNOxA5hUvxG?=
 =?iso-8859-1?Q?FCysSZZV1PsoY0YC4gWPX6c3wqvcv9wVE7QZdW554Yg9sQDVpUuXUfe7AR?=
 =?iso-8859-1?Q?RnR8G3R4vCP/TkU2TFVbeu9oHRctuw4nFQn04VArDilNky9Fo8eacGBgiN?=
 =?iso-8859-1?Q?uiJI20ttHqjcwOLqQqw5kkUTlRMi2ZN2GO6faCQmZ4X29jMHEAxD/xetZy?=
 =?iso-8859-1?Q?L44okpNACeqWF8xbTumO7MNyD9u003fsoDuGe3j+klI3fb95VbQ2iSAPl2?=
 =?iso-8859-1?Q?k4otp1pFgxqFSgw5+zOGsMNbPGjfs7RY4kpnm2xk0QCsaPauUdppKJZWw6?=
 =?iso-8859-1?Q?08693muY0VmGsMKWvyMo6eOPXr7PziKqjSeL95DOJFzBAxRktN8D5NbnkU?=
 =?iso-8859-1?Q?qIEV1FBdcZAVZw/Wz0WQIO4F6k2QJAD5V2g9IRZAMCq7pwkmSwHy0wUbg2?=
 =?iso-8859-1?Q?lWn9M5iSUWhzpm5XZerxJqPI7OkDJoDfgjcIoAOZK7wleUT4SdBop1M19T?=
 =?iso-8859-1?Q?6IK7KZhMosjWWsUOY8+qGHmzQdVTfLKrZx4S/esrMetsEB4zlsAyr+2mid?=
 =?iso-8859-1?Q?4FMXy//5vfvmlPAINgEGmkBfNaBSm918YHIVvRxXSgtzN0jcLGOPtc9C/8?=
 =?iso-8859-1?Q?jAtfqqo5cSUz7WSs8daLhp2tktH08qss5m/9rfQCAlap9xgqZ57Nyt21v+?=
 =?iso-8859-1?Q?vEqnk9yYLOuuobcLCNOlSw8gVhqPBZ2w=3D=3D?=
Content-Type: multipart/alternative;
        boundary="_000_PAXP195MB1151CD3F4EC4C13776F5F668FB5C9PAXP195MB1151EURP_"
MIME-Version: 1.0
X-OriginatorOrg: sct-15-20-4755-11-msonline-outlook-49ed2.templateTenant
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: PAXP195MB1151.EURP195.PROD.OUTLOOK.COM
X-MS-Exchange-CrossTenant-Network-Message-Id: ab9d2df0-c228-4502-8b71-08daa7d9f58f
X-MS-Exchange-CrossTenant-originalarrivaltime: 06 Oct 2022 20:32:59.5445
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0P195MB0466

--_000_PAXP195MB1151CD3F4EC4C13776F5F668FB5C9PAXP195MB1151EURP_
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

Testdescription

--_000_PAXP195MB1151CD3F4EC4C13776F5F668FB5C9PAXP195MB1151EURP_
Content-Type: text/html; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

<html xmlns:v=3D"urn:schemas-microsoft-com:vml" xmlns:o=3D"urn:schemas-micr=
osoft-com:office:office" xmlns:w=3D"urn:schemas-microsoft-com:office:word" =
xmlns:m=3D"http://schemas.microsoft.com/office/2004/12/omml" xmlns=3D"http:=
//www.w3.org/TR/REC-html40">
<head>
<meta http-equiv=3D"Content-Type" content=3D"text/html; charset=3Diso-8859-=
1">
<meta name=3D"Generator" content=3D"Microsoft Word 15 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;
        mso-fareast-language:EN-US;}
span.E-MailFormatvorlage18
        {mso-style-type:personal-compose;
        font-family:"Calibri",sans-serif;
        color:windowtext;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;}
@page WordSection1
        {size:612.0pt 792.0pt;
        margin:72.0pt 72.0pt 72.0pt 72.0pt;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext=3D"edit" spidmax=3D"1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext=3D"edit">
<o:idmap v:ext=3D"edit" data=3D"1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang=3D"en-DE" link=3D"#0563C1" vlink=3D"#954F72" style=3D"word-wrap:=
break-word">
<div class=3D"WordSection1">
<p class=3D"MsoNormal"><span lang=3D"EN-GB">Testdescription<o:p></o:p></spa=
n></p>
</div>
</body>
</html>

--_000_PAXP195MB1151CD3F4EC4C13776F5F668FB5C9PAXP195MB1151EURP_
Content-Type: text/calendar; charset="utf-8"; method=REQUEST
Content-Transfer-Encoding: base64

QkVHSU46VkNBTEVOREFSDQpNRVRIT0Q6UkVRVUVTVA0KUFJPRElEOk1pY3Jvc29mdCBFeGNoYW5n
ZSBTZXJ2ZXIgMjAxMA0KVkVSU0lPTjoyLjANCkJFR0lOOlZUSU1FWk9ORQ0KVFpJRDpXLiBFdXJv
cGUgU3RhbmRhcmQgVGltZQ0KQkVHSU46U1RBTkRBUkQNCkRUU1RBUlQ6MTYwMTAxMDFUMDMwMDAw
DQpUWk9GRlNFVEZST006KzAyMDANClRaT0ZGU0VUVE86KzAxMDANClJSVUxFOkZSRVE9WUVBUkxZ
O0lOVEVSVkFMPTE7QllEQVk9LTFTVTtCWU1PTlRIPTEwDQpFTkQ6U1RBTkRBUkQNCkJFR0lOOkRB
WUxJR0hUDQpEVFNUQVJUOjE2MDEwMTAxVDAyMDAwMA0KVFpPRkZTRVRGUk9NOiswMTAwDQpUWk9G
RlNFVFRPOiswMjAwDQpSUlVMRTpGUkVRPVlFQVJMWTtJTlRFUlZBTD0xO0JZREFZPS0xU1U7QllN
T05USD0zDQpFTkQ6REFZTElHSFQNCkVORDpWVElNRVpPTkUNCkJFR0lOOlZFVkVOVA0KT1JHQU5J
WkVSO0NOPUp1bGlhbiBMZW1tZXJpY2g6bWFpbHRvOmp1bGlhbi5sZW1tZXJpY2hAb3V0bG9vay5k
ZQ0KQVRURU5ERUU7Uk9MRT1SRVEtUEFSVElDSVBBTlQ7UEFSVFNUQVQ9TkVFRFMtQUNUSU9OO1JT
VlA9VFJVRTtDTj1qbGVAY3NhdWRpDQogdC5kZTptYWlsdG86amxlQGNzYXVkaXQuZGUNCkRFU0NS
SVBUSU9OO0xBTkdVQUdFPWRlLURFOlRlc3RkZXNjcmlwdGlvblxuDQpVSUQ6MDQwMDAwMDA4MjAw
RTAwMDc0QzVCNzEwMUE4MkUwMDgwMDAwMDAwMDEwMjA0Rjk0RDNEOUQ4MDEwMDAwMDAwMDAwMDAw
MDANCiAwMTAwMDAwMDA3MkQ1MzgyMTk0MkM3QTQxQTNGQjlEQkZCMUVCNzk3OQ0KU1VNTUFSWTtM
QU5HVUFHRT1kZS1ERTpUZXN0ZWludHJhZw0KRFRTVEFSVDtUWklEPVcuIEV1cm9wZSBTdGFuZGFy
ZCBUaW1lOjIwMjIxMDA2VDIyMzAwMA0KRFRFTkQ7VFpJRD1XLiBFdXJvcGUgU3RhbmRhcmQgVGlt
ZToyMDIyMTAwNlQyMzAwMDANCkNMQVNTOlBVQkxJQw0KUFJJT1JJVFk6NQ0KRFRTVEFNUDoyMDIy
MTAwNlQyMDMyNTVaDQpUUkFOU1A6T1BBUVVFDQpTVEFUVVM6Q09ORklSTUVEDQpTRVFVRU5DRTow
DQpMT0NBVElPTjtMQU5HVUFHRT1kZS1ERTpUZXN0b3J0DQpYLU1JQ1JPU09GVC1DRE8tQVBQVC1T
RVFVRU5DRTowDQpYLU1JQ1JPU09GVC1DRE8tT1dORVJBUFBUSUQ6LTE5Mjg5NDM2NDINClgtTUlD
Uk9TT0ZULUNETy1CVVNZU1RBVFVTOlRFTlRBVElWRQ0KWC1NSUNST1NPRlQtQ0RPLUlOVEVOREVE
U1RBVFVTOkJVU1kNClgtTUlDUk9TT0ZULUNETy1BTExEQVlFVkVOVDpGQUxTRQ0KWC1NSUNST1NP
RlQtQ0RPLUlNUE9SVEFOQ0U6MQ0KWC1NSUNST1NPRlQtQ0RPLUlOU1RUWVBFOjANClgtTUlDUk9T
T0ZULURPTk9URk9SV0FSRE1FRVRJTkc6RkFMU0UNClgtTUlDUk9TT0ZULURJU0FMTE9XLUNPVU5U
RVI6RkFMU0UNClgtTUlDUk9TT0ZULUxPQ0FUSU9OUzpbIHsgIkRpc3BsYXlOYW1lIiA6ICJUZXN0
b3J0IlwsICJMb2NhdGlvbkFubm90YXRpb24iIA0KIDogIiJcLCAiTG9jYXRpb25Tb3VyY2UiIDog
MFwsICJVbnJlc29sdmVkIiA6IHRydWVcLCAiTG9jYXRpb25VcmkiIDogIiIgfSBdDQpCRUdJTjpW
QUxBUk0NCkRFU0NSSVBUSU9OOlJFTUlOREVSDQpUUklHR0VSO1JFTEFURUQ9U1RBUlQ6LVBUMTVN
DQpBQ1RJT046RElTUExBWQ0KRU5EOlZBTEFSTQ0KRU5EOlZFVkVOVA0KRU5EOlZDQUxFTkRBUg0K

--_000_PAXP195MB1151CD3F4EC4C13776F5F668FB5C9PAXP195MB1151EURP_--
JM-Lemmi commented 2 years ago

You should be able to ignore everything and just decode the base64 and save that to file. Add an add-file line.

JM-Lemmi commented 1 year ago

With the new Sources from #134 just add the Base64 directly to the Source. This will just run as its own distinct service and interact with the API locally.

JM-Lemmi commented 1 year ago

After #150: implement as standalone binary with API access.

JM-Lemmi commented 8 months ago

Invitation should either employ whitelist of sender mail addresses or "password" in the mail like Google group calendars

profile-xy_w9czwn60vbq2@cal.julian-lemmerich.de

This random address should be manually refreshable.

Send bounces for non existing addresses. Reject brute force attempts

JM-Lemmi commented 8 months ago

Profile setting: