Skip to content

Conversation

@domai-tb
Copy link
Member

@domai-tb domai-tb commented May 19, 2025

E-Mail Client

This update introduces an integrated E-Mail client for RUB mails.

Features

  • E-Mail Client UI: Write, Edit, Delete, Show etc.
  • IMAP-Anbindung der E-Mails und Directories / Folder

Code Quality / Internals

  • Unit-Testing (ideally)

@domai-tb
Copy link
Member Author

domai-tb commented Jun 30, 2025

Hey @H1b4x thank your for your work! 🙏🏼

Some task that need to be done before we can release the email client in production:

  • Different email folders should not "stack". The backwards button should always lead to the "More" page instead of the inbox. Currently, folders like send, trash etc. are "stacked" on top of the view.
  • Load user defined folders from server. Currently it just loads the inbox, spam, send, archives, drafts and trash.
  • The settings button should either removed entirely or some settings should be implemented. The settings should be united with the general app settings page.
  • A background service for cyclic fetching up-to-date emails and displaying a notification should be implemented.
  • Drafts aren't stored properly on server side. See [1]
  • Handle @media CSS within HTML body. See Flutter HTML Issue 1060. Should be implemented within the SytledHtml widget.
  • Stabilize widget tree and avoid dynamic calls (over async gaps) to handle Unhandled Exception: Looking up a deactivated widget's ancestor is unsafe. At this point the state of the widget's element tree is no longer stable.
  • Implement and handle attachments properly.

[1]
Screenshot_2025-06-30_13_26_51

@domai-tb
Copy link
Member Author

domai-tb commented Aug 3, 2025

We need to manually handle the dependency enough_email due the outdated package on pub.dev. See this issue. The error message with an up-to-date SDK is the following:

❯ flutter pub add enough_mail
The current Dart SDK version is 3.8.1.

Because enough_mail <1.0.0 doesn't support null safety and enough_mail >=1.0.0 <2.1.2 depends on intl ^0.17.0, enough_mail <2.1.2 requires intl ^0.17.0.
And because enough_mail >=2.1.2 <2.1.6 depends on intl ^0.18.0 and enough_mail >=2.1.6 depends on intl ^0.19.0, every version of enough_mail requires intl ^0.17.0 or ^0.18.0 or ^0.19.0.
So, because campus_app depends on both intl ^0.20.2 and enough_mail any, version solving failed.

The lower bound of "sdk: '>=2.7.0 <3.0.0'" must be 2.12.0 or higher to enable null safety.
For details, see https://dart.dev/null-safety
Failed to update packages.

As the package maintainer doesn't seem to provide a update in the near future, we should fork the repository like we did with the video player plugin too.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

Status: Paused

Development

Successfully merging this pull request may close these issues.

4 participants