<h2>Domains</h2> <h3>Add</h3> <pre><code class="language-sql">INSERT INTO `mailserver`.`domains` SET `name` = 'example.org';</code></pre> <h3>Update</h3> <pre><code class="language-sql">UPDATE `mailserver`.`domains` SET `name` = 'example.com' WHERE `name` = 'example.org';</code></pre> <blockquote> <p>:warning: All users addresses will be updated as well. Please check the <code>aliases</code> table manually.</p> </blockquote> <h3>Remove</h3> <pre><code class="language-sql">DELETE FROM `mailserver`.`domains` WHERE `name` = 'example.org';</code></pre> <blockquote> <p>:warning: All users and aliases linked to that domain will also be deleted!</p> </blockquote> <h3>List</h3> <pre><code class="language-sql">SELECT * FROM `mailserver`.`domains`;</code></pre> <h2>Users</h2> <h3>Add</h3> <ol> <li>Create a password hash for user <pre><code class="language-shell">doveadm pw -s SHA512-CRYPT</code></pre></li> <li>Add user to database <pre><code class="language-sql">INSERT INTO `mailserver`.`users` SET `domain` = 'example.org', `username` = 'john.doe', `password` = '<generated hash>';</code></pre></li> </ol> <h3>Update password</h3> <pre><code class="language-sql">UPDATE `mailserver`.`users` SET `password` = '<generated hash>' WHERE `domain` = 'example.org' AND `username` = 'john.doe';</code></pre> <h3>Remove</h3> <pre><code class="language-sql">DELETE FROM `mailserver`.`users` WHERE `domain` = 'example.org' AND `username` = 'john.doe';</code></pre> <h3>List</h3> <pre><code class="language-sql">SELECT * FROM `mailserver`.`users`;</code></pre> <h2>Aliases</h2> <h3>Add</h3> <pre><code class="language-sql">INSERT INTO `mailserver`.`aliases` SET `domain` = 'example.org', `source` = 'jane.doe@example.org', `destination` = 'john.doe@example.org';</code></pre> <blockquote> <p>:information_source: In order to add a <a href="https://en.wikipedia.org/wiki/Catch-all">catch all</a> alias:</p> <pre><code class="language-sql">INSERT INTO `mailserver`.`aliases` SET `domain` = 'example.org', `source` = '@example.org', `destination` = 'john.doe@example.org';</code></pre> </blockquote> <h3>Update</h3> <pre><code class="language-sql">UPDATE `mailserver`.`aliases` SET `target` = 'john.doe@example.org' WHERE `domain` = 'example.org' AND `source` = 'jane.doe@example.org';</code></pre> <h3>Remove</h3> <pre><code class="language-sql">DELETE FROM `mailserver`.`aliases` WHERE `domain` = 'example.org' AND `source` = 'jane.doe@example.org';</code></pre> <h3>List</h3> <pre><code class="language-sql">SELECT * FROM `mailserver`.`aliases`;</code></pre> <!-- REFERENCES -->