diff --git a/src/content/docs/ispmail-trixie/190-imap.mdx b/src/content/docs/ispmail-trixie/190-imap.mdx index a541b09..8fea0c6 100644 --- a/src/content/docs/ispmail-trixie/190-imap.mdx +++ b/src/content/docs/ispmail-trixie/190-imap.mdx @@ -1,7 +1,7 @@ --- title: IMAP lastUpdated: 2025-09-14 -slug: ispmail-bookworm/imap +slug: ispmail-trxie/imap sidebar: order: 190 --- @@ -14,6 +14,8 @@ Email clients such as Thunderbird, Roundcube, mutt or the mail apps on your smar messages. The good news is that you don’t need to configure anything new on the server — it’s already set up. In fact, even Roundcube (your webmail application) communicates with the server via IMAP to access emails. +## mutt using IMAP + You may not have heard of _mutt_ before. It's like the VIM editor but for mails. Very powerful but it only has a text-based user interface. For testing IMAP on mail servers it's still a good way because you do not have to set up a complete account as in Thunderbird. @@ -35,6 +37,8 @@ you used the correct server name. If the authentication has succeeded, you will These are test emails that you sent earlier using `swaks`. You open an email by pressing `Enter` and get back using `q`. Mainly we wanted to check that IMAP access works. +## mutt using the file system + Mutt can not only speak IMAP – it can access an inbox (or maildir) on your disk directly as well: ```sh title="Run this on your server" @@ -42,3 +46,9 @@ mutt -f /var/vmail/example.org/john/Maildir/ ``` That way you will not be forced to authenticate as you are working with the file system. + +## Thunderbird + +A typical account setup in Thunderbird looks like: + +![Thunderbird account setup](images/imap-thunderbird-account-setup.png) diff --git a/src/content/docs/ispmail-trixie/200-managing-users-aliases-domains.mdx b/src/content/docs/ispmail-trixie/200-managing-users-aliases-domains.mdx new file mode 100644 index 0000000..0f08acf --- /dev/null +++ b/src/content/docs/ispmail-trixie/200-managing-users-aliases-domains.mdx @@ -0,0 +1,106 @@ +--- +title: Managing users, aliases and domains +lastUpdated: 2025-09-17 +slug: ispmail-trixie/managing-users-aliases-and-domains +sidebar: + order: 200 +--- + +import { Tabs, TabItem } from "@astrojs/starlight/components"; + +Maybe you already know what you have to do to create mail domains and mail users. After all I tried to explain the +database schema in the section that dealt with preparing the database. But if that wasn’t clear enough let me explain +what you need to do to manage your mail accounts. + +## Using SQL queries + +The following sections explain the changes and SQL queries you can use for common management tasks: + +### Create a new mail domain + +Insert a new row into the virtual_domains table and set the “name” to the name of the new domain. (Do not forget to set +up SPF and DKIM.) + +```sql +INSERT INTO virtual_domains (name) VALUES ("example.org"); +``` + +### Delete a mail domain + +Delete the row from the virtual_domains table that has the right “name”. All aliases and users will automatically be +deleted, too. However the mailboxes will stay on disk at /var/vmail/… and you need to delete them manually. + +```sql +DELETE FROM virtual_domains where name='example.org'; +``` + +### Create a mail user + +Find out the “id” of the right domain from the virtual_domains table. The insert a new row into the virtual_users table. +Set the domain_id to the value you just looked up in the virtual_domains table. Set the “email” field to the complete +email address of the new user. Create a new password in a shell using the “dovecot pw -s BLF-CRYPT” command and insert +the result into the “password” field. + +```sql +INSERT INTO virtual_users (domain_id, email, password) VALUES (SELECT id FROM virtual_domains WHERE name='example.org'), 'john@example.org','{BLF-CRYPT}$2y$05$.We…'; +``` + +### Change the password of a user + +Find the row in the virtual_users table by looking for the right “email” field. Create a new password in a shell using +the “dovecot pw -s BLF-CRYPT” command and insert the result into the “password” field. + +```sql +UPDATE virtual_users SET password='{BLF-CRYPT}$2y$05$.We…' WHERE email='email@address'; +``` + +### Delete a mail user + +Find the row in the virtual_users table by looking for the right “email” field and delete it. The mailbox will stay on +disk at /var/vmail/… and you need to delete it manually + +```sql +DELETE FROM virtual_users WHERE email='john@example.org'; +``` + +### Create a mail forwarding + +You can forward emails from one (source) email to other addresses (destinations) – even outside of your mail +server. Find out the “id” of the right domain (the part after the “@” of the source email address) from the +virtual_domains table. Create a new row in the virtual_aliases table for each destination (if you have multiple +destination addresses). Set the “source” field to the complete source email address. And set the “destination” field to +the respective complete destination email address. + +```sql +INSERT INTO virtual_aliases (domain_id, source, destination) VALUES ( (SELECT id FROM virtual_domains WHERE name='example.org'), 'melissa@example.org', 'juila@example.net'); +``` + +### Delete a mail forwarding + +Find all rows in the virtual_aliases table by looking for the right “source” email address. Remove all rows that you +lead to “destination” addresses you don’t want to forward email to. + +```sql +DELETE FROM virtual_aliases WHERE source='melissa@example.org'; +``` + +## Web interfaces + +If you don’t like using SQL queries to manage your mail server you may like to install a web-based management software. +Several developers contributed web interfaces for earlier versions of this guide and they will probably still work +because the database schema has not changed. Your experience with these projects, or links to further projects, is very +welcome in the comments. + +### ISPmail Admin + +Homepage: [http://ima.jungclaussen.com/](http://ima.jungclaussen.com/) +Demo: [http://ima.jungclaussen.com/demo/](http://ima.jungclaussen.com/demo/) + +![ISPmail Admin screenshot](images/managing-ima.jpg) + +### ispmail-userctl + +Christian G. has created a text-based program to help you manage your mail accounts. You may like it if you just want a +little help adding accounts and setting passwords but not provide a full blown web interface. + +You can find his [Python script at Github](https://github.com/cgzones/ispmail-userctl). diff --git a/src/content/docs/ispmail-trixie/images/imap-thunderbird-account-setup.png b/src/content/docs/ispmail-trixie/images/imap-thunderbird-account-setup.png new file mode 100644 index 0000000..c5e9d2e Binary files /dev/null and b/src/content/docs/ispmail-trixie/images/imap-thunderbird-account-setup.png differ diff --git a/src/content/docs/ispmail-trixie/images/managing-ima.jpg b/src/content/docs/ispmail-trixie/images/managing-ima.jpg new file mode 100644 index 0000000..31c3c77 Binary files /dev/null and b/src/content/docs/ispmail-trixie/images/managing-ima.jpg differ