| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541 |
- <!DOCTYPE html>
- <!--[if IE 8]><html class="no-js lt-ie9" lang="en" > <![endif]-->
- <!--[if gt IE 8]><!--> <html class="no-js" lang="en" > <!--<![endif]-->
- <head>
- <meta charset="utf-8">
- <meta http-equiv="X-UA-Compatible" content="IE=edge">
- <meta name="viewport" content="width=device-width, initial-scale=1.0">
-
-
- <link rel="shortcut icon" href="../img/favicon.ico">
- <title>Usage & Examples - mailcow: dockerized</title>
- <link href='https://fonts.googleapis.com/css?family=Lato:400,700|Roboto+Slab:400,700|Inconsolata:400,700' rel='stylesheet' type='text/css'>
- <link rel="stylesheet" href="../css/theme.css" type="text/css" />
- <link rel="stylesheet" href="../css/theme_extra.css" type="text/css" />
- <link rel="stylesheet" href="../css/highlight.css">
-
- <script>
- // Current page data
- var mkdocs_page_name = "Usage & Examples";
- var mkdocs_page_input_path = "u_and_e.md";
- var mkdocs_page_url = "/u_and_e/";
- </script>
-
- <script src="../js/jquery-2.1.1.min.js"></script>
- <script src="../js/modernizr-2.8.3.min.js"></script>
- <script type="text/javascript" src="../js/highlight.pack.js"></script>
-
- </head>
- <body class="wy-body-for-nav" role="document">
- <div class="wy-grid-for-nav">
-
- <nav data-toggle="wy-nav-shift" class="wy-nav-side stickynav">
- <div class="wy-side-nav-search">
- <a href=".." class="icon icon-home"> mailcow: dockerized</a>
- <div role="search">
- <form id ="rtd-search-form" class="wy-form" action="../search.html" method="get">
- <input type="text" name="q" placeholder="Search docs" />
- </form>
- </div>
- </div>
- <div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation">
- <ul class="current">
-
- <li>
- <li class="toctree-l1 ">
- <a class="" href="..">Overview</a>
-
- </li>
- <li>
-
- <li>
- <li class="toctree-l1 ">
- <a class="" href="../install/">Installation</a>
-
- </li>
- <li>
-
- <li>
- <li class="toctree-l1 ">
- <a class="" href="../first_steps/">First Steps</a>
-
- </li>
- <li>
-
- <li>
- <li class="toctree-l1 current">
- <a class="current" href="./">Usage & Examples</a>
-
- <ul>
-
- <li class="toctree-l3"><a href="#anonymize-headers-for-smtp-relayed">Anonymize headers for smtp relayed</a></li>
-
-
- <li class="toctree-l3"><a href="#backup-and-restore-maildir-simple-tar-file">Backup and restore maildir (simple tar file)</a></li>
-
- <li><a class="toctree-l4" href="#backup">Backup</a></li>
-
- <li><a class="toctree-l4" href="#restore">Restore</a></li>
-
-
- <li class="toctree-l3"><a href="#black-and-whitelist">Black- and Whitelist</a></li>
-
-
- <li class="toctree-l3"><a href="#change-default-theme">Change default theme</a></li>
-
-
- <li class="toctree-l3"><a href="#customize-dockerfiles">Customize Dockerfiles</a></li>
-
-
- <li class="toctree-l3"><a href="#do-not-check-sender-addresses-for-any-domain">Do not check sender addresses for any domain</a></li>
-
-
- <li class="toctree-l3"><a href="#install-roundcube">Install Roundcube</a></li>
-
- <li><a class="toctree-l4" href="#enable-password-changing">Enable password changing</a></li>
-
-
- <li class="toctree-l3"><a href="#learn-spam-and-ham">Learn spam and ham</a></li>
-
-
- <li class="toctree-l3"><a href="#mysql">MySQL</a></li>
-
- <li><a class="toctree-l4" href="#connect-to-the-mysql-database">Connect to the MySQL database:</a></li>
-
- <li><a class="toctree-l4" href="#backup-the-database">Backup the database:</a></li>
-
- <li><a class="toctree-l4" href="#restore-the-database">Restore the database:</a></li>
-
-
- <li class="toctree-l3"><a href="#read-logs">Read logs</a></li>
-
-
- <li class="toctree-l3"><a href="#redirect-port-80-to-443">Redirect port 80 to 443</a></li>
-
-
- <li class="toctree-l3"><a href="#redis">Redis</a></li>
-
- <li><a class="toctree-l4" href="#connect-to-redis-key-store">Connect to redis key store:</a></li>
-
-
- <li class="toctree-l3"><a href="#remove-persistent-data">Remove persistent data</a></li>
-
-
- <li class="toctree-l3"><a href="#rspamd">Rspamd</a></li>
-
- <li><a class="toctree-l4" href="#rspamd-cli-tools">Rspamd CLI tools</a></li>
-
-
- <li class="toctree-l3"><a href="#adjust-service-configurations">Adjust service configurations</a></li>
-
-
- <li class="toctree-l3"><a href="#tagging">Tagging</a></li>
-
-
- <li class="toctree-l3"><a href="#two-factor-authentication">Two-factor authentication</a></li>
-
- <li><a class="toctree-l4" href="#yubi-otp">Yubi OTP</a></li>
-
- <li><a class="toctree-l4" href="#u2f">U2F</a></li>
-
-
- </ul>
-
- </li>
- <li>
-
- </ul>
- </div>
-
- </nav>
- <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap">
-
- <nav class="wy-nav-top" role="navigation" aria-label="top navigation">
- <i data-toggle="wy-nav-top" class="fa fa-bars"></i>
- <a href="..">mailcow: dockerized</a>
- </nav>
-
- <div class="wy-nav-content">
- <div class="rst-content">
- <div role="navigation" aria-label="breadcrumbs navigation">
- <ul class="wy-breadcrumbs">
- <li><a href="..">Docs</a> »</li>
-
-
-
- <li>Usage & Examples</li>
- <li class="wy-breadcrumbs-aside">
-
- <a href="https://github.com/andryyy/mailcow-dockerized/edit/master/docs/u_and_e.md"
- class="icon icon-github"> Edit on GitHub</a>
-
- </li>
- </ul>
- <hr/>
- </div>
- <div role="main">
- <div class="section">
-
- <h1 id="anonymize-headers-for-smtp-relayed">Anonymize headers for smtp relayed</h1>
- <p>Save as <code>data/conf/postfix/mailcow_anonymize_headers.pcre</code>:</p>
- <pre><code>/^\s*Received:[^\)]+\)\s+\(Authenticated sender:(.+)/
- REPLACE Received: from localhost (localhost [127.0.0.1]) (Authenticated sender:$1
- /^\s*User-Agent/ IGNORE
- /^\s*X-Enigmail/ IGNORE
- /^\s*X-Mailer/ IGNORE
- /^\s*X-Originating-IP/ IGNORE
- /^\s*X-Forward/ IGNORE
- /^\s*Mime-Version:/ IGNORE
- </code></pre>
- <p>Add this to <code>data/conf/postfix/main.cf</code>:</p>
- <pre><code>smtp_header_checks = pcre:/opt/postfix/conf/mailcow_anonymize_headers.pcre
- </code></pre>
- <h1 id="backup-and-restore-maildir-simple-tar-file">Backup and restore maildir (simple tar file)</h1>
- <h3 id="backup"><strong>Backup</strong></h3>
- <p>This line backups the vmail directory to a file backup_vmail.tar.gz in the mailcow root directory:</p>
- <pre><code>cd /path/to/mailcow-dockerized
- source mailcow.conf
- DATE=$(date +"%Y%m%d_%H%M%S")
- docker run --rm -it -v $(docker inspect --format '{{ range .Mounts }}{{ if eq .Destination "/var/vmail" }}{{ .Name }}{{ end }}{{ end }}' $(docker-compose ps -q dovecot-mailcow)):/vmail -v ${PWD}:/backup debian:jessie tar cvfz /backup/backup_vmail.tar.gz /vmail
- </code></pre>
- <p>You can change the path by adjusting ${PWD} (which equals to the current directory) to any path you have write-access to.
- Set the filename <code>backup_vmail.tar.gz</code> to any custom name, but leave the path as it is. Example: <code>[...] tar cvfz /backup/my_own_filename_.tar.gz</code></p>
- <h3 id="restore"><strong>Restore</strong></h3>
- <pre><code>cd /path/to/mailcow-dockerized
- source mailcow.conf
- DATE=$(date +"%Y%m%d_%H%M%S")
- docker run --rm -it -v $(docker inspect --format '{{ range .Mounts }}{{ if eq .Destination "/var/vmail" }}{{ .Name }}{{ end }}{{ end }}' $(docker-compose ps -q dovecot-mailcow)):/vmail -v ${PWD}:/backup debian:jessie tar xvfz /backup/backup_vmail.tar.gz
- </code></pre>
- <p>For the tab-tab... :-)</p>
- <pre><code>curl -L https://raw.githubusercontent.com/docker/compose/$(docker-compose version --short)/contrib/completion/bash/docker-compose -o /etc/bash_completion.d/docker-compose
- </code></pre>
- <h1 id="black-and-whitelist">Black- and Whitelist</h1>
- <p>Edit a domain as (domain) administrator to add an item to the filter table.</p>
- <p>Beware that a mailbox user can login to mailcow and override a domain policy filter item. </p>
- <h1 id="change-default-theme">Change default theme</h1>
- <p>mailcow uses <a href="http://getbootstrap.com/">Bootstrap</a>, a HTML, CSS, and JS framework.</p>
- <p>Open or create the file <code>data/web/inc/vars.local.inc.php</code> and change <code>DEFAULT_THEME</code> to either cerulean, cosmo, custom, cyborg, darkly, flatly, journal, paper, readable, sandstone, simplex, slate, spacelab, superhero, united or yeti (see https://bootswatch.com/):</p>
- <pre><code><?php
- $DEFAULT_THEME = "paper";
- </code></pre>
- <h1 id="customize-dockerfiles">Customize Dockerfiles</h1>
- <p>Make your changes in <code>data/Dockerfiles/$service</code> and build the image locally:</p>
- <pre><code>docker build data/Dockerfiles/service -t andryyy/mailcow-dockerized:$service
- </code></pre>
- <p>Now auto-recreate modified containers:</p>
- <pre><code>docker-compose up -d
- </code></pre>
- <h1 id="do-not-check-sender-addresses-for-any-domain">Do not check sender addresses for any domain</h1>
- <p>This option is not best-practice and should only be implemented when there is no other option available to archive whatever you are trying to do.</p>
- <p>Simply create a file <code>data/conf/postfix/check_sender_access</code> and enter the following content:</p>
- <pre><code>user-to-allow-everything@example.com OK
- </code></pre>
- <p>Open <code>data/conf/postfix/main.cf</code> and find <code>smtpd_sender_restrictions</code>. Prepend <code>check_sasl_access hash:/opt/postfix/conf/check_sender_access</code> like this:</p>
- <pre><code>smtpd_sender_restrictions = check_sasl_access hash:/opt/postfix/conf/check_sender_access reject_authenticated_sender [...]
- </code></pre>
- <p>Run postmap on check_sasl_access:</p>
- <pre><code>docker-compose exec postfix-mailcow postmap /opt/postfix/conf/check_sasl_access
- </code></pre>
- <p>Restart the Postfix container.</p>
- <h1 id="install-roundcube">Install Roundcube</h1>
- <p>Download Roundcube 1.3.x (beta at the time of Feb 2017) to the web htdocs directory and extract it (here <code>rc/</code>):</p>
- <pre><code>cd data/web/rc
- wget -O - https://github.com/roundcube/roundcubemail/releases/download/1.3-beta/roundcubemail-1.3-beta-complete.tar.gz | tar xfvz -
- # Change folder name
- mv roundcubemail-1.3* rc
- # Change permissions
- chown -R root: rc/
- </code></pre>
- <p>Create a file <code>data/web/rc/config/config.inc.php</code> with the following content.</p>
- <p><strong>Change the <code>des_key</code> parameter to a random value.</strong> It is used to temporarily store your IMAP password.</p>
- <pre><code><?php
- error_reporting(0);
- if (!file_exists('/tmp/mime.types')) {
- file_put_contents("/tmp/mime.types", fopen("http://svn.apache.org/repos/asf/httpd/httpd/trunk/docs/conf/mime.types", 'r'));
- }
- $config = array();
- $config['db_dsnw'] = 'mysql://' . getenv('DBUSER') . ':' . getenv('DBPASS') . '@mysql/' . getenv('DBNAME');
- $config['default_host'] = 'tls://dovecot';
- $config['default_port'] = '143';
- $config['smtp_server'] = 'tls://postfix';
- $config['smtp_port'] = 587;
- $config['smtp_user'] = '%u';
- $config['smtp_pass'] = '%p';
- $config['support_url'] = '';
- $config['product_name'] = 'Roundcube Webmail';
- $config['des_key'] = 'rcmail-!24ByteDESkey*Str';
- $config['log_dir'] = '/dev/null';
- $config['temp_dir'] = '/tmp';
- $config['plugins'] = array(
- 'archive',
- );
- $config['skin'] = 'larry';
- $config['mime_types'] = '/tmp/mime.types';
- $config['imap_conn_options'] = array(
- 'ssl' => array('verify_peer' => false, 'verify_peer_name' => false, 'allow_self_signed' => true)
- );
- $config['enable_installer'] = false;
- $config['smtp_conn_options'] = array(
- 'ssl' => array('verify_peer' => false, 'verify_peer_name' => false, 'allow_self_signed' => true)
- );
- </code></pre>
- <p>Point your browser to <code>https://myserver/rc/installer</code> and follow the instructions.
- Initialize the database and leave the installer.
- <strong>Delete the directory <code>data/web/rc/installer</code> after a successful installation!</strong></p>
- <h2 id="enable-password-changing">Enable password changing</h2>
- <p>Open <code>data/web/rc/config.inc.php</code> and enable the password plugin:</p>
- <pre><code>...
- $config['plugins'] = array(
- 'archive',
- 'password',
- );
- ...
- </code></pre>
- <p>Open <code>data/web/rc/plugins/password/password.php</code>, search for <code>case 'ssha':</code> and add above:</p>
- <pre><code> case 'ssha256':
- $salt = rcube_utils::random_bytes(8);
- $crypted = base64_encode( hash('sha256', $password . $salt, TRUE ) . $salt );
- $prefix = '{SSHA256}';
- break;
- </code></pre>
- <p>Open <code>data/web/rc/plugins/password/config.inc.php</code> and change the following parameters (or add them at the bottom of that file):</p>
- <pre><code>$config['password_driver'] = 'sql';
- $config['password_algorithm'] = 'ssha256';
- $config['password_algorithm_prefix'] = '{SSHA256}';
- $config['password_query'] = "UPDATE mailbox SET password = %P WHERE username = %u";
- </code></pre>
- <h1 id="learn-spam-and-ham">Learn spam and ham</h1>
- <p>Rspamd learns mail as spam or ham when you move a message in or out of the junk folder to any mailbox besides trash.
- This is archived by using the Dovecot plugin "antispam" and a simple parser script.</p>
- <p>Rspamd also auto-learns mail when a high or low score is detected (see https://rspamd.com/doc/configuration/statistic.html#autolearning)</p>
- <p>The bayes statistics are written to Redis as keys <code>BAYES_HAM</code> and <code>BAYES_SPAM</code>.</p>
- <p>You can also use Rspamds web ui to learn ham and/or spam.</p>
- <h1 id="mysql">MySQL</h1>
- <h3 id="connect-to-the-mysql-database">Connect to the MySQL database:</h3>
- <pre><code>source mailcow.conf
- docker-compose exec mysql-mailcow mysql -u${DBUSER} -p${DBPASS} ${DBNAME}
- </code></pre>
- <h3 id="backup-the-database">Backup the database:</h3>
- <pre><code>cd /path/to/mailcow-dockerized
- source mailcow.conf
- DATE=$(date +"%Y%m%d_%H%M%S")
- docker-compose exec mysql-mailcow mysqldump --default-character-set=utf8mb4 -u${DBUSER} -p${DBPASS} ${DBNAME} > backup_${DBNAME}_${DATE}.sql
- </code></pre>
- <h3 id="restore-the-database">Restore the database:</h3>
- <pre><code>cd /path/to/mailcow-dockerized
- source mailcow.conf
- docker-compose exec mysql-mailcow mysql -u${DBUSER} -p${DBPASS} ${DBNAME} < backup_file.sql
- </code></pre>
- <h1 id="read-logs">Read logs</h1>
- <p>You can use <code>docker-compose logs $service-name</code> for all containers.</p>
- <p>Run <code>docker-compose logs</code> for all logs at once.</p>
- <p>Follow the log output by running docker-compose with <code>logs -f</code>.</p>
- <h1 id="redirect-port-80-to-443">Redirect port 80 to 443</h1>
- <p>Since February the 28th 2017 mailcow does come with port 80 and 443 enabled.</p>
- <p>Open <code>mailcow.conf</code> and set <code>HTTP_BIND=0.0.0.0</code>.</p>
- <p>Open <code>data/conf/nginx/site.conf</code> and add a new "catch-all" site at the top of that file:</p>
- <pre><code>server {
- listen 80 default_server;
- server_name _;
- return 301 https://$host$request_uri;
- }
- </code></pre>
- <p>Restart the stack, changed containers will be updated:</p>
- <p><code>docker-compose up -d</code></p>
- <h1 id="redis">Redis</h1>
- <h2 id="connect-to-redis-key-store">Connect to redis key store:</h2>
- <pre><code>docker-compose exec redis-mailcow redis-cli
- </code></pre>
- <h1 id="remove-persistent-data">Remove persistent data</h1>
- <ul>
- <li>Remove volume <code>mysql-vol-1</code> to remove all MySQL data.</li>
- <li>Remove volume <code>redis-vol-1</code> to remove all Redis data.</li>
- <li>Remove volume <code>vmail-vol-1</code> to remove all contents of <code>/var/vmail</code> mounted to <code>dovecot-mailcow</code>.</li>
- <li>Remove volume <code>dkim-vol-1</code> to remove all DKIM keys.</li>
- <li>Remove volume <code>rspamd-vol-1</code> to remove all Rspamd data.</li>
- </ul>
- <p>Running <code>docker-compose down -v</code> will <strong>destroy all mailcow: dockerized volumes</strong> and delete any related containers.Reset mailcow admin to <code>admin:moohoo</code>:</p>
- <ol>
- <li>Drop admin table</li>
- </ol>
- <pre><code>source mailcow.conf
- docker-compose exec mysql-mailcow mysql -u${DBUSER} -p${DBPASS} ${DBNAME} -e "DROP TABLE admin;"
- </code></pre>
- <ol>
- <li>Open mailcow UI to auto-init the db</li>
- </ol>
- <h1 id="rspamd">Rspamd</h1>
- <h2 id="rspamd-cli-tools">Rspamd CLI tools</h2>
- <pre><code>docker-compose exec rspamd-mailcow rspamc --help
- docker-compose exec rspamd-mailcow rspamadm --help
- </code></pre>
- <p>See <a href="https://rspamd.com/doc/index.html">Rspamd documentation</a></p>
- <h1 id="adjust-service-configurations">Adjust service configurations</h1>
- <p>The most important configuration files are mounted from the host into the related containers:</p>
- <pre><code>data/conf
- ├── bind9
- │ └── named.conf
- ├── dovecot
- │ ├── dovecot.conf
- │ ├── dovecot-master.passwd
- │ ├── sieve_after
- │ └── sql
- │ ├── dovecot-dict-sql.conf
- │ └── dovecot-mysql.conf
- ├── mysql
- │ └── my.cnf
- ├── nginx
- │ ├── dynmaps.conf
- │ ├── site.conf
- │ └── templates
- │ ├── listen_plain.template
- │ ├── listen_ssl.template
- │ └── server_name.template
- ├── pdns
- │ ├── pdns_custom.lua
- │ └── recursor.conf
- ├── postfix
- │ ├── main.cf
- │ ├── master.cf
- │ ├── postscreen_access.cidr
- │ ├── smtp_dsn_filter
- │ └── sql
- │ ├── mysql_relay_recipient_maps.cf
- │ ├── mysql_tls_enforce_in_policy.cf
- │ ├── mysql_tls_enforce_out_policy.cf
- │ ├── mysql_virtual_alias_domain_catchall_maps.cf
- │ ├── mysql_virtual_alias_domain_maps.cf
- │ ├── mysql_virtual_alias_maps.cf
- │ ├── mysql_virtual_domains_maps.cf
- │ ├── mysql_virtual_mailbox_maps.cf
- │ ├── mysql_virtual_relay_domain_maps.cf
- │ ├── mysql_virtual_sender_acl.cf
- │ └── mysql_virtual_spamalias_maps.cf
- ├── rmilter
- │ └── rmilter.conf
- ├── rspamd
- │ ├── dynmaps
- │ │ ├── authoritative.php
- │ │ ├── settings.php
- │ │ ├── tags.php
- │ │ └── vars.inc.php -> ../../../web/inc/vars.inc.php
- │ ├── local.d
- │ │ ├── dkim.conf
- │ │ ├── metrics.conf
- │ │ ├── options.inc
- │ │ ├── redis.conf
- │ │ ├── rspamd.conf.local
- │ │ └── statistic.conf
- │ ├── lua
- │ │ └── rspamd.local.lua
- │ └── override.d
- │ ├── logging.inc
- │ ├── worker-controller.inc
- │ └── worker-normal.inc
- └── sogo
- ├── sieve.creds
- └── sogo.conf
- </code></pre>
- <p>Just change the according configuration file on the host and restart the related service: <code>docker-compose restart service-mailcow</code></p>
- <h1 id="tagging">Tagging</h1>
- <p>Mailbox users can tag their mail address like in <code>me+facebook@example.org</code> and choose between to setups to handle this tag:</p>
- <ol>
- <li>Move this message to a subfolder "facebook" (will be created lower case if not existing)</li>
- <li>Prepend the tag to the subject: "[facebook] Subject"</li>
- </ol>
- <h1 id="two-factor-authentication">Two-factor authentication</h1>
- <p>So far two methods for TFA are impelemented. Both work with the fantastic <a href="https://www.yubico.com">Yubikey</a>. </p>
- <p>While Yubi OTP needs an active internet connection and an API ID/key, U2F will work with any FIDO U2F USB key out of the box.</p>
- <p>Both methods support mulitple YubiKeys.</p>
- <p>As administrator you are able to temporary disable a domain adminsitrators TFA login until they successfully logged in.</p>
- <p>The key used to login will be displayed in green, while other keys remain grey.</p>
- <h2 id="yubi-otp">Yubi OTP</h2>
- <p>The Yubi API ID and Key will be checked against the Yubico Cloud API. When setting up TFA you will be asked for your personal API account for this key.
- The API ID, API key and the first 12 characters (your YubiKeys ID in modhex) are stored in the MySQL table as secret.</p>
- <h2 id="u2f">U2F</h2>
- <p>Only Google Chrome (+derivates) and Opera support U2F authentication to this day natively.
- For Firefox you will need to install the "U2F Support Add-on" as provided on <a href="https://addons.mozilla.org/en-US/firefox/addon/u2f-support-add-on/">mozilla.org</a>.
- U2F works without an internet connection.# Why does mailcow come with a DNS resolver?</p>
- <p>For DNS blacklist lookups and DNSSEC.</p>
- <p>Most systems use either a public or a local caching DNS resolver.
- That's a very bad idea when it comes to filter spam using DNS-based blackhole lists (DNSBL) or similar technics.
- Most if not all providers apply a rate limit based on the DNS resolver that is used to query their service.
- Using a public resolver like Googles 4x8, OpenDNS or any other shared DNS resolver like your ISPs will hit that limit very soon.</p>
-
- </div>
- </div>
- <footer>
-
- <div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
-
-
- <a href="../first_steps/" class="btn btn-neutral" title="First Steps"><span class="icon icon-circle-arrow-left"></span> Previous</a>
-
- </div>
-
- <hr/>
- <div role="contentinfo">
- <!-- Copyright etc -->
-
- </div>
- Built with <a href="http://www.mkdocs.org">MkDocs</a> using a <a href="https://github.com/snide/sphinx_rtd_theme">theme</a> provided by <a href="https://readthedocs.org">Read the Docs</a>.
- </footer>
-
- </div>
- </div>
- </section>
-
- </div>
- <div class="rst-versions" role="note" style="cursor: pointer">
- <span class="rst-current-version" data-toggle="rst-current-version">
-
- <a href="https://github.com/andryyy/mailcow-dockerized/" class="icon icon-github" style="float: left; color: #fcfcfc"> GitHub</a>
-
-
- <span><a href="../first_steps/" style="color: #fcfcfc;">« Previous</a></span>
-
-
- </span>
- </div>
- <script src="../js/theme.js"></script>
- </body>
- </html>
|