Comments (3)
I think you sum up pretty well. As long as we return AutoDiscoverySettings
you don't need a lot of changes in the current code.
If you have something better in mind, you may completely discard the existing code and rewrite the module for auto discovery as well. I don't mind it since current implementation lacks a lot of things.
Assigned to @chenseanxy
from wino-mail.
Nicely done investigation.
AutoDiscoveryService definitely lacks lots of capabilities right now. I wanted to include Thunderbird Autoconfig at some point but never had the time for it.
This would speed up things for a lot of new users since most of them don't want to search for the IMAP settings they've been offered from their provider.
from wino-mail.
I think what we can do, currently, is the plain XML versions of Thunderbird and MSExchange, maybe later on we can add SRV support of both of these.
Implementing both of these should be simple enough:
- Try sending request to multiple possible domains that contain the autodiscovery response (eg, MS:
domain.tld
orautodiscover.domain.tld
, Thunderbird:autoconfig.domain.tld
anddomain.tld/.well-known
) - On 200, deserialize and return the discovered settings
Now we're introducing multiple sources, there's the consideration about priority:
- MS and Thunderbird admin-defined sources should get higher priority than the central DB / API sources, so admins can override bad info in the centralized sources
- Between MS and thunderbird it shouldn't matter
So to implement this, here's what I'm thinking:
- Every source gets its own model, as well as provider that handles request, timeout, and deserialize logic (try multiple domains), and returns
AutoDiscoverySettings
- For
AutoDiscoveryService
, it awaits the providers one by one according to priority, returns if settings are found- maybe parallize? but the providers should be pretty fast, only kinda-slow thing is gonna be cold DNS lookups
If it's OK you can assign this and I'll start working on it this week. (Sorry for writing too much, I'm usually overcautious in new codebases)
from wino-mail.
Related Issues (20)
- InfoBar to warn users about hidden items not showing in the sidebar HOT 1
- [Bug] The 'Mark all as Read' option doesn't work
- [Bug] Hide scrollbars when nothing to scroll with windows accessibility feature HOT 1
- [Bug] Unread folder reads All emails automatically with setting "Mark as Read: When Selected" enabled
- [Bug] Toggling Focused Inbox On/Off Does Change Inbox Until Restart of App HOT 1
- [Bug] CommandBar for non draft emails visual issues. HOT 1
- [Bug] 24 hours format is not applied in a mail reading page
- [Proposal] Allow users to change IMAP account settings after account creation HOT 1
- [Performance] Very slow population of mail list with conversational setting.
- [Proposal] Unsubscribe button should support one click
- unverified error when trying to connect university mail? [Bug] HOT 1
- [Bug]Cannot click "send" HOT 2
- [Bug] Beta version 1.7.1 crashes attaching files to Draft mail
- [Bug] Mail synchronization problems HOT 1
- [Proposal] Small UI adjustments
- [Bug] Search bugs
- [Bug] Reply using wino opens microsoft outlook
- [Proposal] Drag & Drop attachments HOT 3
- [Bug] no way to make wino mail default in windows 11, HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from wino-mail.