diff --git a/doc-ng/installation/upgrade.md b/doc-ng/installation/upgrade.md index 00cfd9e24..ae9f1bbf1 100644 --- a/doc-ng/installation/upgrade.md +++ b/doc-ng/installation/upgrade.md @@ -4,7 +4,7 @@ description: This guide perform how to upgrade your current Modoboa instance to head: - - meta - name: 'keywords' - content: 'modoboa, installation, upgrade, procedure' + content: 'modoboa, installation, upgrade, procedure' --- # Upgrade @@ -12,19 +12,19 @@ head: ## Modoboa ::: tip -In this doc, `by default` means that you used [modoboa installer](https://github.com/modoboa/modoboa-installer) +In this doc, `by default` means that you used [modoboa installer](https://github.com/modoboa/modoboa-installer) to install modoboa and that your didn't change your configuration. ::: ::: warning -The new version you are going to install may need to modify your database. +The new version you are going to install may need to modify your database. -Before you start, make sure to backup everything !!! +Before you start, make sure to backup everything !!! :::: -Most of the time, upgrading your installation to a newer Modoboa version only requires a few actions. +Most of the time, upgrading your installation to a newer Modoboa version only requires a few actions. -In every case, you will need to apply the specific actions if the version you are installing requires it, +In every case, you will need to apply the specific actions if the version you are installing requires it, and then apply the general ones. In case you use a dedicated user and/or a virtualenv, do not forget to use them: @@ -35,7 +35,7 @@ $ source /bin/activate ``` ::: info Be Careful -Check the `specific_upgrade_instructions` +Check the `specific_upgrade_instructions` before running the following commands. ::: @@ -59,7 +59,7 @@ $ sudo systemctl restart supervisor Finally, restart your web server. -Sometimes, you might need to upgrade postfix map files too. +Sometimes, you might need to upgrade postfix map files too. To do so, just run the `generate_postfix_maps` command on the same directory than the one used for installation (`/etc/postfix` by default). @@ -75,7 +75,7 @@ Then, `reload postfix`. ## Modoboa installer ::: warning -It is important to keep the installer updated because it works on rolling release. +It is important to keep the installer updated because it works on rolling release. ::: To do that, go to modoboa-installer directory then: @@ -96,9 +96,9 @@ $ git reset --hard origin/master Do not open an issue after an upgrade if you have not updated your extensions ! ::: -If a new version is available for an extension you're using, it is recommanded to install it. +If a new version is available for an extension you're using, it is recommanded to install it. -It may even be required. Upgrading an extensions is pretty and the procedure is almost +It may even be required. Upgrading an extensions is pretty and the procedure is almost the same than the one used for Modoboa. In case you use a dedicated user and/or a virtualenv, **do not forget** to use them: @@ -133,7 +133,7 @@ The section below containt specific migration steps to upgrade Modoboa instance. ## Version 2.6.1 -### Required changes to `settings.py` +### Required changes to `settings.py` * Add the following lines to `LOGGING` variable: @@ -177,9 +177,20 @@ New built-in auto-configuration service. 'autodiscover.', ``` -* Add the following variable: +* Add and adjust the following variable: ``` python + # E-Mail client settings used for AutoDiscovery information served to clients + # + # Not used for Modoboa WebMail; configure that in the Modoboa admin settings. + # + # * HOSTNAME: External hostname that clients should connect to + # * Supports Thunderbird-style placeholders to substitute values from the + # email address originally entered into the mail client: + # %EMAILADDRESS%, %EMAILLOCALPART%, %EMAILDOMAIN% + # * SOCKET_TYPE: Actually the encryption settings + # * May be one of: 'SSL' (immediate TLS), 'STARTTLS' or 'plain' (bad) + # * PORT: TCP port that the client should use when connecting to the server EMAIL_CLIENT_CONNECTION_SETTINGS = { "imap": { "HOSTNAME": "", @@ -206,9 +217,9 @@ New built-in auto-configuration service. ## Version 2.5.0 -Amavis plugin integrated into Modoboa core repository. +Amavis plugin integrated into Modoboa core repository. -If you are using Amavis content filter and the quarantine plugin, +If you are using Amavis content filter and the quarantine plugin, the following upgrade instructions, otherwise proceed with regular upgrade instructions. ### Pre update @@ -265,7 +276,7 @@ the following upgrade instructions, otherwise proceed with regular upgrade instr ## Version 2.4.0 ::: warning -The `modoboa-amavis` extension has not been migrated into the core Modoboa package yet. +The `modoboa-amavis` extension has not been migrated into the core Modoboa package yet. If you are using it, **you cannot install version 2.4.0 yet**. ::: @@ -300,7 +311,7 @@ Legacy web interface has been removed and almost all extensions have been integr ``` ::: warning -MariaDB 10.7+ users might have login issues (see this [discussion](https://github.com/modoboa/modoboa/discussions/3582)). +MariaDB 10.7+ users might have login issues (see this [discussion](https://github.com/modoboa/modoboa/discussions/3582)). For those impacted, run the followed SQL queries: @@ -352,7 +363,7 @@ $ echo "ALTER TABLE `oauth2_provider_refreshtoken` MODIFY `token_family` uuid;" ### Radicale configuration changes -You must enable oauth2 authentication in Radicale to make the calendar and contact feature work. +You must enable oauth2 authentication in Radicale to make the calendar and contact feature work. Follow this `guide `. @@ -367,8 +378,8 @@ Follow this `guide `. * Remove `autoreply` service definition from postfix's `master.cf` file if you were using it * Make sure `/etc/uwsgi/sites-enabled/` contains `max-requests=5000` and that - `process` is superior or equal to 4. - + `process` is superior or equal to 4. + Don't forget to restart uwsgi service after the configuration change. * Then proceed with regular upgrade instructions @@ -377,9 +388,9 @@ Follow this `guide `. ::: warning The `crypt ({CRYPT})` password scheme has been marked as deprecated and -will be removed from Modoboa starting with version **2.4.0**. +will be removed from Modoboa starting with version **2.4.0**. -If you are still using this weak scheme, you must change to something safer **ASAP**. +If you are still using this weak scheme, you must change to something safer **ASAP**. Installations still using this scheme won't be able to install Modoboa 2.4 and upper... ::: @@ -398,7 +409,7 @@ This will silence a [warning sent by django-ckeditor](https://github.com/modoboa ## Version 2.3.0 ::: warning -For this particular version, it is really important that you apply new migrations **AFTER** the following instructions. +For this particular version, it is really important that you apply new migrations **AFTER** the following instructions. If you don't, you'll get into trouble\... ::: @@ -433,7 +444,7 @@ extension, you need to perfome a few commands: ### Required changes to `settings.py` -Some changes are required to your `settings.py` file. +Some changes are required to your `settings.py` file. These changes will not be performed by the installer. @@ -573,7 +584,7 @@ Then, apply this last modification to your settings: ### Docevot configuration changes -You must enable oauth2 authentication in Dovecot to make the filters editor work in the new UI. +You must enable oauth2 authentication in Dovecot to make the filters editor work in the new UI. Follow this [guide](https://doc.dovecot.org/2.4.2/core/config/auth/databases/oauth2.html). ### Post update @@ -584,9 +595,9 @@ Run this command to be sure to have everything set. $ python manage.py modo repair ``` -You need to set the `buffer-size` to `8192` in uwsgi config. +You need to set the `buffer-size` to `8192` in uwsgi config. -Edit the value in `/etc/uwsgi/apps-available/automx_instance.ini` +Edit the value in `/etc/uwsgi/apps-available/automx_instance.ini` to match at least 8192 or add it if it was not set: ``` ini @@ -602,7 +613,7 @@ The installer will take care of that if you use it to upgrade. ::: warning [SORBS DNS has been deprecated](https://www.mail-archive.com/mailop@mailop.org/msg22064.html). -If you were using them with postfix, you need to update your configuration by removing any reference to it. +If you were using them with postfix, you need to update your configuration by removing any reference to it. For example: @@ -634,11 +645,11 @@ numprocs=1 stopsignal=TERM ``` -* `python env path` : Python executable located in your virtual environment created for modoboa. -You will find it here `/srv/modoboa/venv/bin/python` by default. -* `manage.py instance path`: Path to manage.py of your modoboa instance. - You will find it here : `/srv/modoboa/instance/manage.py`by default. -* `Modoboa home dir`: Home dir of the user running modooba. +* `python env path` : Python executable located in your virtual environment created for modoboa. +You will find it here `/srv/modoboa/venv/bin/python` by default. +* `manage.py instance path`: Path to manage.py of your modoboa instance. + You will find it here : `/srv/modoboa/instance/manage.py`by default. +* `Modoboa home dir`: Home dir of the user running modooba. You will find it here `/srv/modoboa/` by default. * `modoboa user` : User managing dkim signing (modoboa by default). @@ -709,11 +720,11 @@ pip install psycopg[binary]>=3.1 ::: RQ has been added. This should replace the use of cron jobs in the -future. +future. For now, only `manage_dkim_keys` has been migrated. -This will make the dkim key generation asynchronous +This will make the dkim key generation asynchronous but the task will be started as soon as the generation is required. Follow these instructions to perform the update in case you used @@ -760,12 +771,12 @@ numprocs=1 stopsignal=TERM ``` -* `python env path` : Python executable located in your virtual environment created for modoboa. - You will find it here `/srv/modoboa/venv/bin/python` by default. -* `manage.py instance path`: Path to manage.py of your modoboa instance. - You will find it here : `/srv/modoboa/instance/manage.py`by default. -* `Modoboa home dir`: Home dir of the user running modooba. - You will find it here `/srv/modoboa/` by default. +* `python env path` : Python executable located in your virtual environment created for modoboa. + You will find it here `/srv/modoboa/venv/bin/python` by default. +* `manage.py instance path`: Path to manage.py of your modoboa instance. + You will find it here : `/srv/modoboa/instance/manage.py`by default. +* `Modoboa home dir`: Home dir of the user running modooba. + You will find it here `/srv/modoboa/` by default. * `dkim manager user` : User managing dkim signing (opendkim by default). You can help you with `/etc/supervisor/conf.d/policyd.conf` (by default). @@ -778,7 +789,7 @@ $ supervisorctl reread && supervisorctl update Admins now have the option to setup a send-only mailbox. -Send-only mailboxes do not have access to IMAP. +Send-only mailboxes do not have access to IMAP. You need to change your dovecot configuration to enable it. @@ -796,7 +807,7 @@ password_query = SELECT email AS user, password, '%{home_dir}/%%d/%%n' AS userdb You basically simply need: -* add `(mb.is_send_only IS NOT TRUE OR '%s' NOT IN ('imap', 'pop3', 'lmtp')) AND` for `user_query` after `WHERE` +* add `(mb.is_send_only IS NOT TRUE OR '%s' NOT IN ('imap', 'pop3', 'lmtp')) AND` for `user_query` after `WHERE` * add`(mb.is_send_only IS NOT TRUE OR '%s' NOT IN ('imap', 'pop3')) AND` for `password_query` after `WHERE`. If you use `MySQL`: Change `user_query` and `password_query` in `/etc/dovecot/dovecot-sql-master.ext`: @@ -807,8 +818,8 @@ If you use `MySQL`: Change `user_query` and `password_query` in `/etc/dovecot/do password_query = SELECT email AS user, password, '%{home_dir}/%%d/%%n' AS userdb_home, %mailboxes_owner_uid AS userdb_uid, %mailboxes_owner_gid AS userdb_gid, CONCAT('*:bytes=', mb.quota, 'M') AS userdb_quota_rule FROM core_user u INNER JOIN admin_mailbox mb ON u.id=mb.user_id INNER JOIN admin_domain dom ON mb.domain_id=dom.id WHERE (mb.is_send_only=0 OR '%s' NOT IN ('imap', 'pop3')) AND u.email='%%u' AND u.is_active=1 AND dom.enabled=1 ``` -You basically simply need -* add `(mb.is_send_only=0 OR '%s' NOT IN ('imap', 'pop3', 'lmtp')) AND` for `user_query` after `WHERE` +You basically simply need +* add `(mb.is_send_only=0 OR '%s' NOT IN ('imap', 'pop3', 'lmtp')) AND` for `user_query` after `WHERE` * `(mb.is_send_only=0 OR '%s' NOT IN ('imap', 'pop3'))` for `password_query` after `WHERE`. ## Version 2.1.0 @@ -953,7 +964,7 @@ REST_FRAMEWORK = { } ``` -* You can edit the `DEFAULT_THROTTLE_RATES` to whatever value suits you: +* You can edit the `DEFAULT_THROTTLE_RATES` to whatever value suits you: * `user` is for every endpoint, it is per user or per ip if not logged. * `ddos` is per api endpoint and per user or per ip if not logged. @@ -1027,7 +1038,7 @@ DEFAULT_AUTO_FIELD = 'django.db.models.BigAutoField' #### Migration issue for Postgres/OpenDKIM users -The [migration will probably fail](https://github.com/modoboa/modoboa/issues/2508) +The [migration will probably fail](https://github.com/modoboa/modoboa/issues/2508) because of the additional view created for OpenDKIM. To make it work, you first need to drop the view: @@ -1085,7 +1096,7 @@ GRANT #### New admin interface ::: tip INFORMATION -This new release brings a new admin interface written with Vue.js framework. +This new release brings a new admin interface written with Vue.js framework. ::: It is a work in progress and all features are not yet @@ -1093,7 +1104,7 @@ implemented - i.e. extensions integration - but you could give it a try. It uses a new API version but the old one is still available. You will need to copy the frontend files in the folder you specified in -your web server configuration. +your web server configuration. If you used the installer, the folder should be `/srv/modoboa/instance/frontend`: @@ -1102,7 +1113,7 @@ mkdir /srv/modoboa/instance/frontend cp -r /srv/modoboa/env/lib/pythonX.X/site-packages/modoboa/frontend_dist/* /srv/modoboa/instance/frontend ``` -Then, edit the `/srv/modoboa/instance/frontend/config.json` and update the `API_BASE_URL` +Then, edit the `/srv/modoboa/instance/frontend/config.json` and update the `API_BASE_URL` setting according to the hostname of your server: ``` json @@ -1111,7 +1122,7 @@ setting according to the hostname of your server: } ``` -Finally, update the configuration of your web server to serve the frontend files. +Finally, update the configuration of your web server to serve the frontend files. For NGINX, you should add the following in the `server` block: @@ -1269,7 +1280,7 @@ This version drops Python 2 support so don't forget to update all the extensions If you upgrade an existing python 2 installation, you will need to create a new Python 3 virtual environment. -You can remove the existing virtual environment and replace it by the new one +You can remove the existing virtual environment and replace it by the new one so you won't have to modify your configuration files. ::: @@ -1291,7 +1302,7 @@ Then, reload postfix. ## Version 1.14.0 -This release introduces an optional LDAP synchronization process. +This release introduces an optional LDAP synchronization process. If you want to use it, please follow the `dedicated procedure` #ldap-sync . @@ -1330,7 +1341,7 @@ SESSION_COOKIE_SECURE = True ### modoboa-postfix-autoreply 1.5.0 -Edit the `/etc/postfix/main.cf` file and remove the `sql-autoreplies-transport.cf` map from the `transport_maps` if present. +Edit the `/etc/postfix/main.cf` file and remove the `sql-autoreplies-transport.cf` map from the `transport_maps` if present. Remove the corresponding `proxy_read_maps` entry if relevant. @@ -1414,7 +1425,7 @@ Replace `` and `` by your values. If `transport_maps` contains `sql-relaydomains-transport.cf`, remove it. ::: warning -If you make use of postfix's [proxymap server](http://www.postfix.org/proxymap.8.html), +If you make use of postfix's [proxymap server](http://www.postfix.org/proxymap.8.html), you must also update the `proxy_read_maps` setting. ::: @@ -1472,7 +1483,7 @@ Add the following lines: ``` python # Password validation rules AUTH_PASSWORD_VALIDATORS = [ # [!code ++] - { # [!code ++] + { # [!code ++] 'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator', # [!code ++] }, # [!code ++] { # [!code ++] @@ -1498,8 +1509,8 @@ AUTH_PASSWORD_VALIDATORS = [ # [!code ++] ## Version 1.7.2 -API documentation has evolved (because of the upgrade to Django Rest Framework 3.6) -and CKeditor is now embedded by default (thanks to the `django-ckeditor` package). +API documentation has evolved (because of the upgrade to Django Rest Framework 3.6) +and CKeditor is now embedded by default (thanks to the `django-ckeditor` package). Some configuration changes are required. @@ -1540,15 +1551,15 @@ REST_FRAMEWORK = { ``` python # CKeditor -CKEDITOR_UPLOAD_PATH = "uploads/" +CKEDITOR_UPLOAD_PATH = "uploads/" -CKEDITOR_IMAGE_BACKEND = "pillow" +CKEDITOR_IMAGE_BACKEND = "pillow" -CKEDITOR_RESTRICT_BY_USER = True +CKEDITOR_RESTRICT_BY_USER = True -CKEDITOR_BROWSE_SHOW_DIRS = True +CKEDITOR_BROWSE_SHOW_DIRS = True -CKEDITOR_ALLOW_NONIMAGE_FILES = False +CKEDITOR_ALLOW_NONIMAGE_FILES = False CKEDITOR_CONFIGS = { 'default': { @@ -1590,12 +1601,12 @@ $ python manage.py load_initial_data ## Version 1.7.0 -This version requires Django \>= 1.10 so you need to make some modifications. +This version requires Django \>= 1.10 so you need to make some modifications. It also brings internal API changes which are not backward compatible so installed extensions must be upgraded too. -First of all, deactivate all installed extensions (edit the `settings.py` file +First of all, deactivate all installed extensions (edit the `settings.py` file and comment the corresponding lines in `MODOBOA_APPS`). Edit the `urls.py` file of your local @@ -1815,11 +1826,11 @@ Otherwise, you will have an internal error after upgrade. In particular: ::: An interesting feature brougth by this version is the capability to make -different checks about MX records. +different checks about MX records. -For example, Modoboa can query main [DNSBL](https://en.wikipedia.org/wiki/DNSBL) providers for every defined domain. +For example, Modoboa can query main [DNSBL](https://en.wikipedia.org/wiki/DNSBL) providers for every defined domain. -With this, you will quickly know if one the domains you manage is listed or not. +With this, you will quickly know if one the domains you manage is listed or not. To activate it, add the following line to your crontab: @@ -1842,9 +1853,9 @@ Please also note that public API now uses TLS so you must update your configurat MODOBOA_API_URL = 'https://api.modoboa.org/1/' ``` -Finally, it is now possible to declare additional sender addresses on a per-account basis. +Finally, it is now possible to declare additional sender addresses on a per-account basis. -You need to update your postfix configuration in order to use this functionality. +You need to update your postfix configuration in order to use this functionality. Just edit the `main.cf` file and change the following parameter: ```txt @@ -1895,7 +1906,7 @@ You're done. The documentation is now available at the following address: https:// your instance address /docs/api/ ``` -Finally, if you find a `TEMPLATE_CONTEXT_PROCESSORS` variable in your `settings.py` file, +Finally, if you find a `TEMPLATE_CONTEXT_PROCESSORS` variable in your `settings.py` file, make sure it looks like this: ```python @@ -1922,7 +1933,7 @@ the `MODOBOA_APPS` variable: | Old name | New name | | :-------------------------: | :--------------------: | -| modoboa_admin | modoboa.admin | +| modoboa_admin | modoboa.admin | | modoboa_admin_limits | modoboa.limits | | modoboa_admin_relaydomains | modoboa.relaydomains | @@ -2008,11 +2019,11 @@ DATABASES = { ## Version 1.3.0 -This release does not bring awesome new features but it is a necessary bridge to the future of Modoboa. +This release does not bring awesome new features but it is a necessary bridge to the future of Modoboa. All extensions now have their own git repository and the deploy process has been updated to reflect this change. -Another important update is the use of Django 1.7. +Another important update is the use of Django 1.7. Besides its new features, the migration system has been reworked and is now more robust than before. @@ -2068,7 +2079,7 @@ Here are the required steps: ## Version 1.2.0 -A new notification service let administrators know about new Modoboa versions. +A new notification service let administrators know about new Modoboa versions. To activate it, you need to update the `TEMPLATE_CONTEXT_PROCESSORS` variable like this: @@ -2115,8 +2126,8 @@ If you plan to use the Radicale extension: ``` ::: warning -You also have to note that the `sitestatic` directory has moved -from `` to `` (it's probably the parent directory). +You also have to note that the `sitestatic` directory has moved +from `` to `` (it's probably the parent directory). You have to adapt your web server configuration to reflect this change. -::: \ No newline at end of file +::: diff --git a/modoboa/autoconfig/templates/autoconfig/autoconfig.xml b/modoboa/autoconfig/templates/autoconfig/autoconfig.xml index 2477d2d38..e8af4ac61 100644 --- a/modoboa/autoconfig/templates/autoconfig/autoconfig.xml +++ b/modoboa/autoconfig/templates/autoconfig/autoconfig.xml @@ -9,7 +9,7 @@ {{ connection_settings.imap.HOSTNAME }} {{ connection_settings.imap.PORT }} {{ connection_settings.imap.SOCKET_TYPE }} - plain + password-cleartext {{ emailaddress }} @@ -17,7 +17,7 @@ {{ connection_settings.smtp.HOSTNAME }} {{ connection_settings.smtp.PORT }} {{ connection_settings.smtp.SOCKET_TYPE }} - plain + password-cleartext {{ emailaddress }} diff --git a/modoboa/autoconfig/templates/autoconfig/autodiscover.xml b/modoboa/autoconfig/templates/autoconfig/autodiscover.xml index feb6cd61e..d8c714707 100644 --- a/modoboa/autoconfig/templates/autoconfig/autodiscover.xml +++ b/modoboa/autoconfig/templates/autoconfig/autodiscover.xml @@ -9,7 +9,16 @@ IMAP {{ connection_settings.imap.HOSTNAME }} {{ connection_settings.imap.PORT }} + {% if connection_settings.imap.SOCKET_TYPE|upper == "SSL" %} true + false + {% elif connection_settings.imap.SOCKET_TYPE|upper == "STARTTLS" %} + false + true + {% elif connection_settings.imap.SOCKET_TYPE|lower == "plain" %} + false + false + {% endif %} {{ emailaddress }} @@ -17,8 +26,13 @@ SMTP {{ connection_settings.smtp.HOSTNAME }} {{ connection_settings.smtp.PORT }} + {% if connection_settings.smtp.SOCKET_TYPE|upper == "SSL" %} + true + false + {% elif connection_settings.smtp.SOCKET_TYPE|upper == "STARTTLS" %} false true + {% endif %} {{ emailaddress }} diff --git a/modoboa/autoconfig/tests.py b/modoboa/autoconfig/tests.py index c43a43eef..a594b4ad9 100644 --- a/modoboa/autoconfig/tests.py +++ b/modoboa/autoconfig/tests.py @@ -10,7 +10,8 @@ class ViewsTestCase(TestCase): url = reverse("autoconfig:autoconfig") resp = self.client.get(url) - self.assertEqual(resp.status_code, 404) + self.assertEqual(resp.status_code, 200) + self.assertIn(b"%EMAILLOCALPART%@%EMAILDOMAIN%", resp.content) resp = self.client.get(f"{url}?emailaddress=test@test.com") self.assertEqual(resp.status_code, 200) diff --git a/modoboa/autoconfig/views.py b/modoboa/autoconfig/views.py index 932e8c1b5..1b5c04752 100644 --- a/modoboa/autoconfig/views.py +++ b/modoboa/autoconfig/views.py @@ -24,6 +24,10 @@ class ConfigBaseMixin: class AutoConfigView(ConfigBaseMixin, generic.TemplateView): + """ + Format documentation: + https://wiki.mozilla.org/Thunderbird:Autoconfiguration:ConfigFileFormat + """ http_method_names = ["get"] template_name = "autoconfig/autoconfig.xml" @@ -31,7 +35,7 @@ class AutoConfigView(ConfigBaseMixin, generic.TemplateView): def get_context_data(self, **kwargs): emailaddress = self.request.GET.get("emailaddress") if not emailaddress: - raise Http404 + emailaddress = "%EMAILLOCALPART%@%EMAILDOMAIN%" context = super().get_context_data(**kwargs) context.update(self.get_common_context(emailaddress)) return context @@ -88,14 +92,18 @@ class MobileConfigView(generic.View): "EmailAccountType": "EmailTypeIMAP", "EmailAddress": emailaddress, # incoming + "IncomingMailServerAuthentication": "EmailAuthPassword", "IncomingMailServerHostName": imap_settings["HOSTNAME"], "IncomingMailServerPortNumber": imap_settings["PORT"], - "IncomingMailServerUseSSL": True, + "IncomingMailServerUseSSL": imap_settings["SOCKET_TYPE"].upper() + == "SSL", # `false` means StartTLS "IncomingMailServerUsername": emailaddress, # outgoing + "OutgoingMailServerAuthentication": "EmailAuthPassword", "OutgoingMailServerHostName": smtp_settings["HOSTNAME"], "OutgoingMailServerPortNumber": smtp_settings["PORT"], - "OutgoingMailServerUseSSL": True, + "OutgoingMailServerUseSSL": smtp_settings["SOCKET_TYPE"].upper() + == "SSL", # `false` means StartTLS, "OutgoingMailServerUsername": emailaddress, "OutgoingPasswordSameAsIncomingPassword": True, } diff --git a/modoboa/core/commands/templates/settings.py.tpl b/modoboa/core/commands/templates/settings.py.tpl index 1b58ce695..6cf6218e4 100644 --- a/modoboa/core/commands/templates/settings.py.tpl +++ b/modoboa/core/commands/templates/settings.py.tpl @@ -38,6 +38,17 @@ SITE_ID = 1 # The email address that error messages come from, such as those sent to ADMINS #SERVER_EMAIL = 'webmaster@example.net' +# E-Mail client settings used for AutoDiscovery information served to clients +# +# Not used for Modoboa WebMail; configure that in the Modoboa admin settings. +# +# * HOSTNAME: External hostname that clients should connect to +# * Supports Thunderbird-style placeholders to substitute values from the +# email address originally entered into the mail client: +# %EMAILADDRESS%, %EMAILLOCALPART%, %EMAILDOMAIN% +# * SOCKET_TYPE: Actually the encryption settings +# * May be one of: 'SSL' (immediate TLS), 'STARTTLS' or 'plain' (bad) +# * PORT: TCP port that the client should use when connecting to the server EMAIL_CLIENT_CONNECTION_SETTINGS = { 'imap': { 'HOSTNAME': '{{ allowed_host }}',