Cannot generate DKIM keys for long domain names
Author: ligixCreated Mar 8, 2023Updated Jun 28, 2026
Labelspriority/p2type/bug
Environment & Version
Environment
- docker-compose
- kubernetes
- docker swarm
Version
- Version:
1.9(just updated withdocker-compose pull)
Description
Mailu fails to generate DKIM keys for domains that are too long and, instead, fails with a 500 internal server error
Replication Steps
- Go to the admin panel > mail domains
- Add
llllllllllllllllllllllllllllllllllllllllllllllllllllllll.lllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllll.lllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllll.lllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllll.com - Try to generate new dkim keys
Observed behaviour
It fails to generate them
Expected behaviour
It should either generate them or tell the user that the domain name is too long (and maybe acknowledge it when the domain is added too)
Logs
admin_1 | Traceback (most recent call last):
admin_1 | File "/usr/lib/python3.9/site-packages/flask/app.py", line 2073, in wsgi_app
admin_1 | response = self.full_dispatch_request()
admin_1 | File "/usr/lib/python3.9/site-packages/flask/app.py", line 1518, in full_dispatch_request
admin_1 | rv = self.handle_user_exception(e)
admin_1 | File "/usr/lib/python3.9/site-packages/flask/app.py", line 1516, in full_dispatch_request
admin_1 | rv = self.dispatch_request()
admin_1 | File "/usr/lib/python3.9/site-packages/flask/app.py", line 1502, in dispatch_request
admin_1 | return self.ensure_sync(self.view_functions[rule.endpoint])(**req.view_args)
admin_1 | File "/usr/lib/python3.9/site-packages/flask_login/utils.py", line 272, in decorated_view
admin_1 | return func(*args, **kwargs)
admin_1 | File "/app/mailu/ui/access.py", line 28, in wrapper
admin_1 | return callback(function, args, kwargs, dargs, dkwargs)
admin_1 | File "/app/mailu/ui/access.py", line 19, in callback
admin_1 | return function(*args, **kwargs)
admin_1 | File "/app/mailu/ui/access.py", line 105, in wrapper
admin_1 | return function(*args, **kwargs)
admin_1 | File "/app/mailu/ui/views/domains.py", line 77, in domain_genkeys
admin_1 | models.db.session.commit()
admin_1 | File "<string>", line 2, in commit
admin_1 | File "/usr/lib/python3.9/site-packages/sqlalchemy/orm/session.py", line 1428, in commit
admin_1 | self._transaction.commit(_to_root=self.future)
admin_1 | File "/usr/lib/python3.9/site-packages/sqlalchemy/orm/session.py", line 839, in commit
admin_1 | self.session.dispatch.after_commit(self.session)
admin_1 | File "/usr/lib/python3.9/site-packages/sqlalchemy/event/attr.py", line 256, in __call__
admin_1 | fn(*args, **kw)
admin_1 | File "/app/mailu/models.py", line 176, in _save_dkim_keys
admin_1 | obj.save_dkim_key()
admin_1 | File "/app/mailu/models.py", line 207, in save_dkim_key
admin_1 | with open(file_path, 'wb') as handle:
admin_1 | OSError: [Errno 36] Filename too long: '/dkim/llllllllllllllllllllllllllllllllllllllllllllllllllllllll.lllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllll.lllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllll.lllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllll.com.dkim.key'Source: Mailu/Mailu