-
Notifications
You must be signed in to change notification settings - Fork 281
autoconfig support #67
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
Comments
How to determine public hostname to expose in auto-config?
(need to think more about configuration structure) Also, there are few different formats used by Outlook and Apple Mail: https://github.com/L11R/go-autoconfig |
We can just serve the expected file for each of them, I guess. I'm not very familiar with the MS and Apple ecosystems, but I can't imagine they're publishing anything fundamentally different - just varying structures. |
I don't really like Also, we might want to offer an option for people who don't want an embedded web server. For instance by writing files to a directory instead of serving them. We might want to re-use the configured mail server HTTPS certificates (if no reverse proxy is used). We also need to consider MTA-STS, which also requires a webserver. (As an alternative to go-autoconfig, which doesn't seem to expose a real library (yet?)) |
Something like that could work as a generic base for HTTP-related static stuff:
type HTTPGenerator interface {
// Returns map Path -> Blob. Usually called once during initialization.
Generate(params *config.Node) (map[string][]byte, error)
} For dynamic contents we might allow "generator" module to implement http.Hander (???).
I really doubt the idea of including webmail in maddy, tho. |
Regarding auto-auto-config: This is kinda tricky IMO and on the edge of being "too clever to be useful". Unless the user explicitly defines endpoint information to use - pick first IMAP and Submission endpoint instances. Prefer Implicit TLS over STARTTLS. Use |
Hmm. I guess the alternative would be to have a very simple filesystem interface ( It's probably better to use your design, and extend it if we need.
Yeah, maybe... But it's really annoying to specify again and manually all connection parameters for such a minor thing.
Yeah, webmail is out-of-scope IMHO. Maybe JMAP (or another API standard, /shrug) can help users to wire up a third-party webmail… |
Side note: JMAP requires an HTTP endpoint too. So we need dynamic content support. |
Different approach to HTTP endpoint module interfaces. type HTTPEndpoint interface {
AddHandler(pattern string, h http.Handler) error
AddStaticResource(path string, data io.Reader) error
} I'm not sure about special handling for http_dir and static directory, probably we should drop it, it is not that hard to setup reverse proxy. For example, automatic TLS configuration using CertMagic (#3):
Other thing, JMAP.
... |
This won't do. An endpoint needs to be able to serve the same contents multiple times. However everything can be done with an
Yeah, it's not like there's a big overhead in including an HTTP server.
The general idea LGTM. Maybe the exact syntax could be improved (e.g. |
What I think about automatic configuration: it helps only in exotic setups because in more simple cases MUA can just probe standard ports. So guessing of parameters for auto-config is essentially useless. Also, this generally limits usefulness since server admins usually avoid non-standard configurations to improve interoperability. |
For mobile clients, autoconfig is super-valuable - it saves a lot of awkward data entry, even when the values are obvious and easy to guess / memorized. |
I'd just say it's not high priority at all. As @foxcpp said people can always add various autoconfig file themselves right now. What annoys me is that there's no standard. The world would be a better place if people used SRV records. |
Currently I'm using the project go-autoconfig as an additional web service to support autoconfig as described here https://nixos.wiki/wiki/Maddy#Autoconfig |
Configuring MUAs is made much easier with support for automatic configuration. Mozilla's de-facto standard for this is quite widely used: https://developer.mozilla.org/en-US/docs/Mozilla/Thunderbird/Autoconfiguration
I'm currently manually maintaining one of these at https://autoconfig.ur.gs/.well-known/autoconfig/mail/config-v1.1.xml
There are DNS-based standards too, but I don't think they're as widely used.
We'll need a HTTP(S) listener for automatic TLS, activesync, webmail, etc, support too, so I don't think it's a big deal to add one.
The text was updated successfully, but these errors were encountered: