iredmail-doc/html/iredmail-easy.release.notes...

667 lines
21 KiB
HTML

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>iRedMail Easy: Release Notes</title>
<link rel="stylesheet" type="text/css" href="./css/markdown.css" />
</head>
<body>
<div id="navigation">
<a href="https://www.iredmail.org" target="_blank">
<img alt="iRedMail web site"
src="./images/logo-iredmail.png"
style="vertical-align: middle; height: 30px;"
/>&nbsp;
<span>iRedMail</span>
</a>
&nbsp;&nbsp;//&nbsp;&nbsp;<a href="./index.html">Document Index</a></div><h1 id="iredmail-easy-release-notes">iRedMail Easy: Release Notes</h1>
<div class="toc">
<ul>
<li><a href="#iredmail-easy-release-notes">iRedMail Easy: Release Notes</a><ul>
<li><a href="#20190906">Version: 2019090601 (Sep 06, 2019)</a></li>
<li><a href="#20190802">Version: 2019080201 (Aug 02, 2019)</a></li>
<li><a href="#20190801">Version: 2019080101 (Aug 01, 2019)</a></li>
<li><a href="#20190715">Version: 2019071501 (Jul 15, 2019)</a></li>
<li><a href="#20190606">Version: 2019060601 (Jun 06, 2019)</a></li>
<li><a href="#20190428">Version: 2019042801 (Apr 28, 2019)</a></li>
<li><a href="#20190402">Version: 2019040201 (Apr 02, 2019)</a></li>
<li><a href="#20190327">Version: 2019032701 (Mar 27, 2019)</a></li>
<li><a href="#20190219">Version: 2019021901 (Feb 19, 2019)</a></li>
<li><a href="#20190130">Version: 2019013001 (Jan 30, 2019)</a></li>
<li><a href="#20190102">Version: 2019010201 (Jan 2, 2019)</a></li>
<li><a href="#20181223">Version: 2018122301 (Dec 23, 2018)</a></li>
<li><a href="#20181217">Version: 2018121701 (Dec 17, 2018)</a></li>
</ul>
</li>
</ul>
</div>
<h2 class="release" id="20190906">Version: 2019090601 (Sep 06, 2019)</h2>
<ul>
<li>
<p>Postfix:</p>
<ul>
<li>Sign DKIM signature for locally generated emails, like auto-reply (a.k.a
vacation) message.</li>
</ul>
</li>
<li>
<p>Nginx:</p>
<ul>
<li>Redirect URI <code>/adminer/</code> to <code>/adminer</code>.</li>
</ul>
</li>
<li>
<p>Dovecot:</p>
<ul>
<li>
<p>Add setting <code>sieve_redirect_envelope_from=recipient</code>. It's used to
rewrite sender address in redirected message (with sieve directive
<code>redirect</code>) to the final recipient address of the message.</p>
<p>For example, <code>someone@gmail.com</code> sends an email to <code>user@domain.com</code>
which is hosted on your server, and this user has sieve rule to
redirect received message to <code>forward@3rd-domain.com</code>, with default
Dovecot setting (<code>sieve_redirect_envelope_from=sender</code>), user
<code>forward@3rd-domain.com</code> will receive this email with sender address
<code>someone@gmail.com</code> in mail header, but with
<code>sieve_redirect_envelope_from=recipient</code>, the sender address will
be <code>user@domain.com</code>.</p>
</li>
<li>
<p>Log <code>delivery_time</code> of LDA/LMTP.</p>
</li>
</ul>
</li>
<li>
<p>php-fpm:</p>
<ul>
<li>Set value of <code>post_max_size</code> 1MB larger than <code>upload_max_filesize</code>, so
that Roundcube can successfully upload mail attachment.</li>
</ul>
</li>
<li>
<p>OpenDMARC:</p>
<ul>
<li>Add shell script and cron job to update <code>public_suffix_list.dat</code> every
2 days.</li>
</ul>
</li>
<li>
<p>SpamAssassin:</p>
<ul>
<li>Set 3 custom scores in SpamAssassin to catch more spams.<ul>
<li><code>score SPF_FAIL 5</code>: sender does not match SPF record (fail)</li>
<li><code>score TO_EQ_FM_SPF_FAIL 5</code>: To == From and external SPF failed</li>
<li><code>score TO_EQ_FM_DOM_SPF_FAIL 5</code>: To domain == From domain and external SPF failed</li>
</ul>
</li>
</ul>
</li>
<li>
<p>ClamAV:</p>
<ul>
<li>Increase systemd timeout value to avoid startup failure on low memory
server.</li>
</ul>
</li>
<li>
<p>Fixed issues:</p>
<ul>
<li>Improper postrotate command for logrotate program on Linux.</li>
</ul>
</li>
<li>
<p>Package updates:</p>
<ul>
<li>roundcube -&gt; 1.3.10</li>
<li>adminer -&gt; 4.7.3</li>
<li>iRedAPD -&gt; 3.1</li>
<li>netdata -&gt; 1.17.0</li>
<li>iRedAdmin -&gt; 0.9.8</li>
</ul>
</li>
<li>
<p>Changes to iRedMail Easy platform:</p>
<ul>
<li>Firewall rule always opens port 22 for ssh.</li>
<li>Add <code>curl</code> as required packages.</li>
<li>Use package branch (<code>%7.3</code>) instead of version number for php on OpenBSD.</li>
</ul>
</li>
</ul>
<h2 class="old_release" id="20190802">Version: 2019080201 (Aug 02, 2019)</h2>
<ul>
<li>
<p>Dovecot:</p>
<ul>
<li>Fixed: not add required SQL column <code>mailbox.enablequota-status</code>. This
will cause mail rejection.</li>
</ul>
</li>
<li>
<p>Firewall:</p>
<ul>
<li>Run <code>/opt/iredmail/custom/firewall/custom.sh</code> after each deployment.</li>
</ul>
</li>
</ul>
<h2 class="old_release" id="20190801">Version: 2019080101 (Aug 01, 2019)</h2>
<ul>
<li>It now supports Debian 10.</li>
<li>
<p>Dovecot:</p>
<ul>
<li>Enable quota-status service used to query mailbox quota.</li>
<li>Fixed: Not install package <code>dovecot-mysql</code> for OpenLDAP backend on CentOS.</li>
</ul>
</li>
<li>
<p>Postfix:</p>
<ul>
<li>Lookup user's mailbox quota status from Dovecot quota-status service,
reject email if mailbox is over quota. This will help save system
resources used for spam/virus scanning, avoids "sender non-delivery
notification" bounce message.</li>
<li>Fixed: not copy <code>/etc/resolv.conf</code> to <code>/var/spool/postfix/etc/</code>.</li>
</ul>
</li>
<li>
<p>Nginx:</p>
<ul>
<li>Fixed: improper order while loading modular config files.</li>
<li>
<p><strong>ATTENTION</strong>: directive <code>ssl on;</code> has been removed (in
<code>/etc/nginx/templates/ssl.tmpl</code>) due to it's deprecated by Nginx itself.
If you have custom web host, please use <code>listen &lt;port&gt; ssl;</code> in the
<code>server {}</code> block (in <code>/etc/nginx/sites-enabled/*.conf</code>) instead.</p>
<p>For example:</p>
<ul>
<li>
<p>Old config file <code>/etc/nginx/sites-enabled/00-default-ssl.conf</code>:</p>
<p><code>server {
listen 443;
...
}</code></p>
</li>
<li>
<p>New directive:</p>
<p><code>server {
listen 443 ssl;
...
}</code></p>
</li>
</ul>
</li>
</ul>
</li>
<li>
<p>Firewall:</p>
<ul>
<li>Port 465 (SMTP over SSL) is not open in firewall when the service is
enabled.</li>
</ul>
</li>
<li>
<p>Package updates:</p>
<ul>
<li>adminer -&gt; 4.7.2</li>
</ul>
</li>
</ul>
<h2 class="old_release" id="20190715">Version: 2019071501 (Jul 15, 2019)</h2>
<ul>
<li>
<p>OpenDMARC integration.</p>
<ul>
<li>The integration is enabled by default. To disable it, please go to
mail server profile page, toggle on option <code>Disable DMARC</code> under
<code>Settings</code> tab.</li>
<li>Unfortunately, OpenBSD 6.5 and earlier releases don't have such
integration due to binary package missing. The good news is the latest
ports tree already has it and binary package is available for OpenBSD
-snapshot branch.</li>
</ul>
</li>
<li>
<p>Roundcube:</p>
<ul>
<li>New config files used to store custom settings for official plugins:<ul>
<li><code>password</code> plugin: <code>/opt/iredmail/custom/roundcube/config_password.inc.php</code></li>
<li><code>managesieve</code> plugin: <code>/opt/iredmail/custom/roundcube/config_managesieve.inc.php</code></li>
</ul>
</li>
</ul>
</li>
<li>
<p>Postfix:</p>
<ul>
<li>
<p>Fixed: improper order of restriction rules in <code>smtpd_sender_restrictions</code>.</p>
<p>File <code>/etc/postfix/sender_access.pcre</code> is not used anymore, all content
in this file should be moved to
<code>/opt/iredmail/custom/postfix/sender_access.pcre</code> instead.</p>
</li>
</ul>
</li>
<li>
<p>Nginx:</p>
<ul>
<li>Compress more file types with gzip module (<code>/etc/nginx/conf-available/gzip.conf</code>).</li>
</ul>
</li>
<li>
<p>Few programs moved and/or renamed:</p>
<ul>
<li><code>/opt/iredmail/bin/fail2ban_unbanip</code> -&gt; <code>/opt/iredmail/bin/fail2ban/unbanip</code>.</li>
<li><code>/opt/iredmail/bin/generate_password_hash.py</code> -&gt; <code>/opt/iredmail/bin/generate_password_hash</code>.</li>
<li><code>/opt/iredmail/bin/dovecot/scan_reported_mails.sh</code> -&gt; <code>/opt/iredmail/bin/dovecot/scan_reported_mails</code></li>
</ul>
</li>
<li>
<p>Fixed issues of iRedMail Easy platform:</p>
<ul>
<li>If IPv6 is disabled, installation will be abort due to Nginx is
configured (by Debian/Ubuntu packaging) to listen on IPv6 address.</li>
<li>If no PHP applications are going to be installed, no php-fpm related
configuration should be enabled (<code>/etc/nginx/templates/misc.tmpl</code>).</li>
<li>Make sure installed services are running while cleaning up the deployment.</li>
<li>Not run <code>freshclam</code> immediately to fetch/update ClamAV virus database.</li>
<li>Removing unused ClamAV log file (/var/log/clamav/clamav.log) causes
error in cron job added by ClamAV package.</li>
</ul>
</li>
<li>
<p>Package updates:</p>
<ul>
<li>iRedAPD 3.0. It fixes a critical bug of throttle plugin.</li>
<li>iRedAdmin-Pro. Note: it requires a valid iRedAdmin-Pro license.</li>
</ul>
</li>
</ul>
<h2 class="old_release" id="20190606">Version: 2019060601 (Jun 06, 2019)</h2>
<ul>
<li>
<p>Fail2ban:</p>
<ul>
<li>Remove jail 'sshd-ddos'. Fail2ban doesn't ship its filter conf anymore.</li>
</ul>
</li>
<li>
<p>Dovecot:</p>
<ul>
<li>Set default client_limit and process_limit based on memory size.</li>
</ul>
</li>
<li>
<p>autoconfig:</p>
<ul>
<li>Fixed: not handle URI <code>/.well-known/autoconfig/mail/config-v1.1.xml</code>.</li>
</ul>
</li>
<li>
<p>Improvements of iRedMail Easy platform:</p>
<ul>
<li>Able to ban/unban given file types.</li>
<li>Remove deprecated ClamAV parameters.</li>
<li>Remove unused ClamAV log file (/var/log/clamav/clamav.log).</li>
<li>Able to disable HELO hostname DNS check.</li>
<li>Fixed: not always restart iRedAdmin service to reload the code of new version.</li>
</ul>
</li>
<li>
<p>Package updates:</p>
<ul>
<li>iRedAPD 2.9. It fixes 2 bugs.</li>
<li>netdata 1.15.0</li>
</ul>
</li>
</ul>
<h2 class="old_release" id="20190428">Version: 2019042801 (Apr 28, 2019)</h2>
<ul>
<li>
<p>Postfix:</p>
<ul>
<li>Enable header/body checks for email injected by Amavisd.</li>
<li>Fixed: not load custom <code>header_checks</code> and <code>body_checks</code> pcre maps.</li>
<li>Fixed: port 1025/10025/10028 are not listening on only 127.0.0.1.</li>
<li>Fixed: per-user bcc doesn't work with MySQL/MariaDB backends.</li>
</ul>
</li>
<li>
<p>SOGo:</p>
<ul>
<li>[PostgreSQL backend] Fix incorrect owner of SQL VIEWs used for address
books.</li>
<li>[SQL backends] Fix incorrect SQL VIEWs which causes error to display
contacts in address books.</li>
<li>[SQL backends] Display all contacts directly in per-domain address book.</li>
</ul>
</li>
<li>
<p>Package updates:</p>
<ul>
<li>iRedAPD 2.8</li>
<li>iRedAdmin 0.9.7 (open source edition)</li>
<li>netdata 1.14.0</li>
</ul>
</li>
<li>
<p>Improvements of iRedMail Easy platform:</p>
<ul>
<li>
<p>Supports OpenBSD 6.5.</p>
<p>WARNING: OpenBSD 6.4 support will be removed when OpenBSD 6.6 is out.
That means you must upgrade OpenBSD 6.4 to 6.5 before 6.6 is out.</p>
</li>
<li>
<p>Fixed: not enable php ldap extension for Roundcube for OpenLDAP backend.</p>
</li>
<li>Do not always update SOGo packages.
We're using SOGo nightly build, it's not always stable, upgrading may
cause issue.</li>
<li>Send <code>iRedMail.tips</code> file to postmaster after deployment.</li>
</ul>
</li>
</ul>
<h2 class="old_release" id="20190402">Version: 2019040201 (Apr 02, 2019)</h2>
<ul>
<li>
<p>Roundcube</p>
<ul>
<li>Upgrade to 1.3.9 (<a href="https://github.com/roundcube/roundcubemail/releases/tag/1.3.9">Detailed ChangeLog</a>.)</li>
</ul>
</li>
<li>
<p>Dovecot:</p>
<ul>
<li>
<p>Able to track user last (POP3/IMAP) login for OpenLDAP and MariaDB
backends. It's disabled by default, you can enable it in iRedMail Easy
user portal, in mail server profile page, tab "Settings".</p>
<p>Note: Dovecot doesn't support this with PostgreSQL yet.</p>
<p>Here's detailed tutorial to show you what changes are applied to Dovecot:
<a href="https://docs.iredmail.org/track.user.last.login.html">Track user last login time</a>.</p>
</li>
</ul>
</li>
<li>
<p>Improvements of iRedMail Easy platform:</p>
<ul>
<li>Send <code>iRedMail.tips</code> file to postmaster after deployment.</li>
</ul>
</li>
</ul>
<h2 class="old_release" id="20190327">Version: 2019032701 (Mar 27, 2019)</h2>
<ul>
<li>
<p>Dovecot:</p>
<ul>
<li>Improve <code>imapsieve</code> setting to handle different IMAP command sent by
Microsoft Outlook (it sometimes uses <code>APPEND</code> instead of <code>COPY</code> for
moving message to another folder).</li>
</ul>
</li>
<li>
<p>iRedAPD:</p>
<ul>
<li>
<p>Update to version 2.7, with SRS (Sender Rewriting Scheme) support.</p>
<p>Note: SRS is disabled by default, you can enable it in mail server
profile page with the iRedMail Easy web UI.</p>
</li>
<li>
<p>Switch logging to syslog (and logrotate).</p>
</li>
</ul>
</li>
<li>
<p>iRedAdmin:</p>
<ul>
<li>Update to 0.9.6.</li>
</ul>
</li>
<li>
<p>BIND (local cache-only DNS server):</p>
<ul>
<li>Set syslog facility to 'local5'.</li>
</ul>
</li>
<li>
<p>netdata:</p>
<ul>
<li>Update to version 1.13.0.</li>
<li>Switch logging to syslog (and logrotate).</li>
<li>Disable sending anonymous statistics to netdata cloud.</li>
</ul>
</li>
<li>
<p>SpamAssassin:</p>
<ul>
<li>Add one custom rule to catch porn spams.</li>
<li>Fixed: not create required SQL tables for bayes.</li>
</ul>
</li>
<li>
<p>AutoConfig/AutoDiscover</p>
<ul>
<li>Domain name <code>autoconfig.&lt;domain&gt;</code> and <code>autodiscover.&lt;domain&gt;</code> are not
required if the web domain is hosted on iRedMail server, Outlook will
look for <code>https://&lt;web-domain&gt;/autodiscover/autodiscover.xml</code>.</li>
</ul>
</li>
<li>
<p>Fail2ban:</p>
<ul>
<li>Slightly loose filter for postfix to reduce unexpected ban caused by
Outlook for macOS.</li>
</ul>
</li>
<li>
<p>SOGo:</p>
<ul>
<li>Enable per-domain global address book for OpenLDAP backend by default.
We sponsored SOGo team to implement this feature:
https://sogo.nu/bugs/view.php?id=3685
Note: it requires SOGo nightly build version '4.0.7.20190318' or later,
OpenBSD 6.4 doesn't support this feature due to old SOGo package.</li>
<li>Enable builtin IMAP4 pooling by default. User should notice faster IMAP
operations.</li>
</ul>
</li>
<li>
<p>Backup:</p>
<ul>
<li>Backup OpenLDAP data with option <code>-o ldif-wrap=no</code>, to avoid break long
line to multiple lines. The dumped LDIF file is easier to work with
<code>grep</code> and other command line tools.</li>
</ul>
</li>
<li>
<p>Improvements of iRedMail Easy platform:</p>
<ul>
<li>Make sure OpenLDAP service is running before populating data.</li>
<li>Make Nginx/Dovecot/Postfix not listen on address <code>::1</code> if system doesn't
have IPv6 support.</li>
<li>Slightly reduce Amavisd max_servers to same as RAM (GB) for better
stability.</li>
<li>Always check and make sure major components are the latest versions.</li>
<li>Always update major components (postfix/dovecot/sogo/fail2ban/...) to the
latest stable release.</li>
<li>Always print command output of <code>nginx -t</code> for troubleshooting before
restart nginx servvice, it's very useful for troubleshooting.</li>
<li>New option <code>Trusted clients</code> in mail server profile page, under tab
<code>Settings</code>. You can list all trusted IP addresses or CIDR networks here,
they will be whitelisted by few components:<ul>
<li>Postfix: parameter <code>mynetworks</code> in <code>/etc/postfix/main.cf</code></li>
<li>iRedAPD: parameter <code>MYNETWORKS</code> in <code>/opt/iredapd/settings.py</code></li>
<li>Fail2ban: parameter <code>ignoreip</code> in <code>/etc/fail2ban/ignoreip.local</code></li>
</ul>
</li>
</ul>
</li>
<li>
<p>Fixed issues of iRedMail Easy platform:</p>
<ul>
<li>Incorrect permission of directories used to store prosody custom modules
and config files.</li>
</ul>
</li>
</ul>
<h2 class="old_release" id="20190219">Version: 2019021901 (Feb 19, 2019)</h2>
<ul>
<li>
<p>Improvements:</p>
<ul>
<li>Able to remove ssh public key on target server.</li>
<li>SSH keys which were generated 7 days ago will be removed automatically
from iRedMail Easy platform.</li>
</ul>
</li>
<li>
<p>Fixed issues:</p>
<ul>
<li>php-fpm: not reopen log file after rotation.</li>
<li>mlmmjadmin:<ul>
<li>Incorrect LDAP base dn in config file.</li>
<li>Do not return error if mailing list directory doesn't exist.</li>
</ul>
</li>
<li>Incorrect iRedAPD plugin name for OpenLDAP backend.</li>
<li>Few bugs with in Ansible deployment code.</li>
</ul>
</li>
<li>
<p>Package updates:</p>
<ul>
<li>mlmmjadmin -&gt; 2.1</li>
<li>iRedAdmin (open source edition) -&gt; 0.9.5</li>
</ul>
</li>
</ul>
<h2 class="old_release" id="20190130">Version: 2019013001 (Jan 30, 2019)</h2>
<ul>
<li>Set max open file limit by SOGo daemon to unlimited.</li>
<li>Able to set memcached cache size (in MB).</li>
<li>Able to disable spam/virus scanning.</li>
<li>Able to deploy iRedAdmin-Pro with your license key.</li>
<li>Able to custom http/https network ports, max file size of (web) upload file.</li>
<li>Enable bayes auto-learn in SpamAssassin, and store bayes in SQL db.</li>
<li>Increase scores of DNSBL relevant spamassassin rules to catch more spams.</li>
<li>
<p>Enable imapsieve plugin in Dovecot by default.</p>
<p>Message moved to Junk folder will be copied to a directory for spam
learning later, vice verse, message moved out of Junk will be copied
for ham learning later.</p>
<p>The spam/ham learning will be performed every 10 minutes with a cron job.</p>
<p><strong>Now encourage your users to report spams by moving spams to <code>Junk</code> folder. :)</strong></p>
</li>
<li>
<p>Fixed issues:</p>
<ul>
<li>Can not login to XMPP service (Prosody) due to incorrect permission of
auth module files.</li>
<li>ip6tables failed to start on server which doesn't have IPv6 address.</li>
</ul>
</li>
<li>
<p>Updated packages:</p>
<ul>
<li>mlmmjadmin-2.0</li>
<li>adminer-4.7.1</li>
</ul>
</li>
</ul>
<h2 class="old_release" id="20190102">Version: 2019010201 (Jan 2, 2019)</h2>
<blockquote>
<p>Hello, 2019. :)</p>
</blockquote>
<ul>
<li>Updated packages:<ul>
<li>iRedAPD-2.4. Fixed a greylisting issue.</li>
</ul>
</li>
<li>Fixed issues:<ul>
<li>Not correctly set owner and permission of custom Postfix config files
and hash db files.</li>
<li>Not remove unused modular nginx config file for iredadmin.</li>
</ul>
</li>
</ul>
<h2 class="old_release" id="20181223">Version: 2018122301 (Dec 23, 2018)</h2>
<ul>
<li>Fixed:<ul>
<li>Improper dovecot ldap/sql queries which doesn't convert upper cases of
maildir to lower cases.</li>
</ul>
</li>
</ul>
<h2 class="old_release" id="20181217">Version: 2018121701 (Dec 17, 2018)</h2>
<div class="admonition attention">
<p class="admonition-title">Attention</p>
<ul>
<li>This is the first public release. :)</li>
<li>The version number is the date when it's released, it's easier to
understand whether you're running the latest stable release. It's also
stored in file <code>/etc/iredmail-release</code> on your server.</li>
</ul>
</div>
<ul>
<li>New directory <code>/opt/www/well-known</code>, mostly used for Let's Encrypt cert
request.</li>
<li>Download source tarball of web applications to iRedMail deploy server first,
then upload it to target host. If target host can not access website like
github.com, we can still download required packages for iRedMail deployment.</li>
<li>Firewall:<ul>
<li>Add rc script and firewall rule for ipv6 on Debian/Ubuntu:<ul>
<li><code>/etc/init.d/ip6tables</code></li>
<li><code>/etc/default/ip6tables</code></li>
</ul>
</li>
</ul>
</li>
<li>OpenLDAP backend:<ul>
<li>Do not enable TLS/SSL support in OpenLDAP by default.</li>
<li>Add database <code>monitor</code> by default.</li>
<li>Include calresource.schema and calentry.schema by default. Required
by SOGo for resource management.</li>
<li>Index attribute <code>departmentNumber</code>.</li>
</ul>
</li>
<li>Fail2ban:<ul>
<li>Remove duplicate filter rules for Postfix postscreen service.</li>
</ul>
</li>
<li>SOGo:<ul>
<li>Add new parameters to support resource management.</li>
<li>Add mail aliases and mailing lists as address book.</li>
<li>Fix incorrect column name in SQL views.</li>
</ul>
</li>
<li>netdata:<ul>
<li>Supports monitoring OpenLDAP.</li>
</ul>
</li>
<li>Fixed:<ul>
<li>Ubuntu: Missing apparmor rule to allow ClamAV to scan emails.</li>
<li>not enable php-fpm status support in Nginx and netdata.</li>
<li>not load rsyslog module <code>imjournal</code> for rate limit control.</li>
</ul>
</li>
<li>Package update:<ul>
<li>netdata -&gt; 1.11.1</li>
<li>adminer -&gt; 4.7.0</li>
</ul>
</li>
</ul><div class="footer">
<p style="text-align: center; color: grey;">All documents are available in <a href="https://github.com/iredmail/docs/">BitBucket repository</a>, and published under <a href="http://creativecommons.org/licenses/by-nd/3.0/us/" target="_blank">Creative Commons</a> license. You can <a href="https://github.com/iredmail/docs/archive/master.zip">download the latest version</a> for offline reading. If you found something wrong, please do <a href="https://www.iredmail.org/contact.html">contact us</a> to fix it.</p>
</div>
<!-- Global site tag (gtag.js) - Google Analytics -->
<script async src="https://www.googletagmanager.com/gtag/js?id=UA-3293801-21"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'UA-3293801-21');
</script>
</body></html>