mirror of
https://github.com/Mailu/Mailu.git
synced 2024-12-12 10:45:38 +02:00
Autoconfig mozilla-style
This commit is contained in:
parent
0b25854de0
commit
523cee1680
@ -1,3 +1,3 @@
|
||||
__all__ = [
|
||||
'auth', 'postfix', 'dovecot', 'fetch', 'rspamd'
|
||||
'auth', 'autoconfig', 'postfix', 'dovecot', 'fetch', 'rspamd'
|
||||
]
|
||||
|
42
core/admin/mailu/internal/views/autoconfig.py
Normal file
42
core/admin/mailu/internal/views/autoconfig.py
Normal file
@ -0,0 +1,42 @@
|
||||
from mailu.internal import internal
|
||||
|
||||
from flask import current_app as app
|
||||
import flask
|
||||
|
||||
@internal.route("/autoconfig/mozilla")
|
||||
def autoconfig_mozilla():
|
||||
# https://wiki.mozilla.org/Thunderbird:Autoconfiguration:ConfigFileFormat
|
||||
hostname = app.config['HOSTNAME']
|
||||
xml = f'''<?xml version=\"1.0\"?>
|
||||
<clientConfig version=\"1.1\">
|
||||
<emailProvider id=\"%EMAILDOMAIN%\">
|
||||
<domain>%EMAILDOMAIN%</domain>
|
||||
|
||||
<displayName>Email</displayName>
|
||||
<displayShortName>Email</displayShortName>
|
||||
|
||||
<incomingServer type=\"imap\">
|
||||
<hostname>{hostname}</hostname>
|
||||
<port>993</port>
|
||||
<socketType>SSL</socketType>
|
||||
<username>%EMAILADDRESS%</username>
|
||||
<authentication>password-cleartext</authentication>
|
||||
</incomingServer>
|
||||
|
||||
<outgoingServer type=\"smtp\">
|
||||
<hostname>{hostname}</hostname>
|
||||
<port>465</port>
|
||||
<socketType>SSL</socketType>
|
||||
<username>%EMAILADDRESS%</username>
|
||||
<authentication>password-cleartext</authentication>
|
||||
<addThisServer>true</addThisServer>
|
||||
<useGlobalPreferredServer>true</useGlobalPreferredServer>
|
||||
</outgoingServer>
|
||||
|
||||
<documentation url=\"https://{hostname}/admin/client\">
|
||||
<descr lang=\"en\">Configure your email client</descr>
|
||||
</documentation>
|
||||
</emailProvider>
|
||||
</clientConfig>\r\n
|
||||
'''
|
||||
return flask.Response(xml, mimetype='text/xml', status=200)
|
@ -120,6 +120,13 @@ http {
|
||||
add_header X-XSS-Protection '1; mode=block';
|
||||
add_header Referrer-Policy 'same-origin';
|
||||
|
||||
# mozilla autoconfiguration
|
||||
location ^~ /.well-known/autoconfig/mail/config-v1.1.xml {
|
||||
rewrite /.well-known/autoconfig/mail/config-v1.1.xml /internal/autoconfig/mozilla break;
|
||||
include /etc/nginx/proxy.conf;
|
||||
proxy_pass http://$admin;
|
||||
}
|
||||
|
||||
{% if TLS_FLAVOR == 'mail-letsencrypt' %}
|
||||
location ^~ /.well-known/acme-challenge/ {
|
||||
proxy_pass http://127.0.0.1:8008;
|
||||
|
52
docs/faq.rst
52
docs/faq.rst
@ -396,58 +396,6 @@ Mailu can serve an `MTA-STS policy`_; To configure it you will need to:
|
||||
.. _`1798`: https://github.com/Mailu/Mailu/issues/1798
|
||||
.. _`MTA-STS policy`: https://datatracker.ietf.org/doc/html/rfc8461
|
||||
|
||||
How do I setup client autoconfiguration?
|
||||
````````````````````````````````````````
|
||||
|
||||
Mailu can serve an `XML file for autoconfiguration`_; To configure it you will need to:
|
||||
|
||||
1. add ``autoconfig.example.com`` to the ``HOSTNAMES`` configuration variable (and ensure that a valid SSL certificate is available for it; this may mean restarting your smtp container)
|
||||
|
||||
2. configure an override with the policy itself; for example, your ``overrides/nginx/autoconfiguration.conf`` could read:
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
location ^~ /mail/config-v1.1.xml {
|
||||
return 200 "<?xml version=\"1.0\"?>
|
||||
<clientConfig version=\"1.1\">
|
||||
<emailProvider id=\"%EMAILDOMAIN%\">
|
||||
<domain>%EMAILDOMAIN%</domain>
|
||||
|
||||
<displayName>Email</displayName>
|
||||
<displayShortName>Email</displayShortName>
|
||||
|
||||
<incomingServer type=\"imap\">
|
||||
<hostname>mailu.example.com</hostname>
|
||||
<port>993</port>
|
||||
<socketType>SSL</socketType>
|
||||
<username>%EMAILADDRESS%</username>
|
||||
<authentication>password-cleartext</authentication>
|
||||
</incomingServer>
|
||||
|
||||
<outgoingServer type=\"smtp\">
|
||||
<hostname>mailu.example.com</hostname>
|
||||
<port>465</port>
|
||||
<socketType>SSL</socketType>
|
||||
<username>%EMAILADDRESS%</username>
|
||||
<authentication>password-cleartext</authentication>
|
||||
<addThisServer>true</addThisServer>
|
||||
<useGlobalPreferredServer>true</useGlobalPreferredServer>
|
||||
</outgoingServer>
|
||||
|
||||
<documentation url=\"https://mailu.example.com/admin/client\">
|
||||
<descr lang=\"en\">Configure your email client</descr>
|
||||
</documentation>
|
||||
</emailProvider>
|
||||
</clientConfig>\r\n";
|
||||
}
|
||||
|
||||
3. setup the appropriate DNS/CNAME record (``autoconfig.example.com`` -> ``mailu.example.com``).
|
||||
|
||||
*issue reference:* `224`_.
|
||||
|
||||
.. _`224`: https://github.com/Mailu/Mailu/issues/224
|
||||
.. _`XML file for autoconfiguration`: https://wiki.mozilla.org/Thunderbird:Autoconfiguration:ConfigFileFormat
|
||||
|
||||
Technical issues
|
||||
----------------
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user