diff --git a/actions/email_server b/actions/email
similarity index 97%
rename from actions/email_server
rename to actions/email
index 8cfc79ae5..8bf68630c 100755
--- a/actions/email_server
+++ b/actions/email
@@ -10,7 +10,7 @@ import os
import sys
import plinth.log
-from plinth.modules.email_server import audit
+from plinth.modules.email import audit
EXIT_SYNTAX = 10
EXIT_PERM = 20
diff --git a/plinth/modules/email_server/__init__.py b/plinth/modules/email/__init__.py
similarity index 77%
rename from plinth/modules/email_server/__init__.py
rename to plinth/modules/email/__init__.py
index de8b5a798..a3e90ab3f 100644
--- a/plinth/modules/email_server/__init__.py
+++ b/plinth/modules/email/__init__.py
@@ -36,9 +36,9 @@ app = None
logger = logging.getLogger(__name__)
-class EmailServerApp(plinth.app.App):
- """FreedomBox email server app"""
- app_id = 'email_server'
+class EmailApp(plinth.app.App):
+ """FreedomBox app for an email server."""
+ app_id = 'email'
_version = 1
@@ -46,25 +46,26 @@ class EmailServerApp(plinth.app.App):
"""The app's constructor"""
super().__init__()
- info = plinth.app.Info(
- app_id=self.app_id, version=self._version,
- name=_('Postfix/Dovecot'), icon_filename='roundcube',
- short_description=_('Email Server'), description=_description,
- manual_page='EmailServer', clients=manifest.clients,
- donation_url='https://rspamd.com/support.html')
+ info = plinth.app.Info(app_id=self.app_id, version=self._version,
+ name=_('Postfix/Dovecot'),
+ icon_filename='roundcube',
+ short_description=_('Email Server'),
+ description=_description, manual_page='Email',
+ clients=manifest.clients,
+ donation_url='https://rspamd.com/support.html')
self.add(info)
- menu_item = menu.Menu('menu-email-server', info.name,
- info.short_description, info.icon_filename,
- 'email_server:index', parent_url_name='apps')
+ menu_item = menu.Menu('menu-email', info.name, info.short_description,
+ info.icon_filename, 'email:index',
+ parent_url_name='apps')
self.add(menu_item)
shortcut = frontpage.Shortcut(
- 'shortcut-email-server', info.name,
+ 'shortcut-email', info.name,
short_description=info.short_description, icon=info.icon_filename,
description=info.description,
- configure_url=reverse_lazy('email_server:index'),
- clients=info.clients, login_required=True)
+ configure_url=reverse_lazy('email:index'), clients=info.clients,
+ login_required=True)
self.add(shortcut)
# Other likely install conflicts have been discarded:
@@ -72,7 +73,7 @@ class EmailServerApp(plinth.app.App):
# - qmail and smail are missing in Bullseye (Not tested,
# but less likely due to that).
packages = Packages(
- 'packages-email-server', [
+ 'packages-email', [
'postfix', 'postfix-ldap', 'postfix-sqlite', 'dovecot-pop3d',
'dovecot-imapd', 'dovecot-ldap', 'dovecot-lmtpd',
'dovecot-managesieved'
@@ -80,13 +81,13 @@ class EmailServerApp(plinth.app.App):
conflicts_action=Packages.ConflictsAction.IGNORE)
self.add(packages)
- packages = Packages('packages-email-server-skip-rec', ['rspamd'],
+ packages = Packages('packages-email-skip-rec', ['rspamd'],
skip_recommends=True)
self.add(packages)
listen_ports = [(25, 'tcp4'), (25, 'tcp6'), (465, 'tcp4'),
(465, 'tcp6'), (587, 'tcp4'), (587, 'tcp6')]
- daemon = Daemon('daemon-email-server-postfix', 'postfix',
+ daemon = Daemon('daemon-email-postfix', 'postfix',
listen_ports=listen_ports)
self.add(daemon)
@@ -94,13 +95,13 @@ class EmailServerApp(plinth.app.App):
(993, 'tcp6'), (110, 'tcp4'), (110, 'tcp6'),
(995, 'tcp4'), (995, 'tcp6'), (4190, 'tcp4'),
(4190, 'tcp6')]
- daemon = Daemon('daemon-email-server-dovecot', 'dovecot',
+ daemon = Daemon('daemon-email-dovecot', 'dovecot',
listen_ports=listen_ports)
self.add(daemon)
listen_ports = [(11332, 'tcp4'), (11332, 'tcp6'), (11333, 'tcp4'),
(11333, 'tcp6'), (11334, 'tcp4'), (11334, 'tcp6')]
- daemon = Daemon('daemon-email-server-rspamd', 'rspamd',
+ daemon = Daemon('daemon-email-rspamd', 'rspamd',
listen_ports=listen_ports)
self.add(daemon)
@@ -112,25 +113,25 @@ class EmailServerApp(plinth.app.App):
# /rspamd location
webserver = Webserver(
'webserver-email', # unique id
- 'email-server-freedombox', # config file name
+ 'email-freedombox', # config file name
urls=['https://{host}/rspamd'])
self.add(webserver)
# Let's Encrypt event hook
letsencrypt = LetsEncrypt(
- 'letsencrypt-email-server-postfix', domains='*',
- daemons=['postfix'], should_copy_certificates=True,
+ 'letsencrypt-email-postfix', domains='*', daemons=['postfix'],
+ should_copy_certificates=True,
private_key_path='/etc/postfix/letsencrypt/{domain}/chain.pem',
certificate_path='/etc/postfix/letsencrypt/{domain}/chain.pem',
- user_owner='root', group_owner='root', managing_app='email_server')
+ user_owner='root', group_owner='root', managing_app='email')
self.add(letsencrypt)
letsencrypt = LetsEncrypt(
- 'letsencrypt-email-server-dovecot', domains='*',
- daemons=['dovecot'], should_copy_certificates=True,
+ 'letsencrypt-email-dovecot', domains='*', daemons=['dovecot'],
+ should_copy_certificates=True,
private_key_path='/etc/dovecot/letsencrypt/{domain}/privkey.pem',
certificate_path='/etc/dovecot/letsencrypt/{domain}/cert.pem',
- user_owner='root', group_owner='root', managing_app='email_server')
+ user_owner='root', group_owner='root', managing_app='email')
self.add(letsencrypt)
@staticmethod
@@ -157,7 +158,7 @@ def setup(helper, old_version=None):
"""Installs and configures module"""
def _clear_conflicts():
- component = app.get_component('packages-email-server')
+ component = app.get_component('packages-email')
packages_to_remove = component.find_conflicts()
if packages_to_remove:
logger.info('Removing conflicting packages: %s',
@@ -170,8 +171,8 @@ def setup(helper, old_version=None):
# Setup
helper.call('post', audit.home.repair)
- app.get_component('letsencrypt-email-server-postfix').setup_certificates()
- app.get_component('letsencrypt-email-server-dovecot').setup_certificates()
+ app.get_component('letsencrypt-email-postfix').setup_certificates()
+ app.get_component('letsencrypt-email-dovecot').setup_certificates()
helper.call('post', audit.domain.set_domains)
helper.call('post', audit.ldap.repair)
helper.call('post', audit.spam.repair)
diff --git a/plinth/modules/email_server/aliases.py b/plinth/modules/email/aliases.py
similarity index 97%
rename from plinth/modules/email_server/aliases.py
rename to plinth/modules/email/aliases.py
index e3c9515f2..aeeb9163f 100644
--- a/plinth/modules/email_server/aliases.py
+++ b/plinth/modules/email/aliases.py
@@ -98,7 +98,7 @@ def _set_status(username, aliases, status):
def first_setup():
"""Create the database file and schema inside it."""
- actions.superuser_run('email_server', ['aliases', 'setup'])
+ actions.superuser_run('email', ['aliases', 'setup'])
# Create schema if not exists
query = '''
diff --git a/plinth/modules/email_server/audit/__init__.py b/plinth/modules/email/audit/__init__.py
similarity index 100%
rename from plinth/modules/email_server/audit/__init__.py
rename to plinth/modules/email/audit/__init__.py
diff --git a/plinth/modules/email_server/audit/aliases.py b/plinth/modules/email/audit/aliases.py
similarity index 100%
rename from plinth/modules/email_server/audit/aliases.py
rename to plinth/modules/email/audit/aliases.py
diff --git a/plinth/modules/email_server/audit/domain.py b/plinth/modules/email/audit/domain.py
similarity index 96%
rename from plinth/modules/email_server/audit/domain.py
rename to plinth/modules/email/audit/domain.py
index 5e8d341f7..a6fd767f3 100644
--- a/plinth/modules/email_server/audit/domain.py
+++ b/plinth/modules/email/audit/domain.py
@@ -7,7 +7,7 @@ import subprocess
from plinth.actions import superuser_run
from plinth.modules import config
-from plinth.modules.email_server import postconf
+from plinth.modules.email import postconf
from plinth.modules.names.components import DomainName
from . import tls
@@ -31,7 +31,7 @@ def set_domains(primary_domain=None):
primary_domain = config.get_domainname() or list(all_domains)[0]
superuser_run(
- 'email_server',
+ 'email',
['domain', 'set_domains', primary_domain, ','.join(all_domains)])
diff --git a/plinth/modules/email_server/audit/home.py b/plinth/modules/email/audit/home.py
similarity index 90%
rename from plinth/modules/email_server/audit/home.py
rename to plinth/modules/email/audit/home.py
index dae22f6fc..860cd1c52 100644
--- a/plinth/modules/email_server/audit/home.py
+++ b/plinth/modules/email/audit/home.py
@@ -14,7 +14,7 @@ def repair():
directory. Ensure that 'others' can access /var/mail/.
"""
- actions.superuser_run('email_server', ['home', 'set_up'])
+ actions.superuser_run('email', ['home', 'set_up'])
def action_set_up():
diff --git a/plinth/modules/email_server/audit/ldap.py b/plinth/modules/email/audit/ldap.py
similarity index 92%
rename from plinth/modules/email_server/audit/ldap.py
rename to plinth/modules/email/audit/ldap.py
index 6a727e490..87d8f9934 100644
--- a/plinth/modules/email_server/audit/ldap.py
+++ b/plinth/modules/email/audit/ldap.py
@@ -6,8 +6,8 @@ import logging
from django.utils.translation import gettext_lazy as _
-import plinth.modules.email_server.aliases as aliases
-import plinth.modules.email_server.postconf as postconf
+import plinth.modules.email.aliases as aliases
+import plinth.modules.email.postconf as postconf
from plinth import actions
from . import models
@@ -82,7 +82,7 @@ def repair():
POST /audit/ldap/repair
"""
aliases.first_setup()
- actions.superuser_run('email_server', ['ldap', 'set_up'])
+ actions.superuser_run('email', ['ldap', 'set_up'])
def action_set_up():
@@ -102,13 +102,13 @@ def fix_sasl(diagnosis):
def action_set_sasl():
- """Handles email_server -i ldap set_sasl"""
+ """Handles email -i ldap set_sasl"""
with postconf.mutex.lock_all():
fix_sasl(check_sasl())
def action_set_submission():
- """Handles email_server -i ldap set_submission"""
+ """Handles email -i ldap set_submission"""
postconf.set_master_cf_options(service_flags=submission_flags,
options=default_submission_options)
postconf.set_master_cf_options(service_flags=smtps_flags,
@@ -140,6 +140,6 @@ def fix_alias_maps(diagnosis):
def action_set_ulookup():
- """Handles email_server -i ldap set_ulookup"""
+ """Handles email -i ldap set_ulookup"""
with postconf.mutex.lock_all():
fix_alias_maps(check_alias_maps())
diff --git a/plinth/modules/email_server/audit/models.py b/plinth/modules/email/audit/models.py
similarity index 100%
rename from plinth/modules/email_server/audit/models.py
rename to plinth/modules/email/audit/models.py
diff --git a/plinth/modules/email_server/audit/spam.py b/plinth/modules/email/audit/spam.py
similarity index 95%
rename from plinth/modules/email_server/audit/spam.py
rename to plinth/modules/email/audit/spam.py
index d070a9f8b..a164cdca4 100644
--- a/plinth/modules/email_server/audit/spam.py
+++ b/plinth/modules/email/audit/spam.py
@@ -9,8 +9,8 @@ import subprocess
from django.utils.translation import gettext_lazy as _
from plinth import actions
-from plinth.modules.email_server import interproc, lock, postconf
-from plinth.modules.email_server.modconf import ConfigInjector
+from plinth.modules.email import interproc, lock, postconf
+from plinth.modules.email.modconf import ConfigInjector
from . import models
@@ -94,7 +94,7 @@ def get():
def repair():
- actions.superuser_run('email_server', ['spam', 'set_filter'])
+ actions.superuser_run('email', ['spam', 'set_filter'])
def check_filter(title=''):
diff --git a/plinth/modules/email_server/audit/tls.py b/plinth/modules/email/audit/tls.py
similarity index 97%
rename from plinth/modules/email_server/audit/tls.py
rename to plinth/modules/email/audit/tls.py
index 93e891d03..5d20b2a39 100644
--- a/plinth/modules/email_server/audit/tls.py
+++ b/plinth/modules/email/audit/tls.py
@@ -1,7 +1,7 @@
"""TLS configuration for postfix and dovecot."""
# SPDX-License-Identifier: AGPL-3.0-or-later
-from plinth.modules.email_server import interproc, postconf
+from plinth.modules.email import interproc, postconf
# Mozilla Guideline v5.6, Postfix 1.17.7, OpenSSL 1.1.1d, intermediate
# Generated 2021-08
diff --git a/plinth/modules/email_server/data/etc/apache2/conf-available/email-server-freedombox.conf b/plinth/modules/email/data/etc/apache2/conf-available/email-freedombox.conf
similarity index 93%
rename from plinth/modules/email_server/data/etc/apache2/conf-available/email-server-freedombox.conf
rename to plinth/modules/email/data/etc/apache2/conf-available/email-freedombox.conf
index 218087e8a..6fe412877 100644
--- a/plinth/modules/email_server/data/etc/apache2/conf-available/email-server-freedombox.conf
+++ b/plinth/modules/email/data/etc/apache2/conf-available/email-freedombox.conf
@@ -27,6 +27,6 @@
RewriteEngine On
- RewriteRule ^ /plinth/apps/email_server/config.xml [PT]
+ RewriteRule ^ /plinth/apps/email/config.xml [PT]
diff --git a/plinth/modules/email_server/data/etc/apache2/includes/freedombox-robots.conf b/plinth/modules/email/data/etc/apache2/includes/freedombox-robots.conf
similarity index 100%
rename from plinth/modules/email_server/data/etc/apache2/includes/freedombox-robots.conf
rename to plinth/modules/email/data/etc/apache2/includes/freedombox-robots.conf
diff --git a/plinth/modules/email_server/data/etc/dovecot/conf.d/05-freedombox-auth.conf b/plinth/modules/email/data/etc/dovecot/conf.d/05-freedombox-auth.conf
similarity index 77%
rename from plinth/modules/email_server/data/etc/dovecot/conf.d/05-freedombox-auth.conf
rename to plinth/modules/email/data/etc/dovecot/conf.d/05-freedombox-auth.conf
index a2d3eabcc..bd33cde76 100644
--- a/plinth/modules/email_server/data/etc/dovecot/conf.d/05-freedombox-auth.conf
+++ b/plinth/modules/email/data/etc/dovecot/conf.d/05-freedombox-auth.conf
@@ -1,5 +1,5 @@
# Direct edits to this file will be lost!
-# Manage your settings on Plinth
+# Manage your settings on FreedomBox
# Outlook and Windows Mail works only with LOGIN mechanism, not the standard
# PLAIN:
diff --git a/plinth/modules/email_server/data/etc/dovecot/conf.d/05-freedombox-mail.conf b/plinth/modules/email/data/etc/dovecot/conf.d/05-freedombox-mail.conf
similarity index 93%
rename from plinth/modules/email_server/data/etc/dovecot/conf.d/05-freedombox-mail.conf
rename to plinth/modules/email/data/etc/dovecot/conf.d/05-freedombox-mail.conf
index e3c908d64..743b69318 100644
--- a/plinth/modules/email_server/data/etc/dovecot/conf.d/05-freedombox-mail.conf
+++ b/plinth/modules/email/data/etc/dovecot/conf.d/05-freedombox-mail.conf
@@ -1,5 +1,5 @@
# Direct edits to this file will be lost!
-# Manage your settings on Plinth
+# Manage your settings on FreedomBox
# Users in FreedomBox are not expected to access mail by logging into the
# system. Storing the mail in single location instead of home directories and
diff --git a/plinth/modules/email_server/data/etc/dovecot/conf.d/15-freedombox-mail.conf b/plinth/modules/email/data/etc/dovecot/conf.d/15-freedombox-mail.conf
similarity index 90%
rename from plinth/modules/email_server/data/etc/dovecot/conf.d/15-freedombox-mail.conf
rename to plinth/modules/email/data/etc/dovecot/conf.d/15-freedombox-mail.conf
index 40bccbce2..44bad2b93 100644
--- a/plinth/modules/email_server/data/etc/dovecot/conf.d/15-freedombox-mail.conf
+++ b/plinth/modules/email/data/etc/dovecot/conf.d/15-freedombox-mail.conf
@@ -1,5 +1,5 @@
# Direct edits to this file will be lost!
-# Manage your settings on Plinth
+# Manage your settings on FreedomBox
# Use sdbox, a format specific to dovecot, for storing mails. The format allows
# better performance with some IMAP queries. When this is combined with Full
diff --git a/plinth/modules/email_server/data/etc/dovecot/conf.d/90-freedombox-lmtp.conf b/plinth/modules/email/data/etc/dovecot/conf.d/90-freedombox-lmtp.conf
similarity index 55%
rename from plinth/modules/email_server/data/etc/dovecot/conf.d/90-freedombox-lmtp.conf
rename to plinth/modules/email/data/etc/dovecot/conf.d/90-freedombox-lmtp.conf
index a0f2a3ca4..33979e116 100644
--- a/plinth/modules/email_server/data/etc/dovecot/conf.d/90-freedombox-lmtp.conf
+++ b/plinth/modules/email/data/etc/dovecot/conf.d/90-freedombox-lmtp.conf
@@ -1,5 +1,5 @@
# Direct edits to this file will be lost!
-# Manage your settings on Plinth
+# Manage your settings on FreedomBox
protocol lmtp {
mail_plugins = $mail_plugins sieve
diff --git a/plinth/modules/email_server/data/etc/dovecot/conf.d/90-freedombox-mailboxes.conf b/plinth/modules/email/data/etc/dovecot/conf.d/90-freedombox-mailboxes.conf
similarity index 89%
rename from plinth/modules/email_server/data/etc/dovecot/conf.d/90-freedombox-mailboxes.conf
rename to plinth/modules/email/data/etc/dovecot/conf.d/90-freedombox-mailboxes.conf
index d14f70d59..1456360ce 100644
--- a/plinth/modules/email_server/data/etc/dovecot/conf.d/90-freedombox-mailboxes.conf
+++ b/plinth/modules/email/data/etc/dovecot/conf.d/90-freedombox-mailboxes.conf
@@ -1,5 +1,5 @@
# Direct edits to this file will be lost!
-# Manage your settings on Plinth
+# Manage your settings on FreedomBox
namespace inbox {
mailbox Archive {
diff --git a/plinth/modules/email_server/data/etc/dovecot/conf.d/90-freedombox-master.conf b/plinth/modules/email/data/etc/dovecot/conf.d/90-freedombox-master.conf
similarity index 79%
rename from plinth/modules/email_server/data/etc/dovecot/conf.d/90-freedombox-master.conf
rename to plinth/modules/email/data/etc/dovecot/conf.d/90-freedombox-master.conf
index 0b1137be7..162ee0f68 100644
--- a/plinth/modules/email_server/data/etc/dovecot/conf.d/90-freedombox-master.conf
+++ b/plinth/modules/email/data/etc/dovecot/conf.d/90-freedombox-master.conf
@@ -1,5 +1,5 @@
# Direct edits to this file will be lost!
-# Manage your settings on Plinth
+# Manage your settings on FreedomBox
service auth {
unix_listener /var/spool/postfix/private/auth {
diff --git a/plinth/modules/email_server/data/etc/dovecot/conf.d/90-freedombox-tls.conf b/plinth/modules/email/data/etc/dovecot/conf.d/90-freedombox-tls.conf
similarity index 100%
rename from plinth/modules/email_server/data/etc/dovecot/conf.d/90-freedombox-tls.conf
rename to plinth/modules/email/data/etc/dovecot/conf.d/90-freedombox-tls.conf
diff --git a/plinth/modules/email_server/data/etc/dovecot/conf.d/95-freedombox-sieve.conf b/plinth/modules/email/data/etc/dovecot/conf.d/95-freedombox-sieve.conf
similarity index 57%
rename from plinth/modules/email_server/data/etc/dovecot/conf.d/95-freedombox-sieve.conf
rename to plinth/modules/email/data/etc/dovecot/conf.d/95-freedombox-sieve.conf
index dc34ba411..352475064 100644
--- a/plinth/modules/email_server/data/etc/dovecot/conf.d/95-freedombox-sieve.conf
+++ b/plinth/modules/email/data/etc/dovecot/conf.d/95-freedombox-sieve.conf
@@ -1,5 +1,5 @@
# Direct edits to this file will be lost!
-# Manage your settings on Plinth
+# Manage your settings on FreedomBox
plugin {
sieve_after = /etc/dovecot/freedombox-sieve-after
diff --git a/plinth/modules/email_server/data/etc/dovecot/freedombox-sieve-after/README.txt b/plinth/modules/email/data/etc/dovecot/freedombox-sieve-after/README.txt
similarity index 100%
rename from plinth/modules/email_server/data/etc/dovecot/freedombox-sieve-after/README.txt
rename to plinth/modules/email/data/etc/dovecot/freedombox-sieve-after/README.txt
diff --git a/plinth/modules/email_server/data/etc/dovecot/freedombox-sieve-after/sort-spam.sieve b/plinth/modules/email/data/etc/dovecot/freedombox-sieve-after/sort-spam.sieve
similarity index 100%
rename from plinth/modules/email_server/data/etc/dovecot/freedombox-sieve-after/sort-spam.sieve
rename to plinth/modules/email/data/etc/dovecot/freedombox-sieve-after/sort-spam.sieve
diff --git a/plinth/modules/email/data/etc/plinth/modules-enabled/email b/plinth/modules/email/data/etc/plinth/modules-enabled/email
new file mode 100644
index 000000000..ae704e3fd
--- /dev/null
+++ b/plinth/modules/email/data/etc/plinth/modules-enabled/email
@@ -0,0 +1 @@
+#plinth.modules.email
diff --git a/plinth/modules/email_server/data/etc/plinth/rspamd-config/local_milter_headers.conf b/plinth/modules/email/data/etc/plinth/rspamd-config/local_milter_headers.conf
similarity index 100%
rename from plinth/modules/email_server/data/etc/plinth/rspamd-config/local_milter_headers.conf
rename to plinth/modules/email/data/etc/plinth/rspamd-config/local_milter_headers.conf
diff --git a/plinth/modules/email_server/data/etc/plinth/rspamd-config/override_options.inc b/plinth/modules/email/data/etc/plinth/rspamd-config/override_options.inc
similarity index 100%
rename from plinth/modules/email_server/data/etc/plinth/rspamd-config/override_options.inc
rename to plinth/modules/email/data/etc/plinth/rspamd-config/override_options.inc
diff --git a/plinth/modules/email_server/data/etc/postfix/freedombox-aliases.cf b/plinth/modules/email/data/etc/postfix/freedombox-aliases.cf
similarity index 100%
rename from plinth/modules/email_server/data/etc/postfix/freedombox-aliases.cf
rename to plinth/modules/email/data/etc/postfix/freedombox-aliases.cf
diff --git a/plinth/modules/email_server/data/etc/postfix/freedombox-header-cleanup b/plinth/modules/email/data/etc/postfix/freedombox-header-cleanup
similarity index 100%
rename from plinth/modules/email_server/data/etc/postfix/freedombox-header-cleanup
rename to plinth/modules/email/data/etc/postfix/freedombox-header-cleanup
diff --git a/plinth/modules/email_server/data/etc/postfix/freedombox-internal-cleanup b/plinth/modules/email/data/etc/postfix/freedombox-internal-cleanup
similarity index 100%
rename from plinth/modules/email_server/data/etc/postfix/freedombox-internal-cleanup
rename to plinth/modules/email/data/etc/postfix/freedombox-internal-cleanup
diff --git a/plinth/modules/email_server/data/etc/postfix/freedombox-rewrite-sender b/plinth/modules/email/data/etc/postfix/freedombox-rewrite-sender
similarity index 100%
rename from plinth/modules/email_server/data/etc/postfix/freedombox-rewrite-sender
rename to plinth/modules/email/data/etc/postfix/freedombox-rewrite-sender
diff --git a/plinth/modules/email_server/data/etc/postfix/freedombox-transport-from b/plinth/modules/email/data/etc/postfix/freedombox-transport-from
similarity index 100%
rename from plinth/modules/email_server/data/etc/postfix/freedombox-transport-from
rename to plinth/modules/email/data/etc/postfix/freedombox-transport-from
diff --git a/plinth/modules/email_server/data/etc/postfix/freedombox-transport-to b/plinth/modules/email/data/etc/postfix/freedombox-transport-to
similarity index 100%
rename from plinth/modules/email_server/data/etc/postfix/freedombox-transport-to
rename to plinth/modules/email/data/etc/postfix/freedombox-transport-to
diff --git a/plinth/modules/email_server/data/var/spool/postfix/fbx-managed/README.txt b/plinth/modules/email/data/var/spool/postfix/fbx-managed/README.txt
similarity index 100%
rename from plinth/modules/email_server/data/var/spool/postfix/fbx-managed/README.txt
rename to plinth/modules/email/data/var/spool/postfix/fbx-managed/README.txt
diff --git a/plinth/modules/email_server/data/var/spool/postfix/fbx-managed/pre-queue-milter-headers b/plinth/modules/email/data/var/spool/postfix/fbx-managed/pre-queue-milter-headers
similarity index 100%
rename from plinth/modules/email_server/data/var/spool/postfix/fbx-managed/pre-queue-milter-headers
rename to plinth/modules/email/data/var/spool/postfix/fbx-managed/pre-queue-milter-headers
diff --git a/plinth/modules/email_server/forms.py b/plinth/modules/email/forms.py
similarity index 100%
rename from plinth/modules/email_server/forms.py
rename to plinth/modules/email/forms.py
diff --git a/plinth/modules/email_server/interproc.py b/plinth/modules/email/interproc.py
similarity index 100%
rename from plinth/modules/email_server/interproc.py
rename to plinth/modules/email/interproc.py
diff --git a/plinth/modules/email_server/lock.py b/plinth/modules/email/lock.py
similarity index 100%
rename from plinth/modules/email_server/lock.py
rename to plinth/modules/email/lock.py
diff --git a/plinth/modules/email_server/manifest.py b/plinth/modules/email/manifest.py
similarity index 100%
rename from plinth/modules/email_server/manifest.py
rename to plinth/modules/email/manifest.py
diff --git a/plinth/modules/email_server/modconf.py b/plinth/modules/email/modconf.py
similarity index 100%
rename from plinth/modules/email_server/modconf.py
rename to plinth/modules/email/modconf.py
diff --git a/plinth/modules/email_server/postconf.py b/plinth/modules/email/postconf.py
similarity index 100%
rename from plinth/modules/email_server/postconf.py
rename to plinth/modules/email/postconf.py
diff --git a/plinth/modules/email_server/templates/email_alias.html b/plinth/modules/email/templates/email-aliases.html
similarity index 100%
rename from plinth/modules/email_server/templates/email_alias.html
rename to plinth/modules/email/templates/email-aliases.html
diff --git a/plinth/modules/email_server/templates/email_autoconfig.xml b/plinth/modules/email/templates/email-autoconfig.xml
similarity index 100%
rename from plinth/modules/email_server/templates/email_autoconfig.xml
rename to plinth/modules/email/templates/email-autoconfig.xml
diff --git a/plinth/modules/email_server/templates/email_server.html b/plinth/modules/email/templates/email.html
similarity index 89%
rename from plinth/modules/email_server/templates/email_server.html
rename to plinth/modules/email/templates/email.html
index b18fdaa54..03bf737d8 100644
--- a/plinth/modules/email_server/templates/email_server.html
+++ b/plinth/modules/email/templates/email.html
@@ -11,7 +11,7 @@
+ href="{% url 'email:aliases' %}">
{% trans "Manage Aliases" %}
{% endblock %}
diff --git a/plinth/modules/email_server/tests/__init__.py b/plinth/modules/email/tests/__init__.py
similarity index 100%
rename from plinth/modules/email_server/tests/__init__.py
rename to plinth/modules/email/tests/__init__.py
diff --git a/plinth/modules/email/urls.py b/plinth/modules/email/urls.py
new file mode 100644
index 000000000..d177e136a
--- /dev/null
+++ b/plinth/modules/email/urls.py
@@ -0,0 +1,14 @@
+# SPDX-License-Identifier: AGPL-3.0-or-later
+from django.urls import path
+from stronghold.decorators import public
+
+from plinth.utils import non_admin_view
+
+from . import views
+
+urlpatterns = [
+ path('apps/email/', views.EmailAppView.as_view(), name='index'),
+ path('apps/email/aliases/', non_admin_view(views.AliasView.as_view()),
+ name='aliases'),
+ path('apps/email/config.xml', public(views.XmlView.as_view())),
+]
diff --git a/plinth/modules/email_server/views.py b/plinth/modules/email/views.py
similarity index 94%
rename from plinth/modules/email_server/views.py
rename to plinth/modules/email/views.py
index 6a34d89a5..8964f13ee 100644
--- a/plinth/modules/email_server/views.py
+++ b/plinth/modules/email/views.py
@@ -15,11 +15,11 @@ from . import aliases as aliases_module
from . import audit, forms
-class EmailServerView(AppView):
- """Server configuration page"""
- app_id = 'email_server'
+class EmailAppView(AppView):
+ """Server configuration page."""
+ app_id = 'email'
form_class = forms.DomainForm
- template_name = 'email_server.html'
+ template_name = 'email.html'
def get_initial(self):
"""Return the initial values to populate in the form."""
@@ -52,9 +52,9 @@ class AliasView(FormView):
posted is detected using hidden form values and the appropriate form is
initialized for the FormView base class to work with.
"""
- template_name = 'email_alias.html'
+ template_name = 'email-aliases.html'
form_classes = (forms.AliasCreateForm, forms.AliasListForm)
- success_url = reverse_lazy('email_server:aliases')
+ success_url = reverse_lazy('email:aliases')
def __init__(self, *args, **kwargs):
"""Initialize the view."""
@@ -125,7 +125,7 @@ class AliasView(FormView):
class XmlView(TemplateView):
- template_name = 'email_autoconfig.xml'
+ template_name = 'email-autoconfig.xml'
def render_to_response(self, *args, **kwargs):
kwargs['content_type'] = 'text/xml; charset=utf-8'
diff --git a/plinth/modules/email_server/data/etc/plinth/modules-enabled/email_server b/plinth/modules/email_server/data/etc/plinth/modules-enabled/email_server
deleted file mode 100644
index fb87084c0..000000000
--- a/plinth/modules/email_server/data/etc/plinth/modules-enabled/email_server
+++ /dev/null
@@ -1 +0,0 @@
-#plinth.modules.email_server
diff --git a/plinth/modules/email_server/urls.py b/plinth/modules/email_server/urls.py
deleted file mode 100644
index cd56f03c8..000000000
--- a/plinth/modules/email_server/urls.py
+++ /dev/null
@@ -1,14 +0,0 @@
-# SPDX-License-Identifier: AGPL-3.0-or-later
-from django.urls import path
-from stronghold.decorators import public
-
-from plinth.utils import non_admin_view
-
-from . import views
-
-urlpatterns = [
- path('apps/email_server/', views.EmailServerView.as_view(), name='index'),
- path('apps/email_server/my_aliases',
- non_admin_view(views.AliasView.as_view()), name='aliases'),
- path('apps/email_server/config.xml', public(views.XmlView.as_view())),
-]