12 Commits

Author SHA1 Message Date
d61a4ddcef fix: Dovecot in Debian Trixie => 2.4 has add / deprecated configurations
All checks were successful
Molecule Tests / molecule-tests (pull_request) Successful in 7m18s
2026-03-11 12:40:37 -03:00
fc1900838b docs: update README to reflect internal mail server scope
Refactor the documentation to accurately describe the role as a complete internal mail server stack including Postfix and Dovecot.

Changes include:
- Expanded the description to explicitly list components and internal use cases.
- Added a section clarifying excluded features (antispam/antivirus).
- Reorganized role variables into General and Postfix configuration tables.
- Cleaned up Markdown formatting and removed excessive bold styling.
2026-02-11 18:01:51 -03:00
b4930c3c7d feat(dovecot): add support for configuring imap_capability
This introduces the `dovecot_imap_capability` variable to allow customization of advertised IMAP capabilities.

- Add `dovecot_imap_capability` to `defaults/main.yml` (defaulting to empty).
- Update `templates/dovecot.conf.j2` to conditionally include the `protocol imap` block if the capability string is provided.
- This enables operators to add or remove specific IMAP extensions (e.g., disabling `LITERAL+` or `NOTIFY`) for client compatibility.
2026-02-11 16:36:01 -03:00
f76e0a31ae feat(postfix): implement virtual mailbox configuration for Dovecot LMTP
Updates the Postfix configuration to correctly handle virtual domains when Dovecot LMTP is enabled, moving away from local system delivery settings.

- Removes `postfix_mail_domain` from `postfix_mydestination` to prevent conflicts with virtual domain handling.
- Updates `main.cf` to set `virtual_transport`, `virtual_mailbox_domains`, and `virtual_mailbox_maps` instead of `mailbox_transport`.
- Adds a new template `virtual_mailbox_maps.j2` to authorize specific users defined in `dovecot_users`.
- Adds tasks to generate the virtual mailbox map file and run `postmap` upon changes.
2026-02-11 14:49:22 -03:00
c9892b9e51 feat: configure standard special-use mailboxes in dovecot
Update templates/10-mail.conf.j2 to explicitly define standard mailboxes (Drafts, Junk, Trash, Sent) within the inbox namespace.

This change ensures that:
- These folders are automatically subscribed (`auto = subscribe`).
- They are correctly flagged with `special_use` attributes, improving compatibility with IMAP clients.
- "Sent Messages" is also recognized as a Sent folder for broader client support.
2026-02-10 19:06:41 -03:00
a24007383d fix(dovecot): use %n instead of %u for username and home path
Update the Dovecot authentication template to use `%n` (user part only)
instead of `%u` (full username) in both the `passdb` username format and
the `userdb` home directory path.

This ensures that user lookups and home directory generation rely specifically
on the username portion, excluding the domain part.
2026-02-10 18:41:44 -03:00
e350a39a29 refactor(dovecot): replace template hashing with openssl command
- Add `openssl` to the list of installed packages to ensure CLI availability.
- Introduce a new task to generate user password hashes using `openssl passwd -6` on the target host instead of relying on the Jinja2 `password_hash` filter.
- Update `dovecot-users.j2` template to utilize the registered output from the new OpenSSL task.
- This ensures consistent SHA512-CRYPT hash generation independent of the controller's Python environment or hashing libraries.
2026-02-10 18:10:01 -03:00
dfd5d89905 feat: add support for local dovecot users via passwd-file
This introduces functionality to manage local Dovecot users utilizing a
static `vmail` system user and a flat password file.

Key changes:
- Added `dovecot_users` configuration list to defaults.
- Implemented creation of `vmail` user and group (uid/gid 5000).
- Added logic to generate a random security token using `pwgen` to prefix
  user passwords.
- Created `auth-dovecot-users.conf.ext` and `dovecot-users.j2` templates
  to handle `passwd-file` authentication.
- Updated `10-auth.conf` to include the new local users configuration.
- Updated README with usage instructions and token details.
2026-02-10 17:51:23 -03:00
e209749f74 fix(dovecot): update auth-userdb listener permissions for postfix
Update the `unix_listener auth-userdb` configuration in `templates/10-master.conf.j2`. This change switches the socket ownership from `vmail` to the `postfix` user and explicitly sets the group to `postfix`.

This ensures that the Postfix service has the necessary permissions to access the Dovecot authentication socket for user lookups.
2026-02-10 17:32:47 -03:00
87ce53d1d3 feat: add support for Dovecot IMAP/POP3 configuration
Introduces functionality to install and configure Dovecot alongside Postfix to provide IMAP/POP3 services.

Changes include:
- Added tasks to install Dovecot packages (core, imapd, pop3d, lmtpd).
- Added templates for main configuration and conf.d files (auth, master, ssl, mail).
- Defined default variables for protocols, SSL settings, and Maildir location.
- Enabled Postfix SASL and LMTP integration options.
- Added a handler to restart the Dovecot service.
- Updated README.md with the new configuration variables and usage instructions.
2026-02-10 17:24:59 -03:00
98315f8738 #1 - Define postfix_mynetworks as variable to adjust with local nets 2025-07-29 18:53:19 -03:00
347849efa0 #1 - Implement new ansible role for mailserver. Just covering Postfix for now. 2025-07-28 21:08:28 -03:00