Generate first chapter
83
convert.py
|
@ -1,6 +1,9 @@
|
|||
#!/usr/bin/env python3
|
||||
|
||||
from pathlib import Path
|
||||
import markdown
|
||||
# https://github.com/FND/markdown-checklist
|
||||
from markdown_checklist.extension import ChecklistExtension
|
||||
|
||||
|
||||
OUTPUT_DIR = 'html'
|
||||
|
@ -18,6 +21,40 @@ CHAPTERS = (
|
|||
'troubleshooting',
|
||||
'faq')
|
||||
|
||||
MD_EXTENSIONS = ['toc', 'meta', 'extra', 'footnotes', 'admonition', 'tables',
|
||||
'attr_list', ChecklistExtension()]
|
||||
|
||||
TITLE = 'iRedMail Documentations'
|
||||
LINK_INDEX = ' // <a href="./index.html">Document Index</a>'
|
||||
TEMPLATE = """<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||
<title>{title}</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;"
|
||||
/>
|
||||
<span>iRedMail</span>
|
||||
</a> {link_index}
|
||||
</div>
|
||||
|
||||
{body}
|
||||
|
||||
<div class="footer">
|
||||
<p style="text-align: center; color: grey;">All documents are available in <a href="https://github.com/iredmail/docs/">GitHub 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>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
"""
|
||||
|
||||
|
||||
def _get_dir_languages(path):
|
||||
FILE_NAME = '_lang.md'
|
||||
|
@ -35,6 +72,17 @@ def _get_dir_languages(path):
|
|||
return languages
|
||||
|
||||
|
||||
def _get_content_dir(path):
|
||||
files = sorted([p for p in Path(path).iterdir() if not '_summary' in str(p)])
|
||||
title = files.pop(-1)
|
||||
return files, title
|
||||
|
||||
|
||||
def _get_target_name(path):
|
||||
path_html = path.stem.split('-')[1].replace('.', '_') + '.html'
|
||||
return path_html
|
||||
|
||||
|
||||
def main():
|
||||
current_dir = Path(__file__).parent
|
||||
output_dir = current_dir / OUTPUT_DIR
|
||||
|
@ -42,6 +90,41 @@ def main():
|
|||
languages = _get_dir_languages(current_dir)
|
||||
en = languages.pop('en_us')
|
||||
|
||||
index_md = []
|
||||
|
||||
for chapter in CHAPTERS:
|
||||
path_chapter = en['path'] / chapter
|
||||
files, file_title = _get_content_dir(path_chapter)
|
||||
title_chapter = file_title.open(encoding='utf-8').readline()
|
||||
index_md.append(f'### {title_chapter}')
|
||||
index_md.append('')
|
||||
for f in files:
|
||||
name_html = _get_target_name(f)
|
||||
path_html = OUTPUT_DIR + '/' + name_html
|
||||
title = f.open(encoding='utf-8').readline()
|
||||
index_md.append(f'- [{title[2:]}]({name_html})')
|
||||
source = f.read_text(encoding='utf-8')
|
||||
body = markdown.markdown(source, extensions=MD_EXTENSIONS)
|
||||
data = dict(
|
||||
title = title,
|
||||
link_index = LINK_INDEX,
|
||||
body = body
|
||||
)
|
||||
html = TEMPLATE.format(**data)
|
||||
Path(path_html).write_text(html, encoding='utf-8')
|
||||
index_md.append('')
|
||||
break
|
||||
|
||||
path_html = OUTPUT_DIR + '/index.html'
|
||||
body = markdown.markdown('\n'.join(index_md), extensions=MD_EXTENSIONS)
|
||||
data = dict(
|
||||
title = TITLE,
|
||||
link_index = '',
|
||||
body = body
|
||||
)
|
||||
html = TEMPLATE.format(**data)
|
||||
Path(path_html).write_text(html, encoding='utf-8')
|
||||
|
||||
return
|
||||
|
||||
|
||||
|
|
270
html/index.html
|
@ -1,11 +1,11 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||
<title>iRedMail Documentations</title>
|
||||
<link rel="stylesheet" type="text/css" href="./css/markdown.css" />
|
||||
</head>
|
||||
<body>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||
<title>iRedMail Documentations</title>
|
||||
<link rel="stylesheet" type="text/css" href="./css/markdown.css" />
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div id="navigation">
|
||||
<a href="https://www.iredmail.org" target="_blank">
|
||||
|
@ -14,246 +14,22 @@
|
|||
style="vertical-align: middle; height: 30px;"
|
||||
/>
|
||||
<span>iRedMail</span>
|
||||
</a>
|
||||
</div><div class="admonition note">
|
||||
<p class="admonition-title">Some tutorials have been translated to different languages. <a href="https://github.com/iredmail/docs">Help translate more</a></p>
|
||||
<p><a href="./index-it_IT.html">Italiano</a> / <a href="./index-zh_CN.html">简体中文</a> / <a href="./index-es_MX.html">Español</a> /</p>
|
||||
</div>
|
||||
<h3 id="overview">Overview</h3>
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<h3 id="overview">Overview</h3>
|
||||
<ul>
|
||||
<li><a href="./why.build.your.own.mail.server.html">Why build your own mail server instead of outsourcing to external entities</a></li>
|
||||
<li><a href="./used.components.html">Major open source softwares used in iRedMail, and big picture of mail flow</a></li>
|
||||
<li><a href="./network.ports.html">Which network ports are open by iRedMail</a></li>
|
||||
<li><a href="why_build_your_own_mail_server.html">Why build your own mail server instead of outsourcing to external entities
|
||||
</a></li>
|
||||
<li><a href="used_components.html">Major open source softwares used in iRedMail
|
||||
</a></li>
|
||||
<li><a href="network_ports.html">Which network ports are open by iRedMail
|
||||
</a></li>
|
||||
</ul>
|
||||
<h3 id="install">Install iRedMail</h3>
|
||||
<ul>
|
||||
<li><a href="./iredmail-easy.getting.start.html">Getting start with <strong>iRedMail Easy</strong></a> - meet our new deployment and support platform</li>
|
||||
<li>Install iRedMail (with downloadable installer) on:<ul>
|
||||
<li><a href="./install.iredmail.on.rhel.html">Red Hat Enterprise Linux, CentOS</a></li>
|
||||
<li><a href="./install.iredmail.on.debian.ubuntu.html">Debian, Ubuntu</a></li>
|
||||
<li><a href="./install.iredmail.on.freebsd.html">FreeBSD (without Jail)</a>, <a href="./install.iredmail.on.freebsd.with.jail.html">FreeBSD with Jail (ezjail)</a></li>
|
||||
<li><a href="./install.iredmail.on.openbsd.html">OpenBSD</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>After installation:<ul>
|
||||
<li><a href="./setup.dns.html">Setup DNS records for your iRedMail server (A, PTR, MX, SPF, DKIM, DMARC)</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>Additional installation tips<ul>
|
||||
<li><a href="./install.iredmail.with.remote.mysql.server.html">Install iRedMail with a remote MySQL server</a></li>
|
||||
<li><a href="./unattended.iredmail.installation.html">Perform silent/unattended iRedMail installation</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><a href="./performance.tuning.html">Performance tuning for a busy server</a></li>
|
||||
</ul>
|
||||
<h3 id="mua">Configure mail client applications</h3>
|
||||
<div class="admonition note">
|
||||
<p class="admonition-title">Quick MUA Settings</p>
|
||||
<ul>
|
||||
<li>Login username of SMTP/POP3/IMAP services must be full email address.</li>
|
||||
<li>POP3 service: port 110 over STARTTLS (recommended), or port 995 with SSL.</li>
|
||||
<li>IMAP service: port 143 over STARTTLS (recommended), or port 993 with SSL.</li>
|
||||
<li>SMTP service: port 587 over STARTTLS. If you need to support old mail clients with SMTP over SSL (port 465), please check our tutorial: <a href="https://docs.iredmail.org/enable.smtps.html">Enable SMTPS service (SMTP over SSL, port 465)</a>.</li>
|
||||
<li>CalDAV and CardDAV server addresses: <code>https://<server>/SOGo/dav/<full email address></code></li>
|
||||
</ul>
|
||||
</div>
|
||||
<ul>
|
||||
<li><a href="activesync.android.html">Exchange ActiveSync: Setup Android devices</a></li>
|
||||
<li><a href="activesync.bb10.html">Exchange ActiveSync: Setup BlackBerry 10 devices</a></li>
|
||||
<li><a href="activesync.ios.html">Exchange ActiveSync: Setup iOS devices</a></li>
|
||||
<li><a href="activesync.outlook.html">Exchange ActiveSync: Setup Outlook 2013 for Windows</a></li>
|
||||
<li><a href="configure.thunderbird.html">Setup Thunderbird: POP3/IMAP, SMTP and global ldap address book</a></li>
|
||||
<li><a href="thunderbird.sogo.html">Setup Thunderbird: SOGo Address Book and Calendar synchronization with CardDAV and CalDAV</a></li>
|
||||
<li><a href="sogo.macosx.contacts.html">Mac OS X: Add contact service (CardDAV) in Contacts.app</a></li>
|
||||
<li><a href="sogo.macosx.icalendar.html">Mac OS X: Add calendar (CalDAV) and task (Reminders) service in iCalendar.app</a></li>
|
||||
</ul>
|
||||
<h3 id="upgrade">Release notes and upgrade tutorials</h3>
|
||||
<ul>
|
||||
<li><a href="iredmail.releases.html">iRedMail release notes and upgrade tutorials</a></li>
|
||||
<li><a href="iredadmin-pro.releases.html">iRedAdmin-Pro (web-based admin panel) release notes and upgrade tutorials</a></li>
|
||||
<li><a href="iredapd.releases.html">iRedAPD (Postfix Access Policy Daemon) release notes and upgrade tutorials</a></li>
|
||||
<li><a href="upgrade.mlmmjadmin.html">mlmmjadmin upgrade tutorial (RESTful API server used to manage mlmmj mailing list)</a></li>
|
||||
</ul>
|
||||
<h3 id="easy"><strong>iRedMail Easy</strong> - Web-based Deployment, Upgrade and Tech Support Platform</h3>
|
||||
<ul>
|
||||
<li><a href="iredmail-easy.getting.start.html">iRedMail Easy: Getting start</a></li>
|
||||
<li><a href="iredmail-easy.best.practice.html">iRedMail Easy: Best Practice</a></li>
|
||||
<li><a href="iredmail-easy.faq.html">iRedMail Easy: FAQ</a></li>
|
||||
<li><a href="iredmail-easy.release.notes.html">iRedMail Easy: Release Notes</a></li>
|
||||
<li><a href="migrate.to.iredmail.easy.html">iRedMail Easy: Migrate from iRedMail to iRedMail Easy platform</a></li>
|
||||
<li><a href="iredmail-easy.unsubscribe.html">iRedMail Easy: How to cancel your subscription</a></li>
|
||||
<li><a href="iredmail-easy.autoconfig.autodiscover.html">iRedMail Easy: Setup DNS records for autoconfig and autodiscover</a></li>
|
||||
<li><a href="iredmail-easy.setup.sudo.html">iRedMail Easy: Setup sudo for deployment</a></li>
|
||||
<li><a href="iredmail-easy.what.is.ssh.jump.server.html">iRedMail Easy: What is SSH jump server</a></li>
|
||||
</ul>
|
||||
<h3 id="migration">Migrations</h3>
|
||||
<ul>
|
||||
<li><a href="migrate.to.new.iredmail.server.html">Migrate old iRedMail server to the latest stable release</a></li>
|
||||
<li><a href="password.hashes.html">Password hashes</a></li>
|
||||
<li><a href="cluebringer.to.iredapd.html">Migrate from Cluebringer to iRedAPD</a></li>
|
||||
</ul>
|
||||
<h3 id="howto">How to</h3>
|
||||
<ul>
|
||||
<li><a href="allow.certain.users.to.send.email.as.different.user.html">Allow certain users to send email as another user</a></li>
|
||||
<li><a href="change.mail.attachment.size.html">Change mail attachment size</a></li>
|
||||
<li><a href="completely.disable.amavisd.clamav.spamassassin.html">Completely disable Amavisd + ClamAV + SpamAssassin</a></li>
|
||||
<li><a href="enable.smtp.auth.on.port.25.html">Enable SMTP SASL AUTH on port 25</a></li>
|
||||
<li><a href="enable.smtps.html">Enable SMTPS service (SMTP over SSL, port 465)</a></li>
|
||||
<li><a href="disable.spam.virus.scanning.for.outgoing.mails.html">Disable spam virus scanning for outgoing mails</a></li>
|
||||
<li><a href="no.x-spam.headers.html">Amavisd + SpamAssassin not working? no mail header (X-Spam-*) inserted</a></li>
|
||||
<li><a href="quarantine.clean.mails.per-user.html">Quarantine clean emails sent from/to certain local user</a></li>
|
||||
<li><a href="quarantining.html">Quarantining</a></li>
|
||||
<li><a href="sign.dkim.signature.for.new.domain.html">Sign DKIM signature on outgoing emails for new mail domain</a></li>
|
||||
<li><a href="allow.insecure.pop3.imap.smtp.connections.html">Allow insecure POP3/IMAP/SMTP connections without STARTTLS</a></li>
|
||||
<li><a href="additional.smtp.port.html">Allow internal network devices to send email with insecure connection</a></li>
|
||||
<li><a href="allow.member.to.send.email.as.mail.list.html">Allow member to send email as mailing list or mail alias</a></li>
|
||||
<li><a href="allow.send.without.smtp.auth.html">Allow some user to send email without smtp authentication</a></li>
|
||||
<li><a href="amavisd.per-recipient.policy.lookup.html">Amavisd: Enable per-recipient policy lookup</a></li>
|
||||
<li><a href="authenticate.without.domain.name.html">Authenticate without domain part in email address</a></li>
|
||||
<li><a href="backupmx.html">How to mark a mail domain as backup MX</a></li>
|
||||
<li><a href="change.mailbox.format.html">Change per-user mailbox format (e.g. maildir, mdbox)</a></li>
|
||||
<li><a href="change.server.hostname.html">Change server hostname</a></li>
|
||||
<li><a href="concurrent.processing.html">Process more emails concurrently</a></li>
|
||||
<li><a href="dovecot.imapsieve.html">Auto learn spam/ham with Dovecot <code>imap_sieve</code> plugin</a></li>
|
||||
<li><a href="dovecot.master.user.html">Dovecot Master User: Access user's mailbox without owner's password.</a></li>
|
||||
<li><a href="enable.dnsbl.html">Enable DNSBL service in Postfix to reduce spam</a></li>
|
||||
<li><a href="enable.postscreen.html">Enable postscreen service</a></li>
|
||||
<li><a href="fail2ban.sql.html">Fail2ban: Store banned IP addresses in SQL database</a></li>
|
||||
<li><a href="force.user.to.change.password.html">Force mail user to change password in 90 days</a></li>
|
||||
<li><a href="ignore.trash.folder.in.quota.html">Ignore Trash folder in mailbox quota</a></li>
|
||||
<li><a href="ldap.add.alias.domain.html">LDAP: Add an alias domain</a></li>
|
||||
<li><a href="ldap.add.catch-all.html">LDAP: Add per-domain catch-all account</a></li>
|
||||
<li><a href="ldap.add.mail.alias.html">LDAP: Add a mail alias account</a></li>
|
||||
<li><a href="ldap.add.mail.list.html">LDAP: Add a (unsubscribeable) mailing list</a></li>
|
||||
<li><a href="ldap.bulk.create.mail.users.html">LDAP: Bulk create mail users</a></li>
|
||||
<li><a href="ldap.user.mail.forwarding.html">LDAP: User mail forwarding</a></li>
|
||||
<li><a href="letsencrypt.html">Request a free cert from Let's Encrypt</a></li>
|
||||
<li><a href="mailbox.sharing.html">Mailbox sharing (Sharing IMAP folder with other users)</a></li>
|
||||
<li><a href="manage.iredapd.html">Manage iRedAPD (white/blacklists, greylisting, throttling and more)</a></li>
|
||||
<li><a href="manage.subscribeable.mailing.lists.html">Manage subscribeable mailing lists</a></li>
|
||||
<li><a href="monitor.incoming.and.outgoing.mails.with.bcc.html">Monitor incoming and outgoing mails with BCC</a></li>
|
||||
<li><a href="move.detected.spam.to.junk.folder.html">Move detected spam to Junk folder</a></li>
|
||||
<li><a href="per-account.transport.html">Per-domain or per-user transport (relay)</a></li>
|
||||
<li><a href="pipe.incoming.email.for.certain.user.to.external.script.html">Pipe incoming email for certain user to external script</a></li>
|
||||
<li><a href="promote.user.to.be.global.admin.html">Promote a mail user to be global admin</a></li>
|
||||
<li><a href="public.folder.html">How to create and manage public folder</a></li>
|
||||
<li><a href="recalculate.mailbox.quota.html">Force Dovecot to recalculate mailbox quota</a></li>
|
||||
<li><a href="relayhost.html">Setup relayhost</a></li>
|
||||
<li><a href="reset.user.password.html">Reset user password</a></li>
|
||||
<li><a href="restrict.mail.user.to.login.from.specified.ip.or.networks.html">Restrict mail user to login from specified IP addresses or networks</a></li>
|
||||
<li><a href="send.out.email.from.specified.ip.addresses.html">Send out email from specified IP address</a></li>
|
||||
<li><a href="sign.disclaimer.html">Sign disclaimer on outgoing mails</a></li>
|
||||
<li><a href="sogo.free.busy.html">SOGo: per-user free/busy availability</a></li>
|
||||
<li><a href="sogo.manage.resources.html">SOGo: Manage resources</a></li>
|
||||
<li><a href="sql.add.alias.domain.html">SQL: Add an alias domain</a></li>
|
||||
<li><a href="sql.create.catch-all.html">SQL: Add per-domain catch-all account</a></li>
|
||||
<li><a href="sql.create.mail.alias.html">SQL: Add a mail alias account</a></li>
|
||||
<li><a href="sql.create.mail.user.html">SQL: Create new mail user</a></li>
|
||||
<li><a href="sql.user.mail.forwarding.html">SQL: User mail forwarding</a></li>
|
||||
<li><a href="srs.html">Enable SRS (Sender Rewriting Scheme) support</a></li>
|
||||
<li><a href="store.spamassassin.bayes.in.sql.html">Store SpamAssassin bayes in SQL</a></li>
|
||||
<li><a href="subdomain.web.apps.html">Run web applications under subdomain with Nginx</a></li>
|
||||
<li><a href="track.user.last.login.html">Track user last login time</a></li>
|
||||
<li><a href="upgrade.debian.10-11.html">Fixes you need after upgrading Debian from 10 to 11</a></li>
|
||||
<li><a href="upgrade.debian.8-9.html">Fixes you need after upgrading Debian from 8 to 9</a></li>
|
||||
<li><a href="upgrade.debian.9-10.html">Fixes you need after upgrading Debian from 9 to 10</a></li>
|
||||
<li><a href="upgrade.dovecot.2.2-2.3.html">Upgrade Dovecot from 2.2.x to 2.3.x</a></li>
|
||||
<li><a href="upgrade.netdata.html">How to upgrade netdata</a></li>
|
||||
<li><a href="upgrade.sogo.4.to.5.html">Upgrade SOGo from v4 to v5</a></li>
|
||||
<li><a href="upgrade.ubuntu.14.04-16.04.html">Fixes you need after upgrading Ubuntu from 14.04 to 16.04</a></li>
|
||||
<li><a href="upgrade.ubuntu.18.04-20.04.html">Upgrade Ubuntu from 18.04 to 20.04</a></li>
|
||||
<li><a href="use.a.bought.ssl.certificate.html">Use a bought SSL certificate</a></li>
|
||||
<li><a href="use.openldap.as.address.book.in.outlook.html">Use OpenLDAP as address book in Microsoft Outlook</a></li>
|
||||
<li><a href="user.alias.address.html">Per-user alias address</a></li>
|
||||
<li><a href="webmail.customization.html">Webmail customization</a></li>
|
||||
</ul>
|
||||
<p>Documents contributed by iRedMail users:</p>
|
||||
<ul>
|
||||
<li><a href="https://forum.iredmail.org/topic8169-iredmail-support-antispam-via-dovecot-and-spamassassin.html">Anti-spam with Dovecot antispam plugin and SpamAssassin</a>, contributed by Dexus.</li>
|
||||
</ul>
|
||||
<h3 id="integration">Third-party integrations</h3>
|
||||
<p>Below tutorials are maintained by iRedMail project.</p>
|
||||
<ul>
|
||||
<li>
|
||||
<p><a href="active.directory.html">Integrate Microsoft Active Directory for user authentication and address book</a></p>
|
||||
</li>
|
||||
<li>
|
||||
<p><a name="integration_mlmmj"></a>Integrate mlmmj mailing list manager (mlmmj is a required core component since iRedMail-0.9.8):</p>
|
||||
<ul>
|
||||
<li><a href="./integration.mlmmj.ldap.html">For LDAP backends</a></li>
|
||||
<li><a href="./integration.mlmmj.mysql.html">For MySQL/MariaDB backend</a></li>
|
||||
<li><a href="./integration.mlmmj.pgsql.html">For PostgreSQL backend</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>
|
||||
<p><a name="integration_netdata"></a>Integrate netdata monitor (netdata is an optional component since iRedMail-0.9.8):</p>
|
||||
<ul>
|
||||
<li><a href="./integration.netdata.linux.html">For Linux</a></li>
|
||||
<li><a href="./integration.netdata.freebsd.html">For FreeBSD</a></li>
|
||||
<li>netdata doesn't work on OpenBSD (yet).</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>
|
||||
<p>Install SOGo groupware on:</p>
|
||||
<ul>
|
||||
<li>CentOS 6: <a href="./sogo-centos-6-mysql.html">MySQL</a>, <a href="./sogo-centos-6-openldap.html">OpenLDAP</a>.</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
<p>Documents contributed by iRedMail users:</p>
|
||||
<ul>
|
||||
<li><a href="http://www.murat.ws/openfire-iredmail-yapilandirmasi/">Integreate OpenFire in iRedMail (MySQL backend)</a> (Turkish)</li>
|
||||
<li><a href="https://extremeshok.com/6622/enabling-apache-solr-4-10-using-jetty-with-dovecot-2-2-for-fulltext-search-results-on-centos-6-iredmail-compatible/">Enabling Apache Solr 4.10 (using jetty) with Dovecot 2.2 for fulltext search results on Centos 6 (iRedMail compatible)</a></li>
|
||||
<li><a href="http://www.howtoforge.com/installing-iredmail-and-mailman-on-debian-squeeze">Install iRedMail and Mailman on Debian Squeeze</a>. Howtoforge tutorial, contributed by Jason Norwood-Young.</li>
|
||||
<li><a href="./dbmail.mysql.centos.html">Integrate DBMail in iRedMail (MySQL backend), CentOS</a></li>
|
||||
<li><a href="https://forum.iredmail.org/topic2147-highavailability-maildir-storage-with-glusterfs-centos-5x.html">High-Availability Maildir Storage With GlusterFS + CentOS 5.x</a>, contributed by Basem Hegazy. 2011-06-26</li>
|
||||
<li><a href="https://www.howtoforge.com/using-iredmail-and-openvpn-for-virtual-email-hosting-and-vpn-services-centos-5.4">Integrate OpenVPN in iRedMail with OpenLDAP</a>, Howtoforge tutorial.</li>
|
||||
<li><a href="./ejabberd.openldap.ubuntu.html">Integrate Ejabberd in iRedMail with OpenLDAP</a></li>
|
||||
</ul>
|
||||
<h3 id="cluster">Cluster</h3>
|
||||
<p>Documents contributed by iRedMail users:</p>
|
||||
<ul>
|
||||
<li><a href="./haproxy.keepalived.glusterfs.html">Build an iRedMail fail-over Cluster with KeepAlived, HAProxy, GlusterFS, OpenLDAP, Mariadb</a>, contributed by Setyo Prayitno</li>
|
||||
<li><a href="http://pastebin.com/JcYeQBrX">An Ultra-HA, full Mult-Master E-mail cluster with iRedMail, MariaDB, and IPVS</a>, contributed by Joshua Boniface.</li>
|
||||
</ul>
|
||||
<h3 id="iredadmin">iRedAdmin-Pro</h3>
|
||||
<ul>
|
||||
<li><a href="iredadmin-pro.custom.ban.rules.html">iRedAdmin-Pro: Custom (Amavisd) ban rules</a></li>
|
||||
<li><a href="iredadmin-pro.custom.base.url.html">iRedAdmin-Pro: Custom base url (/iredadmin)</a></li>
|
||||
<li><a href="iredadmin-pro.customize.maildir.path.html">iRedAdmin-Pro: Customize maildir path</a></li>
|
||||
<li><a href="iredadmin-pro.custom.logo.html">iRedAdmin-Pro: Custom logo image, brand name, short product description</a></li>
|
||||
<li><a href="iredadmin-pro.custom.user.services.html">iRedAdmin-Pro (LDAP backend): Add and manage custom services for mail user</a></li>
|
||||
<li><a href="iredadmin-pro.default.password.policy.html">iRedAdmin-Pro: Default password restrictions</a></li>
|
||||
<li><a href="iredadmin-pro.domain.ownership.verification.html">iRedAdmin-Pro: Domain ownership verification</a></li>
|
||||
<li><a href="iredadmin-pro.restful.api.html">iRedAdmin-Pro: RESTful API</a></li>
|
||||
<li><a href="iredadmin-pro.self-service.html">iRedAdmin-Pro: Enable self-service to allow users to manage their own preferences and more</a></li>
|
||||
<li><a href="iredadmin-pro.set.a.proper.timezone.html">iRedAdmin-Pro: Set a proper time zone</a></li>
|
||||
<li><a href="iredadmin-pro.spam.policy.priority.html">iRedAdmin-Pro: Priority of spam policy used in iRedMail & iRedAdmin-Pro</a></li>
|
||||
<li><a href="iredadmin-pro.subscribable.mailing.list.html">iRedAdmin-Pro: Subscribable mailing list</a></li>
|
||||
<li><a href="translate.iredadmin.html">iRedAdmin: Translate iRedAdmin to your local language</a></li>
|
||||
</ul>
|
||||
<h3 id="troubleshooting">Troubleshooting and Debug</h3>
|
||||
<ul>
|
||||
<li><a href="debug.amavisd.html">Turn on debug mode in Amavisd and SpamAssassin</a></li>
|
||||
<li><a href="debug.dovecot.html">Turn on debug mode in Dovecot</a></li>
|
||||
<li><a href="debug.fail2ban.html">Turn on debug logging in Fail2ban</a></li>
|
||||
<li><a href="debug.iredapd.html">Turn on debug mode in iRedAPD</a></li>
|
||||
<li><a href="debug.mysql.html">Log executed SQL commands in MySQL/MariaDB</a></li>
|
||||
<li><a href="debug.nginx.html">Turn on debug mode in Nginx</a></li>
|
||||
<li><a href="debug.openldap.html">Turn on debug mode in OpenLDAP</a></li>
|
||||
<li><a href="debug.postfix.html">Turn on debug mode in Postfix</a></li>
|
||||
<li><a href="debug.roundcubemail.html">Turn on debug mode in Roundcube webmail</a></li>
|
||||
<li><a href="debug.sogo.html">Turn on debug mode in SOGo</a></li>
|
||||
</ul>
|
||||
<h3 id="faq">Frequently Asked Questions</h3>
|
||||
<ul>
|
||||
<li><a href="errors.html">Errors you may see while maintaining iRedMail server</a></li>
|
||||
<li><a href="why.append.timestamp.in.maildir.path.html">Why append timestamp in maildir path</a></li>
|
||||
<li><a href="amavisd.sql.db.html">Explanation of Amavisd SQL database</a></li>
|
||||
<li><a href="backup.restore.html">Backup and restore</a></li>
|
||||
<li><a href="file.locations.html">Locations of configuration and log files of major components</a></li>
|
||||
<li><a href="openldap.intro.html">Introduce the OpenLDAP server configured by iRedMail</a></li>
|
||||
<li><a href="why.no.sieve.support.in.sogo.html">Why no sieve support (Vacation, Forwarding) in SOGo Groupware</a></li>
|
||||
</ul><div class="footer">
|
||||
<p style="text-align: center; color: grey;">All documents are available in <a href="https://github.com/iredmail/docs/">GitHub 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></body></html>
|
||||
|
||||
<div class="footer">
|
||||
<p style="text-align: center; color: grey;">All documents are available in <a href="https://github.com/iredmail/docs/">GitHub 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>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
|
|
@ -0,0 +1,265 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||
<title># Which network ports are open by iRedMail
|
||||
</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;"
|
||||
/>
|
||||
<span>iRedMail</span>
|
||||
</a> // <a href="./index.html">Document Index</a>
|
||||
</div>
|
||||
|
||||
<h1 id="which-network-ports-are-open-by-iredmail">Which network ports are open by iRedMail</h1>
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Port</th>
|
||||
<th>Service</th>
|
||||
<th>Software</th>
|
||||
<th>Comment</th>
|
||||
<th>Allow Public Access?</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>25</td>
|
||||
<td>smtp</td>
|
||||
<td>Postfix</td>
|
||||
<td>Used for communication betweem mail servers. <strong>WARNING</strong>: This port <strong>MUST</strong> be open, otherwise you cannot receive email sent by other mail servers.</td>
|
||||
<td><strong class="red">YES (REQUIRED)</strong></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>587</td>
|
||||
<td>submission</td>
|
||||
<td>Postfix</td>
|
||||
<td>SMTP over TLS. Used by end users to send/submit email.</td>
|
||||
<td>YES (open to your end users)</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>110</td>
|
||||
<td>pop3</td>
|
||||
<td>Dovecot</td>
|
||||
<td>Used by end users to retrieve emails via POP3 protocol, secure connection over STARTTLS is enforced by default.</td>
|
||||
<td>YES (open to your end users)</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>995</td>
|
||||
<td>pop3s</td>
|
||||
<td>Dovecot</td>
|
||||
<td>Used by end users to retrieve emails via POP3 protocol over SSL.</td>
|
||||
<td>YES (open to your end users)</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>143</td>
|
||||
<td>imap</td>
|
||||
<td>Dovecot</td>
|
||||
<td>Used by end users to retrieve emails via IMAP protocol, secure connection over STARTTLS is enforced by default.</td>
|
||||
<td>YES (open to your end users)</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>993</td>
|
||||
<td>imaps</td>
|
||||
<td>Dovecot</td>
|
||||
<td>Used by end users to retrieve emails via IMAP protocol over SSL.</td>
|
||||
<td>YES (open to your end users)</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>24</td>
|
||||
<td>lmtp</td>
|
||||
<td>Dovecot</td>
|
||||
<td>Used to deliver email to local mailboxes via LMTP protocol.</td>
|
||||
<td>NO (listen on <code>127.0.0.1</code> by default)</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>4190</td>
|
||||
<td>managesieve</td>
|
||||
<td>Dovecot</td>
|
||||
<td>Sieve service used by end users to manage mail filters. Note: in old iRedMail releases, it's port 2000 (deprecated and not even listed in <code>/etc/services</code> file).</td>
|
||||
<td>NO (disabled by default and users are forced to manage mail filters with webmail)</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>80</td>
|
||||
<td>http</td>
|
||||
<td>Apache/Nginx</td>
|
||||
<td>Web service. Redirect to https by default.</td>
|
||||
<td>YES (open to your webmail users)</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>443</td>
|
||||
<td>https</td>
|
||||
<td>Apache/Nginx</td>
|
||||
<td>Web service over over SSL, secure connection.</td>
|
||||
<td>YES (open to your webmail and ActiveSync users)</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>3306</td>
|
||||
<td>mysql</td>
|
||||
<td>MySQL/MariaDB</td>
|
||||
<td>MySQL/MariaDB database service</td>
|
||||
<td>NO (listen on <code>127.0.0.1</code> by default)</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>5432</td>
|
||||
<td>postgresql</td>
|
||||
<td>PostgreSQL</td>
|
||||
<td>PostgreSQL database service</td>
|
||||
<td>NO (listen on <code>127.0.0.1</code> by default)</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>389</td>
|
||||
<td>ldap</td>
|
||||
<td>OpenLDAP (or OpenBSD ldapd)</td>
|
||||
<td>LDAP service, STARTTLS is available for secure connection.</td>
|
||||
<td>NO (listen on <code>127.0.0.1</code> by default)</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>636</td>
|
||||
<td>ldaps</td>
|
||||
<td>OpenLDAP (or OpenBSD ldapd)</td>
|
||||
<td>LDAP service over SSL. Deprecated, port 389 with STARTTLS is recommended.</td>
|
||||
<td>NO (Not enabled by default)</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>10024</td>
|
||||
<td></td>
|
||||
<td>Amavisd-new</td>
|
||||
<td>Used to scan inbound messages, includes spam/virus scanning, DKIM verification, applying spam policy.</td>
|
||||
<td>NO (listen on <code>127.0.0.1</code> by default)</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>10025</td>
|
||||
<td>smtp</td>
|
||||
<td>Postfix</td>
|
||||
<td>Used by Amavisd to inject scanned emails back to Postfix queue.</td>
|
||||
<td>NO (listen on <code>127.0.0.1</code> by default)</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>10026</td>
|
||||
<td></td>
|
||||
<td>Amavisd-new</td>
|
||||
<td>Used to scan outbound messages, includes spam/virus scanning, DKIM signing, applying spam policy.</td>
|
||||
<td>NO (listen on <code>127.0.0.1</code> by default)</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>10027</td>
|
||||
<td></td>
|
||||
<td>Amavisd-new</td>
|
||||
<td>Used by mlmmj mailing list manager, it bypasses spam/virus/header/banned checks by default, but have DKIM signing enabled.</td>
|
||||
<td>NO (listen on <code>127.0.0.1</code> by default)</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>10028</td>
|
||||
<td></td>
|
||||
<td>Postfix</td>
|
||||
<td>Used by Amavisd-new to handle email message sent by mlmmj mailing list manager. Introduced in iRedMail-0.9.9.</td>
|
||||
<td>NO (listen on <code>127.0.0.1</code> by default)</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>9998</td>
|
||||
<td></td>
|
||||
<td>Amavisd-new</td>
|
||||
<td>Used to manage quarantined emails.</td>
|
||||
<td>NO (listen on <code>127.0.0.1</code> by default)</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>7777</td>
|
||||
<td></td>
|
||||
<td>iRedAPD</td>
|
||||
<td>Postfix policy service for greylisting, whitelisting, blacklists, throttling, etc</td>
|
||||
<td>NO (listen on <code>127.0.0.1</code> by default)</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>7778</td>
|
||||
<td></td>
|
||||
<td>iRedAPD</td>
|
||||
<td><a href="https://en.wikipedia.org/wiki/Sender_Rewriting_Scheme">SRS</a> sender address rewritting.</td>
|
||||
<td>NO (listen on <code>127.0.0.1</code> by default)</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>7779</td>
|
||||
<td></td>
|
||||
<td>iRedAPD</td>
|
||||
<td><a href="https://en.wikipedia.org/wiki/Sender_Rewriting_Scheme">SRS</a> recipient address rewritting.</td>
|
||||
<td>NO (listen on <code>127.0.0.1</code> by default)</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>7790</td>
|
||||
<td>http</td>
|
||||
<td>mlmmjadmin</td>
|
||||
<td>RESTful API server used to manage mlmmj mailing lists. Introduced in iRedMail-0.9.8.</td>
|
||||
<td>NO (listen on <code>127.0.0.1</code> by default)</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>7791</td>
|
||||
<td>http</td>
|
||||
<td>iredadmin</td>
|
||||
<td>iRedAdmin (standalone uwsgi instance). Introduced in iRedMail-0.9.9.</td>
|
||||
<td>NO (listen on <code>127.0.0.1</code> by default)</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>20000</td>
|
||||
<td></td>
|
||||
<td>SOGo</td>
|
||||
<td>SOGo groupware</td>
|
||||
<td>NO (listen on <code>127.0.0.1</code> by default)</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>11211</td>
|
||||
<td></td>
|
||||
<td>Memcached</td>
|
||||
<td>A distributed, high performance memory object caching system. Currently used by only SOGo Groupware.</td>
|
||||
<td>NO (listen on <code>127.0.0.1</code> by default)</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>12340</td>
|
||||
<td></td>
|
||||
<td>Dovecot</td>
|
||||
<td>Dovecot quota status. Introduced in iRedMail-1.0.</td>
|
||||
<td>NO (listen on <code>127.0.0.1</code> by default)</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>24242</td>
|
||||
<td></td>
|
||||
<td>Dovecot</td>
|
||||
<td>Dovecot service status. Introduced in iRedMail-0.9.8.</td>
|
||||
<td>NO (listen on <code>127.0.0.1</code> by default)</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>19999</td>
|
||||
<td></td>
|
||||
<td>Netdata</td>
|
||||
<td>Netdata monitor. Introduced in iRedMail-0.9.8.</td>
|
||||
<td>NO (listen on <code>127.0.0.1</code> by default)</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<div class="admonition note">
|
||||
<p class="admonition-title">Note</p>
|
||||
<ul>
|
||||
<li>
|
||||
<p>In iRedMail-0.9.2 and earlier releases, Policyd or Cluebringer listens on
|
||||
port 10031. They have been removed in iRedMail-0.9.3, and replaced by
|
||||
iRedAPD.</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>Port 465, a.k.a. SMTP over SSL, has been deprecated for years. Please use
|
||||
port 587 instead.</p>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="footer">
|
||||
<p style="text-align: center; color: grey;">All documents are available in <a href="https://github.com/iredmail/docs/">GitHub 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>
|
||||
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,114 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||
<title># Major open source softwares used in iRedMail
|
||||
</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;"
|
||||
/>
|
||||
<span>iRedMail</span>
|
||||
</a> // <a href="./index.html">Document Index</a>
|
||||
</div>
|
||||
|
||||
<h1 id="major-open-source-softwares-used-in-iredmail">Major open source softwares used in iRedMail</h1>
|
||||
<div class="toc">
|
||||
<ul>
|
||||
<li><a href="#major-open-source-softwares-used-in-iredmail">Major open source softwares used in iRedMail</a><ul>
|
||||
<li><a href="#used-components">Used Components</a></li>
|
||||
<li><a href="#the-big-picture">The Big Picture</a></li>
|
||||
<li><a href="#mail-flow-of-inbound-emails">Mail Flow of Inbound Emails</a></li>
|
||||
<li><a href="#mail-flow-of-outbound-emails">Mail Flow of Outbound Emails</a></li>
|
||||
<li><a href="#see-also">See also</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<h2 id="used-components">Used Components</h2>
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Name</th>
|
||||
<th>Comment</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td><a href="http://www.postfix.org">Postfix</a></td>
|
||||
<td>Mail Transfer Agent (MTA)</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="http://www.dovecot.org">Dovecot</a></td>
|
||||
<td>POP3, IMAP and Managesieve server</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="http://www.nginx.org">Nginx</a>, <a href="http://nginx.org">Nginx</a></td>
|
||||
<td>Web server</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="http://www.openldap.org">OpenLDAP</a>, <a href="http://www.openbsd.org/cgi-bin/man.cgi/OpenBSD-current/man8/ldapd.8?query=ldapd&arch=i386">ldapd(8)</a></td>
|
||||
<td>LDAP server, used for storing mail accounts (optional)</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="http://www.mysql.com">MySQL</a>, <a href="https://mariadb.org">MariaDB</a>, <a href="http://www.postgresql.org">PostgreSQL</a></td>
|
||||
<td>SQL server used to store application data. Could be used to store mail accounts too.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="http://mlmmj.org">mlmmj</a></td>
|
||||
<td>Mailing list manager. Shipped in iRedMail-0.9.8 and later releases.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="http://www.amavis.org">Amavisd-new</a></td>
|
||||
<td>Interface between Postfix and SpamAssassin, ClamAV.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="http://spamassassin.apache.org">SpamAssassin</a></td>
|
||||
<td>Content-based spam scanner</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="http://www.clamav.net/">ClamAV</a></td>
|
||||
<td>Virus scanner</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="http://roundcube.net">Roundcube webmail</a></td>
|
||||
<td>Webmail (PHP)</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="http://sogo.nu">SOGo Groupware</a></td>
|
||||
<td>A groupware which provides calendar (CalDAV), contact (CardDAV), tasks and ActiveSync services</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="http://www.fail2ban.org">Fail2ban</a></td>
|
||||
<td>Scans log files and bans IPs that show the malicious signs</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="https://github.com/iredmail/iRedAPD/">iRedAPD</a></td>
|
||||
<td>A simple postfix policy server developed by iRedMail team, with SRS (Sender Rewrite Scheme) support.</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<h2 id="the-big-picture">The Big Picture</h2>
|
||||
<p><img alt="" src="./images/big.picture.png" /></p>
|
||||
<h2 id="mail-flow-of-inbound-emails">Mail Flow of Inbound Emails</h2>
|
||||
<p><img alt="" src="./images/flow.inbound.png" /></p>
|
||||
<h2 id="mail-flow-of-outbound-emails">Mail Flow of Outbound Emails</h2>
|
||||
<p><img alt="" src="./images/flow.outbound.png" /></p>
|
||||
<h2 id="see-also">See also</h2>
|
||||
<ul>
|
||||
<li><a href="./file.locations.html">Locations of configuration and log files of major components</a></li>
|
||||
<li><a href="./network.ports.html">Which network ports are open by iRedMail</a></li>
|
||||
</ul>
|
||||
|
||||
<div class="footer">
|
||||
<p style="text-align: center; color: grey;">All documents are available in <a href="https://github.com/iredmail/docs/">GitHub 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>
|
||||
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,72 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||
<title># Why build your own mail server instead of outsourcing to external entities
|
||||
</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;"
|
||||
/>
|
||||
<span>iRedMail</span>
|
||||
</a> // <a href="./index.html">Document Index</a>
|
||||
</div>
|
||||
|
||||
<h1 id="why-build-your-own-mail-server-instead-of-outsourcing-to-external-entities">Why build your own mail server instead of outsourcing to external entities</h1>
|
||||
<p>Quote from <a href="http://www.spamhaus.org/news/article/719/a-survival-guide-for-the-small-mail-server">Spamhaus news article</a>:</p>
|
||||
<blockquote>
|
||||
<p>outsourcing (the mail service) does not come without costs, even when the
|
||||
outsourced service appears to be "free". Hidden costs include:</p>
|
||||
<ul>
|
||||
<li>
|
||||
<p>Another organization can see the content of all messages. In some cases,
|
||||
the contents of messages are stored on the outsourcing company's servers
|
||||
indefinitely. External access to unencrypted emails poses privacy and
|
||||
confidentiality issues. Furthermore, the outsourcing company may be located
|
||||
in another country and be subjected to different regulations and obligations.</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>In some cases, the outsourcing company's terms and conditions allow it to
|
||||
search the content of emails to aid in targeting advertising, which poses
|
||||
even greater privacy and confidentiality problems.</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>The organization no longer has control of its own email security.
|
||||
Server-based encryption and authentication is managed by the outsourcing
|
||||
company, requiring end-to-end encryption for sensitive communications.</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>Large companies with many customers are often a target of cybercrime
|
||||
attacks aimed at stealing customer data, and some of these attacks have
|
||||
succeeded.</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>Inspection of SMTP transaction logs may be impossible for the end user.
|
||||
Troubleshooting failed deliveries and other email problems requires
|
||||
interacting with an external support desk. Support desks are sometimes
|
||||
slow to respond. First-line support, in particular, might lack the
|
||||
training and access to fix any but simple problems, requiring escalation
|
||||
and further delays.</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>Sharing a mail server with other organizations can cause delivery issues
|
||||
when a user at another organization sends spam through that mail server.
|
||||
When the outsourcing company fails to detect and block spam, or is slow to
|
||||
terminate service to spammers, the likelihood of problems increases
|
||||
substantially.</p>
|
||||
</li>
|
||||
</ul>
|
||||
</blockquote>
|
||||
|
||||
<div class="footer">
|
||||
<p style="text-align: center; color: grey;">All documents are available in <a href="https://github.com/iredmail/docs/">GitHub 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>
|
||||
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,9 @@
|
|||
<head>
|
||||
<head>
|
||||
<meta http-equiv="refresh" content="5; url='/'">
|
||||
<title>Page not found</title>
|
||||
</head>
|
||||
<body>
|
||||
<p>The page you're looking for does not exist. Redirecting to home page in 5 seconds.</p>
|
||||
</body>
|
||||
</head>
|
|
@ -0,0 +1,460 @@
|
|||
body{
|
||||
margin: 0 auto;
|
||||
font-family: 'PT Sans', Georgia, Palatino, serif;
|
||||
line-height: 1;
|
||||
max-width: 75%;
|
||||
padding: 30px 0px 100px 0px;
|
||||
}
|
||||
h1, h2, h3, h4, h5 {
|
||||
font-weight: bold;
|
||||
margin-top: 24px;
|
||||
margin-bottom: 24px;
|
||||
}
|
||||
p {
|
||||
margin-bottom: 4px;
|
||||
padding: 0;
|
||||
}
|
||||
h1 { font-size: 40px; }
|
||||
h2 { font-size: 36px; padding-top: 24px;}
|
||||
h3 { font-size: 24px; }
|
||||
h4 { font-size: 21px; }
|
||||
h5 { font-size: 18px; }
|
||||
|
||||
h1 code { font-size: 40px; }
|
||||
h2 code { font-size: 36px; }
|
||||
h3 code { font-size: 24px; }
|
||||
h4 code { font-size: 21px; }
|
||||
h5 code { font-size: 18px; }
|
||||
|
||||
a {
|
||||
color: #0099ff;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
vertical-align: baseline;
|
||||
text-decoration: none;
|
||||
}
|
||||
a:hover {
|
||||
text-decoration: none;
|
||||
color: #ff6600;
|
||||
}
|
||||
a:visited {
|
||||
color: purple;
|
||||
}
|
||||
ul, ol {
|
||||
padding-left: 30px;
|
||||
margin: 0;
|
||||
}
|
||||
li {
|
||||
line-height: 24px;
|
||||
}
|
||||
li ul, li ul {
|
||||
margin-left: 24px;
|
||||
}
|
||||
p, ul, ol {
|
||||
font-size: 16px;
|
||||
line-height: 24px;
|
||||
/*max-width: 540px;*/
|
||||
}
|
||||
pre {
|
||||
padding: 0px 24px;
|
||||
/*max-width: 800px;*/
|
||||
white-space: pre-wrap;
|
||||
}
|
||||
code {
|
||||
font-family: Consolas, Monaco, Andale Mono, monospace;
|
||||
line-height: 1.5;
|
||||
font-size: 13px;
|
||||
}
|
||||
h3 code { font-size: 18px; }
|
||||
aside {
|
||||
display: block;
|
||||
float: right;
|
||||
/*width: 390px;*/
|
||||
}
|
||||
blockquote {
|
||||
border-left: 0.5em solid #eee;
|
||||
padding: 0 1em;
|
||||
margin-left:0;
|
||||
font-style: italic;
|
||||
/*max-width: 476px;*/
|
||||
}
|
||||
blockquote cite {
|
||||
font-size:14px;
|
||||
line-height:20px;
|
||||
color:#bfbfbf;
|
||||
}
|
||||
blockquote cite:before {
|
||||
content: '\2014 \00A0';
|
||||
}
|
||||
|
||||
blockquote p {
|
||||
color: #666;
|
||||
/*max-width: 460px;*/
|
||||
}
|
||||
hr {
|
||||
/*width: 540px;*/
|
||||
text-align: left;
|
||||
margin: 0 auto 0 0;
|
||||
color: #999;
|
||||
}
|
||||
|
||||
/* Code below this line is copyright Twitter Inc. */
|
||||
|
||||
button, .button, input, select, textarea {
|
||||
font-size: 100%;
|
||||
margin: 0;
|
||||
vertical-align: baseline;
|
||||
vertical-align: middle;
|
||||
}
|
||||
button, .button, input {
|
||||
line-height: normal;
|
||||
overflow: visible;
|
||||
}
|
||||
button::-moz-focus-inner, .button::-moz-focus-inner, input::-moz-focus-inner {
|
||||
border: 0;
|
||||
padding: 0;
|
||||
}
|
||||
button,
|
||||
.button,
|
||||
input[type="button"],
|
||||
input[type="reset"],
|
||||
input[type="submit"] {
|
||||
cursor: pointer;
|
||||
-webkit-appearance: button;
|
||||
}
|
||||
input[type=checkbox], input[type=radio] {
|
||||
cursor: pointer;
|
||||
}
|
||||
/* override default chrome & firefox settings */
|
||||
input:not([type="image"]), textarea {
|
||||
-webkit-box-sizing: content-box;
|
||||
-moz-box-sizing: content-box;
|
||||
box-sizing: content-box;
|
||||
}
|
||||
|
||||
input[type="search"] {
|
||||
-webkit-appearance: textfield;
|
||||
-webkit-box-sizing: content-box;
|
||||
-moz-box-sizing: content-box;
|
||||
box-sizing: content-box;
|
||||
}
|
||||
input[type="search"]::-webkit-search-decoration {
|
||||
-webkit-appearance: none;
|
||||
}
|
||||
label,
|
||||
input,
|
||||
select,
|
||||
textarea {
|
||||
font-family: 'PT Sans', Georgia, Palatino, serif;
|
||||
font-size: 13px;
|
||||
font-weight: normal;
|
||||
line-height: normal;
|
||||
margin-bottom: 18px;
|
||||
}
|
||||
input[type=checkbox], input[type=radio] {
|
||||
cursor: pointer;
|
||||
margin-bottom: 0;
|
||||
}
|
||||
input[type=text],
|
||||
input[type=password],
|
||||
textarea,
|
||||
select {
|
||||
display: inline-block;
|
||||
width: 210px;
|
||||
padding: 4px;
|
||||
font-size: 13px;
|
||||
font-weight: normal;
|
||||
line-height: 18px;
|
||||
height: 18px;
|
||||
color: #808080;
|
||||
border: 1px solid #ccc;
|
||||
-webkit-border-radius: 3px;
|
||||
-moz-border-radius: 3px;
|
||||
border-radius: 3px;
|
||||
}
|
||||
select, input[type=file] {
|
||||
height: 27px;
|
||||
line-height: 27px;
|
||||
}
|
||||
textarea {
|
||||
height: auto;
|
||||
}
|
||||
|
||||
/* grey out placeholders */
|
||||
:-moz-placeholder {
|
||||
color: #bfbfbf;
|
||||
}
|
||||
::-webkit-input-placeholder {
|
||||
color: #bfbfbf;
|
||||
}
|
||||
|
||||
input[type=text],
|
||||
input[type=password],
|
||||
select,
|
||||
textarea {
|
||||
-webkit-transition: border linear 0.2s, box-shadow linear 0.2s;
|
||||
-moz-transition: border linear 0.2s, box-shadow linear 0.2s;
|
||||
transition: border linear 0.2s, box-shadow linear 0.2s;
|
||||
-webkit-box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.1);
|
||||
-moz-box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.1);
|
||||
box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.1);
|
||||
}
|
||||
input[type=text]:focus, input[type=password]:focus, textarea:focus {
|
||||
outline: none;
|
||||
border-color: rgba(82, 168, 236, 0.8);
|
||||
-webkit-box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.1), 0 0 8px rgba(82, 168, 236, 0.6);
|
||||
-moz-box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.1), 0 0 8px rgba(82, 168, 236, 0.6);
|
||||
box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.1), 0 0 8px rgba(82, 168, 236, 0.6);
|
||||
}
|
||||
|
||||
/* buttons */
|
||||
button, .button {
|
||||
display: inline-block;
|
||||
padding: 4px 14px;
|
||||
font-family: 'PT Sans', Georgia, Palatino, serif;
|
||||
font-size: 13px;
|
||||
line-height: 18px;
|
||||
-webkit-border-radius: 4px;
|
||||
-moz-border-radius: 4px;
|
||||
border-radius: 4px;
|
||||
-webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);
|
||||
-moz-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);
|
||||
box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);
|
||||
background-color: #0064cd;
|
||||
background-repeat: repeat-x;
|
||||
background-image: -khtml-gradient(linear, left top, left bottom, from(#049cdb), to(#0064cd));
|
||||
background-image: -moz-linear-gradient(top, #049cdb, #0064cd);
|
||||
background-image: -ms-linear-gradient(top, #049cdb, #0064cd);
|
||||
background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #049cdb), color-stop(100%, #0064cd));
|
||||
background-image: -webkit-linear-gradient(top, #049cdb, #0064cd);
|
||||
background-image: -o-linear-gradient(top, #049cdb, #0064cd);
|
||||
background-image: linear-gradient(top, #049cdb, #0064cd);
|
||||
color: #fff;
|
||||
text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
|
||||
border: 1px solid #004b9a;
|
||||
border-bottom-color: #003f81;
|
||||
-webkit-transition: 0.1s linear all;
|
||||
-moz-transition: 0.1s linear all;
|
||||
transition: 0.1s linear all;
|
||||
border-color: #0064cd #0064cd #003f81;
|
||||
border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
|
||||
}
|
||||
button:hover, .button:hover {
|
||||
color: #fff;
|
||||
background-position: 0 -15px;
|
||||
text-decoration: none;
|
||||
}
|
||||
button:active, .button:active {
|
||||
-webkit-box-shadow: inset 0 3px 7px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);
|
||||
-moz-box-shadow: inset 0 3px 7px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);
|
||||
box-shadow: inset 0 3px 7px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);
|
||||
}
|
||||
button::-moz-focus-inner, .button::-moz-focus-inner {
|
||||
padding: 0;
|
||||
border: 0;
|
||||
}
|
||||
|
||||
/* Customizations */
|
||||
h2, h3, h4, h5 { padding-top: 20px; }
|
||||
.footer { padding-top: 40px; }
|
||||
pre, code {
|
||||
background: #f5f5f5;
|
||||
border: 1px solid #ccc;
|
||||
border-radius: 2px;
|
||||
padding: 5px 10px 5px 10px;
|
||||
word-wrap: normal;
|
||||
font-size: 14px;
|
||||
line-height: 25px;
|
||||
}
|
||||
code { padding: 1px 5px 1px 5px; }
|
||||
pre>code {
|
||||
margin: 0;
|
||||
border: 0;
|
||||
padding: 5px 10px 5px 0px;
|
||||
}
|
||||
|
||||
/* A fixed navigation bar */
|
||||
#navigation {
|
||||
/*position: fixed;*/
|
||||
top: 0;
|
||||
width: 70%;
|
||||
height: 35px;
|
||||
/*
|
||||
text-align: center;
|
||||
*/
|
||||
padding-top: 15px;
|
||||
/*
|
||||
color: #ffffff;
|
||||
*/
|
||||
/* Adds shadow to the bottom of the bar */
|
||||
/*
|
||||
-webkit-box-shadow: 0px 0px 8px 0px #000000;
|
||||
-moz-box-shadow: 0px 0px 8px 0px #000000;
|
||||
box-shadow: 0px 0px 8px 0px #000000;
|
||||
*/
|
||||
/* Adds the transparent background */
|
||||
/*
|
||||
background-color: #000000;
|
||||
*/
|
||||
}
|
||||
|
||||
#navigation a {
|
||||
font-size: 20px;
|
||||
/*
|
||||
padding-left: 15px;
|
||||
padding-right: 15px;
|
||||
*/
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
#navigation a:hover {
|
||||
color: #0099ff;
|
||||
}
|
||||
|
||||
th { font-style: bold; text-align: left; }
|
||||
|
||||
.red { color: red; }
|
||||
/*
|
||||
code.bash { background-color: green; color: white; }
|
||||
*/
|
||||
pre { margin-left: 30px; }
|
||||
p, ul, ol { font-size: 17px; }
|
||||
li { line-height: 26px; }
|
||||
|
||||
.f_left { float: left; }
|
||||
.f_right { float: right; }
|
||||
|
||||
/*
|
||||
.note {
|
||||
background: #e7f2fa;
|
||||
padding: 12px;
|
||||
line-height: 24px;
|
||||
margin-bottom: 24px;
|
||||
}
|
||||
.note .admonition-title {
|
||||
background: #6ab0de;
|
||||
}
|
||||
.note p:last-child {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
*/
|
||||
|
||||
.note, .attention, .caution, .danger, .error, .hint, .important, .tip, .warning, .seealso, .admonition-todo {
|
||||
padding: 12px;
|
||||
line-height: 24px;
|
||||
margin-bottom: 24px;
|
||||
background: #e7f2fa;
|
||||
}
|
||||
|
||||
.admonition { margin-top: 20px; }
|
||||
.admonition-title {
|
||||
font-weight: bold;
|
||||
display: block;
|
||||
color: #fff;
|
||||
margin: -12px;
|
||||
padding: 6px 12px;
|
||||
margin-bottom: 12px
|
||||
}
|
||||
|
||||
/*
|
||||
.caution .admonition-title,
|
||||
.danger .admonition-title,
|
||||
.error .admonition-title,
|
||||
.hint .admonition-title,
|
||||
.important .admonition-title,
|
||||
.tip .admonition-title,
|
||||
.seealso .admonition-title,
|
||||
.admonition-todo .admonition-title
|
||||
*/
|
||||
|
||||
.note .admonition-title { background: #6ab0de; }
|
||||
.warning .admonition-title { background: #f0b37e; }
|
||||
.attention .admonition-title { display: none; }
|
||||
.attention { background: #e7f2fa; }
|
||||
.warning { background: #FFFFE1; }
|
||||
.attention p { margin-top: 4px; }
|
||||
|
||||
/* Table */
|
||||
table { border: 1px solid black; border-collapse: collapse;}
|
||||
th { padding: 5px 10px 5px 10px; }
|
||||
td { padding: 5px 10px 5px 10px; }
|
||||
th, td { border: 1px solid black; }
|
||||
|
||||
button, .button { font-size: 16px; padding: 5px 5px 5px 5px; }
|
||||
|
||||
/* Style for API document */
|
||||
.api {
|
||||
line-height: 18px;
|
||||
padding: 3px 12px 0px 0px;
|
||||
margin-top: 0px;
|
||||
margin-bottom: 0px;
|
||||
}
|
||||
.api .admonition-title {
|
||||
background-color: white;
|
||||
padding: 0px 12px 0px 5px;
|
||||
}
|
||||
|
||||
.api code.url { background-color: white; color: black; display: inline-block; }
|
||||
.api code.get,
|
||||
.api code.post,
|
||||
.api code.put,
|
||||
.api code.delete,
|
||||
.api code.has_params,
|
||||
.api code.has_params_throttle,
|
||||
.api code.has_params_greylisting,
|
||||
.api code.has_params_greylisting_whitelists,
|
||||
.api code.has_params_spampolicy,
|
||||
.api code.has_params_wblist
|
||||
{
|
||||
display: inline-block;
|
||||
width: 60px;
|
||||
text-align: center;
|
||||
}
|
||||
.api code.get { background-color: #0f6ab4; }
|
||||
.api code.post { background-color: #10a54a; }
|
||||
.api code.put { background-color: #c5862b; padding-left: 5px; padding-right: 5px;}
|
||||
.api code.delete { background-color: #a41e22; }
|
||||
.api code.upcoming { background-color: #0f6ab4; text-transform: uppercase; font-size: 12px; }
|
||||
.api code.new { background-color: #10a54a; text-transform: uppercase; }
|
||||
.api code.has_params,
|
||||
.api code.has_params_throttle,
|
||||
.api code.has_params_greylisting,
|
||||
.api code.has_params_greylisting_whitelists,
|
||||
.api code.has_params_spampolicy,
|
||||
.api code.has_params_wblist
|
||||
{
|
||||
background-color: #0064cd;
|
||||
font-size: 12px;
|
||||
float: right;
|
||||
width: auto;
|
||||
cursor: pointer;
|
||||
}
|
||||
.api code.comment {
|
||||
color: black;
|
||||
background-color: white;
|
||||
border: 0px;
|
||||
font-family: 'PT Sans', Georgia, Palatino, serif;
|
||||
font-size: 16px;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
.api table {
|
||||
border: 0px;
|
||||
border-collapse: collapse;
|
||||
/*
|
||||
width: 100%;
|
||||
*/
|
||||
text-align: left;
|
||||
line-height: 30px;
|
||||
vertical-align: middle;
|
||||
margin-bottom: 20px;
|
||||
}
|
||||
.api table thead { background-color: #ccc; }
|
||||
.api th { padding: 0px 10px 0px 10px; }
|
||||
.api td { padding: 0px 10px 0px 10px; }
|
||||
/* END style for API Document */
|
||||
|
||||
ul .checklist {
|
||||
list-style-type: none;
|
||||
padding-left: 5px;
|
||||
}
|
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 1.1 KiB |
After Width: | Height: | Size: 31 KiB |
After Width: | Height: | Size: 31 KiB |
After Width: | Height: | Size: 30 KiB |
After Width: | Height: | Size: 18 KiB |
After Width: | Height: | Size: 16 KiB |
After Width: | Height: | Size: 22 KiB |
After Width: | Height: | Size: 36 KiB |
After Width: | Height: | Size: 68 KiB |
After Width: | Height: | Size: 19 KiB |
After Width: | Height: | Size: 47 KiB |
After Width: | Height: | Size: 50 KiB |
After Width: | Height: | Size: 43 KiB |
After Width: | Height: | Size: 25 KiB |
After Width: | Height: | Size: 31 KiB |