conf | ||
management | ||
setup | ||
tests | ||
tools | ||
.editorconfig | ||
.gitignore | ||
CHANGELOG.md | ||
CODE_OF_CONDUCT.md | ||
CONTRIBUTING.md | ||
LICENSE | ||
README.md | ||
security.md | ||
Vagrantfile |
Mail-in-a-Box with Quotas
This is an experimental implementation of Mail-in-a-box with quota support.
Quotas can be set and viewed in the control panel
To set quotas from the command line, use:
tools/mail.py user quota <email> <quota>
To set the system default quota for new users, use:
tools/mail.py system default-quota <quota>
Mailbox size recalculation by Dovecot can be forced using the command:
doveadm quota recalc -A
Please report any bugs on github.
Installing v0.40-quota
Follow the directions below for installing from a repository except clone from this repository instead of the official one.
Upgrading v0.40 to v.0.40-quota
This is experimental software. You have been warned.
-
Rename your
mailinabox
directory to something likemiab.old
-
Clone this repository using:
git clone https://github.com/jrsupplee/mailinabox.git
-
cd into
mailinabox
and runsetup/start.sh
with root privileges. On occasion there are lock errors when updatingMunin
. Just re-runsetup/start.sh
until the error does not occur. -
Optionally execute
sudo doveadm quota recalc -A
to calculate mailbox sizes. If this is not done, a mailbox's size will be recalculated when mail is delivered to it.
Upgrading v.0.40-quota to a New Version
-
Remember that this is experimental software and review the changes in the repository.
-
cd
into themailinabox
directory. -
Execute
git pull
to download the latest changes. -
Execute
setup/start.sh
with root privileges.
Todo
-
Allow Trash to have a grace percentage to allow users whose quota is full to delete messages.
-
Allow configuration of default quota value on installation.
Changes
v0.40-quota-0.13-alpha
-
Add a
default-quota
setting insettings.yaml
. -
Add input for setting quota when entering a new user in control panel.
-
Modify
tools/mail.py
to allow for setting and getting the default system quota. -
Modify
tools/mail.py
to allow for getting a user's quota setting. -
Modify the mail users list in control panel to display percentage of quota used.
v0.40-quota-0.12-alpha
- Update README
v0.40-quota-0.11-alpha
- Read latest version from this repository not the Mail-in-a-Box master repository
v0.40-quota-0.1-alpha
- First experimental release of Mail-in-a-Box for quotas.
- Quotas are working and there is basic support in the control panel and
tools/mail.py
.
Reference Documents
- https://blog.sys4.de/postfix-dovecot-mailbox-quota-en.html
- https://linuxize.com/post/install-and-configure-postfix-and-dovecot/
[BEGIN Official README]
Mail-in-a-Box
By @JoshData and contributors.
Mail-in-a-Box helps individuals take back control of their email by defining a one-click, easy-to-deploy SMTP+everything else server: a mail server in a box.
Please see https://mailinabox.email for the project's website and setup guide!
Our goals are to:
- Make deploying a good mail server easy.
- Promote decentralization, innovation, and privacy on the web.
- Have automated, auditable, and idempotent configuration.
- Not make a totally unhackable, NSA-proof server.
- Not make something customizable by power users.
Additionally, this project has a Code of Conduct, which supersedes the goals above. Please review it when joining our community.
The Box
Mail-in-a-Box turns a fresh Ubuntu 18.04 LTS 64-bit machine into a working mail server by installing and configuring various components.
It is a one-click email appliance. There are no user-configurable setup options. It "just works".
The components installed are:
- SMTP (postfix), IMAP (dovecot), CardDAV/CalDAV (Nextcloud), Exchange ActiveSync (z-push)
- Webmail (Roundcube), static website hosting (nginx)
- Spam filtering (spamassassin), greylisting (postgrey)
- DNS (nsd4) with SPF, DKIM (OpenDKIM), DMARC, DNSSEC, DANE TLSA, and SSHFP records automatically set
- Backups (duplicity), firewall (ufw), intrusion protection (fail2ban), system monitoring (munin)
It also includes:
- A control panel and API for adding/removing mail users, aliases, custom DNS records, etc. and detailed system monitoring.
For more information on how Mail-in-a-Box handles your privacy, see the security details page.
Installation
See the setup guide for detailed, user-friendly instructions.
For experts, start with a completely fresh (really, I mean it) Ubuntu 18.04 LTS 64-bit machine. On the machine...
Clone this repository:
$ git clone https://github.com/mail-in-a-box/mailinabox
$ cd mailinabox
Optional: Download Josh's PGP key and then verify that the sources were signed by him:
$ curl -s https://keybase.io/joshdata/key.asc | gpg --import
gpg: key C10BDD81: public key "Joshua Tauberer <jt@occams.info>" imported
$ git verify-tag v0.40
gpg: Signature made ..... using RSA key ID C10BDD81
gpg: Good signature from "Joshua Tauberer <jt@occams.info>"
gpg: WARNING: This key is not certified with a trusted signature!
gpg: There is no indication that the signature belongs to the owner.
Primary key fingerprint: 5F4C 0E73 13CC D744 693B 2AEA B920 41F4 C10B DD81
You'll get a lot of warnings, but that's OK. Check that the primary key fingerprint matches the fingerprint in the key details at https://keybase.io/joshdata and on his personal homepage. (Of course, if this repository has been compromised you can't trust these instructions.)
Checkout the tag corresponding to the most recent release:
$ git checkout v0.40
Begin the installation.
$ sudo setup/start.sh
For help, DO NOT contact Josh directly --- I don't do tech support by email or tweet (no exceptions).
Post your question on the discussion forum instead, where maintainers and Mail-in-a-Box users may be able to help you.
Contributing and Development
Mail-in-a-Box is an open source project. Your contributions and pull requests are welcome. See CONTRIBUTING to get started.
The Acknowledgements
This project was inspired in part by the "NSA-proof your email in 2 hours" blog post by Drew Crawford, Sovereign by Alex Payne, and conversations with @shevski, @konklone, and @GregElin.
Mail-in-a-Box is similar to iRedMail and Modoboa.
The History
- In 2007 I wrote a relatively popular Mozilla Thunderbird extension that added client-side SPF and DKIM checks to mail to warn users about possible phishing: add-on page, source.
- In August 2013 I began Mail-in-a-Box by combining my own mail server configuration with the setup in "NSA-proof your email in 2 hours" and making the setup steps reproducible with bash scripts.
- Mail-in-a-Box was a semifinalist in the 2014 Knight News Challenge, but it was not selected as a winner.
- Mail-in-a-Box hit the front page of Hacker News in April 2014, September 2014, May 2015, and November 2016.
- FastCompany mentioned Mail-in-a-Box a roundup of privacy projects on June 26, 2015.