1. Install prerequisites from your package manager of choice: - Thunderbird - Parity/Geth (instructions will reference Parity) - Haskell Stack 2. Sync Parity with Ropsten network (--chain ropsten) and create a new account 3. Ensure there is Ether in your wallet - This can be done easily by getting the Parity Ethereum Integration Chrome Extension (https://chrome.google.com/webstore/detail/parity-ethereum-integrati/himekenlppkgeaoeddcliojfddemadig) and visiting the Metamask faucet (https://faucet.metamask.io/) 4. Clone the git repo: https://github.com/aputlock/comms.git 5. `cd` into the repo directory and run `stack setup && stack install` - Stack will install binaries to ~/.local/bin; you may want to add this directory to your PATH 6. Publish your contact card to the public transaction log with `comms publish` 7. Follow prompts to create config file. The wallet address will be the one for your Parity account. The ports can be any of your choosing, but note that if you choose one below 1024, the program will need to be run with superuser privileges. 8. After the config file is created, the server will go through with publishing the contact card. This transaction will need to be confirmed in Parity's web interface (http://localhost:8180). Note that this can be avoided by unlocking your Parity account, though this allows all transactions to go through without confirmation. 9. Import someone else's contact card with `comms import`. Full usage instructions can be found with comms -h 10. Run the server with `comms run`. At this point we can connect the mail client. 11. Open Thunderbird and create a new email account. In the pop-up dialog, choose "Skip this and use my existing email". Enter a username, arbitrary but correctly-formatted email address, and password. If it doesn't load automatically, press the "manual config" button on the bottom. Type in "localhost" for both server hostnames, add the ports previously configured with the server, no SSL, and POP3/normal password, and SMTP/no authentication. Press "Re-test" to verify connection to the server, and press Done. 12. Congrats, you should be all set up! You should now be able to send and receive emails over Ethereum! Remember that if your account is not unlocked, you will need to confirm all outgoing messages in Parity's web interface.