-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
update site with "Mailtemi on Android"
- Loading branch information
Showing
8 changed files
with
135 additions
and
1 deletion.
There are no files selected for viewing
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,4 +1,4 @@ | ||
--- | ||
title: "Blog" | ||
page_title: Insight from <br /> our team. | ||
page_title: Insight from <br/> our team. | ||
--- |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,33 @@ | ||
--- | ||
title: Catch-all/ Wildcard aliases/ Send Identities of standalone JMAP servers. | ||
subtitle: This is why no updates. | ||
image: "/images/posts/email-storage.png" | ||
author: Zhivko Vasilev | ||
date: 2024-09-10T05:00:00Z | ||
categories: ["News", "Tech"] | ||
featured: false | ||
draft: true | ||
--- | ||
|
||
|
||
|
||
|
||
Still there is not uniform support across JMAP servers. | ||
So the app just rely solely on the server to handle send workflow. | ||
To avoid confucssion error handling was extended to preserve server error description and presend it in the UI. | ||
|
||
For example | ||
1. stalw.art server allow any Send Identity(email alias) to be set. | ||
This doesn't guarantee email will be successful be send by this alias. But the server returns correct error when send failed. | ||
|
||
2. Cyrus IMAP server. | ||
- As standalone server do not support update part of the API. | ||
Also if the users are not created with email adresses the API do not return anythisng. | ||
So in this case the only possible sollution is to populate email address from setup workflow. | ||
- As FastMail service is very different story. | ||
|
||
|
||
|
||
|
||
|
||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,46 @@ | ||
--- | ||
title: Mailtemi on Android | ||
subtitle: This is why no updates. | ||
image: "/images/posts/PixelTablet.png" | ||
author: Zhivko Vasilev | ||
date: 2024-10-13T16:00:00Z | ||
categories: ["Android", "JMAP", "Email"] | ||
featured: false | ||
draft: false | ||
--- | ||
|
||
The Android version of Mailtemi is almost ready for its beta release! Here’s a quick update on where things stand: | ||
|
||
### What is the current status? | ||
|
||
1. **Google Play Console Registration** | ||
|
||
Unfortunately, I’ve hit a snag with the Google Play Console registration. It’s not accepting my phone number (BG), so I’ve filed a support case and am waiting for their response. | ||
|
||
2. **Contacts Management**: | ||
|
||
Right now, the app shows a simple list of supported services like CardDAV, Google People API, and MSGraph People. The screens for viewing and editing contacts are placeholders for the moment. Since Mailtemi is primarily focused on email, these features will be developed in parallel with future updates. | ||
|
||
3. **On Par Functionality with iOS** | ||
|
||
The Android version now matches the iOS version in terms of core features. Everything from certificate validation to securely saving credentials has been implemented following Android's best practices. | ||
|
||
|
||
4. **Screenshots – _Mailtemi on Android_** | ||
|
||
Mailtemi leverages Android's latest UI framework, Jetpack Compose. | ||
By default, it uses the **Material You** design system, which dynamically adjusts the app’s theme based on the user’s wallpaper. | ||
This can be disabled in settings, but I’ve found it makes the interface cleaner and more intuitive—something I’ve grown to appreciate over time. | ||
|
||
The blog post image is taken from an Android tablet simulator, thanks to Jetpack Compose’s flexibility in adapting to different screen sizes and orientations. | ||
|
||
|
||
Check out some examples below: | ||
|
||
[![Green Dynamic Theme](/images/posts/theme_0.png)](/images/posts/theme_0.png) | ||
|
||
|
||
[![Rose Dynamic Theme](/images/posts/theme_1.png)](/images/posts/theme_1.png) | ||
|
||
|
||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,55 @@ | ||
--- | ||
title: OAuth. Can it work for selfhosted services? | ||
subtitle: This is why no updates. | ||
image: "/images/posts/oauth.png" | ||
author: Zhivko Vasilev | ||
date: 2024-09-10T05:00:00Z | ||
categories: ["Security"] | ||
featured: false | ||
draft: true | ||
--- | ||
|
||
Why is better for both end users and organization/services. | ||
|
||
|
||
**OAuth: Why It’s Better for Both End Users and Organizations** | ||
|
||
### Short Explanation | ||
|
||
For both users and organizations, OAuth offers a more secure and seamless way to handle authentication. Here’s why: | ||
|
||
- **For End Users**: Imagine using an app like Mailtemi, where instead of entering your password into random apps, OAuth allows you to log in by passing a secure token to the app. This token gives the app access only to specific data (like your emails) without exposing other sensitive resources. | ||
|
||
- **For Organizations/Services**: Many services provide multiple tools—email, support, internal systems—and managing access to all these resources through one centralized authentication system makes life easier for both users and administrators. It's more secure, user-friendly, and scalable. | ||
|
||
### How It Works: A Simplified Explanation Using an Email App/Server | ||
|
||
Here’s a quick overview of how OAuth works with an email app like Mailtemi: | ||
|
||
1. **User Authentication**: When the user taps to log in, the app sends a DNS request looking for a TXT record at `/.well-known/openid-configuration`. This record tells the app where the authentication server is. | ||
|
||
2. **Authentication Form**: The app then redirects the user to an external browser where the actual login happens. This way, the app doesn’t handle or store sensitive login credentials—only the authentication server does. | ||
|
||
3. **Tokens**: Once logged in, the app receives access and refresh tokens from the server, but only for the specified service (like email). The user’s password never touches the app, ensuring enhanced security and privacy. | ||
|
||
### Shortcomings | ||
|
||
While OAuth is great, it does have some drawbacks: | ||
|
||
- **Designed for Big Players**: OAuth’s development was heavily influenced by large organizations, so it’s not perfectly suited for every situation. | ||
|
||
- **Legal Contracts**: Every app needs to sign a contract or undergo certification with each service provider. It’s kind of like how, in the old days, AOL or CompuServe controlled the way you accessed services online—unlike today’s web browsers, which simply trust certificates to validate connections. | ||
|
||
- **Client IDs**: OAuth requires a unique client ID for each app, which involves a manual exchange between the app and service provider. This works well for big platforms but doesn’t fit the decentralized nature of protocols like email, where manual interventions should be minimized. | ||
|
||
### The Solution | ||
|
||
**OpenID Connect Dynamic Client Registration** | ||
|
||
For a truly decentralized and seamless experience, dynamic client registration can help: | ||
|
||
- Apps like Mailtemi can automatically register with the OIDC provider without needing manual approval or admin involvement. | ||
- The only requirement is to set up a proper DNS TXT value for each domain, allowing OpenID Connect Discovery to work automatically. | ||
|
||
This eliminates much of the manual process, and the app can securely access email without extra steps from the admin. The process could even be fully automated, making it more efficient for everyone involved. | ||
|