Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Feature Request] ICS viewer #298

Closed
t4keo opened this issue May 17, 2024 · 6 comments
Closed

[Feature Request] ICS viewer #298

t4keo opened this issue May 17, 2024 · 6 comments
Labels
enhancement New feature or request

Comments

@t4keo
Copy link

t4keo commented May 17, 2024

Hi !

I was wondering if it would be possible to add an ICS content viewer when a mail contains an ICS file.
I would like to see a view of the content of it, something like it would be in GMail or any other provider (without the ability to accept or refuse of course) or in a proper table with properties translated so its a bit prettier than reading it in raw format (parsed date for example)

It could be in another tab in the mail view and if it can have an "agenda view" to see where it would be placed in it, its a small bonus

Thanks in advance and let me know if you need more informations

@axllent
Copy link
Owner

axllent commented May 17, 2024

Can you please explain what information you would like to see exactly, and in what layout/format? Is it just the description, "when" (date & time) and guests?

@t4keo
Copy link
Author

t4keo commented May 17, 2024

To make it very simple in a first integration, just a new tab "ICS" containing a table with 2 columns like below is already good because I wouldn’t have to download it to see what’s inside. As said previously, if some properties could be explained or parsed it would be a good thing like for Date Start, end and stamp.

PROPERTY VALUE 
DTSTART 20240517T120000Z
DTEND 20240517T140000Z

or with parsed values (at GMT +2 to show parsing)

PROPERTY VALUE 
DTSTART 2024-05-17 14:00:00 (parsed with user browser format and timezone)
DTEND 2024-05-17 16:00:00 (parsed with user browser format and timezone)

I don’t really know how it could be shapped better to make it more pretty tho

@axllent
Copy link
Owner

axllent commented May 17, 2024

To be honest, at this stage I'm not keen to add another tab for just this, or to just list keys/values from the ICS as that isn't user friendly (nor does it mean it was interpreted correctly client side).

I think a browser-parsed (JavaScript) display is the way to go, so I'll look into integrating it into the main message view (maybe similar to how Gmail does it, but probably below where the attachment icons are or something, or as a modal when the ICS is clicked).

Leave this with me 👍

@axllent axllent added the enhancement New feature or request label May 17, 2024
@axllent
Copy link
Owner

axllent commented May 18, 2024

I have added this new feature in v1.18.3. It turns out parsing an iCalendar file is actually quite complicated, despite being such a simple format. The main issue I have encountered in working with timezones and recurring events, so I have completely ignored that for now until it actually turns out it is a problem.

Then I discovered that some applications (eg: Office365) don't actually attach an ics file as such, but rather "embed" the ics as an unnamed message part. Mailpit ignores these entirely. Google embed it too, but also attach an ics file (effectively duplicating the info twice in every email). Anyway, at this stage I have focused on just the ics attachments (ie: the ones Mailpit already saw as attachments). Clicking on the attachment at the bottom of a message will open a modal window with a summary which also provides a download link (from the modal).

Looking forward to your feedback.

@t4keo
Copy link
Author

t4keo commented May 21, 2024

Awesome !

Hope it will please other people also. Maybe the integration of the recursivity or timezone will appear in a later issue but as far as I need it, it’s a great implementation and time saving feature.

Thanks for the fast integration :)

@axllent
Copy link
Owner

axllent commented May 21, 2024

Timezone & recursivity may be added down the track if there is a demand, but I'm not going to plan that in at this stage as it's not a simple implementation, and I don't know if the benefit outweighs the effort needed to get that working. Sometimes one can put a lot of hours into developing something that nobody uses/needs :)

You're welcome, and I hope it helps you! I'll close this ticket now, thanks.

@axllent axllent closed this as completed May 21, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

2 participants