diff --git a/public/robots.txt b/public/robots.txt index d8357fd..ce950e7 100644 --- a/public/robots.txt +++ b/public/robots.txt @@ -1,4 +1,93 @@ -User-agent: * -Allow: / +User-agent: AddSearchBot +User-agent: AI2Bot +User-agent: Ai2Bot-Dolma +User-agent: aiHitBot +User-agent: Amazonbot +User-agent: Andibot +User-agent: anthropic-ai +User-agent: Applebot +User-agent: Applebot-Extended +User-agent: Awario +User-agent: bedrockbot +User-agent: bigsur.ai +User-agent: Brightbot 1.0 +User-agent: Bytespider +User-agent: CCBot +User-agent: ChatGPT Agent +User-agent: ChatGPT-User +User-agent: Claude-SearchBot +User-agent: Claude-User +User-agent: Claude-Web +User-agent: ClaudeBot +User-agent: CloudVertexBot +User-agent: cohere-ai +User-agent: cohere-training-data-crawler +User-agent: Cotoyogi +User-agent: Crawlspace +User-agent: Datenbank Crawler +User-agent: Devin +User-agent: Diffbot +User-agent: DuckAssistBot +User-agent: Echobot Bot +User-agent: EchoboxBot +User-agent: FacebookBot +User-agent: facebookexternalhit +User-agent: Factset_spyderbot +User-agent: FirecrawlAgent +User-agent: FriendlyCrawler +User-agent: Gemini-Deep-Research +User-agent: GPTBot +User-agent: iaskspider/2.0 +User-agent: ICC-Crawler +User-agent: ImagesiftBot +User-agent: img2dataset +User-agent: ISSCyberRiskCrawler +User-agent: Kangaroo Bot +User-agent: LinerBot +User-agent: meta-externalagent +User-agent: Meta-ExternalAgent +User-agent: meta-externalfetcher +User-agent: Meta-ExternalFetcher +User-agent: meta-webindexer +User-agent: MistralAI-User +User-agent: MistralAI-User/1.0 +User-agent: MyCentralAIScraperBot +User-agent: netEstate Imprint Crawler +User-agent: NovaAct +User-agent: OAI-SearchBot +User-agent: omgili +User-agent: omgilibot +User-agent: OpenAI +User-agent: Operator +User-agent: PanguBot +User-agent: Panscient +User-agent: panscient.com +User-agent: Perplexity-User +User-agent: PerplexityBot +User-agent: PetalBot +User-agent: PhindBot +User-agent: Poseidon Research Crawler +User-agent: QualifiedBot +User-agent: QuillBot +User-agent: quillbot.com +User-agent: SBIntuitionsBot +User-agent: Scrapy +User-agent: SemrushBot-OCOB +User-agent: SemrushBot-SWA +User-agent: ShapBot +User-agent: Sidetrade indexer bot +User-agent: TerraCotta +User-agent: Thinkbot +User-agent: TikTokSpider +User-agent: Timpibot +User-agent: VelenPublicWebCrawler +User-agent: WARDBot +User-agent: Webzio-Extended +User-agent: wpbot +User-agent: YaK +User-agent: YandexAdditional +User-agent: YandexAdditionalBot +User-agent: YouBot +Disallow: / Sitemap: https://workaround.org/sitemap-index.xml diff --git a/src/content/docs/ispmail-trixie/190-imap.mdx b/src/content/docs/ispmail-trixie/190-imap.mdx new file mode 100644 index 0000000..8fea0c6 --- /dev/null +++ b/src/content/docs/ispmail-trixie/190-imap.mdx @@ -0,0 +1,54 @@ +--- +title: IMAP +lastUpdated: 2025-09-14 +slug: ispmail-trxie/imap +sidebar: + order: 190 +--- + +Your mail server relies on two primary protocols. We’ve already covered **SMTP** in detail, which handles the transfer +of emails between servers. The other important protocol is +[**IMAP**](https://en.wikipedia.org/wiki/Internet_Message_Access_Protocol) – the _Internet Message Access Protocol_. + +Email clients such as Thunderbird, Roundcube, mutt or the mail apps on your smartphone use IMAP to retrieve and manage +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. + +Give it a try – and as usual replace `webmail.example.org` by your mail server's host name: + +```sh title="Run this on your server" +mutt -f imaps://john@example.org@webmail.example.org +``` + +The connection URL may look a little confusing because of the two “@” characters. Usually _mutt_ expects the format +`imaps://user@server`. The _user_ is `john@example.org` on your server so you get this syntax. + +You should get prompted for the password which we set to `summersun`. If you get any certificate warnings then check if +you used the correct server name. If the authentication has succeeded, you will see John's inbox: + +![Mutt showing an email in the inbox](images/mutt-inbox.png) + +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" +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 diff --git a/src/content/docs/ispmail-trixie/images/mutt-inbox.png b/src/content/docs/ispmail-trixie/images/mutt-inbox.png new file mode 100644 index 0000000..8be71f5 Binary files /dev/null and b/src/content/docs/ispmail-trixie/images/mutt-inbox.png differ