4 ms·
I've heard that it's possible to strike a balance by self-hosting incoming email and outsourcing outgoing email to Amazon SES. SES provides SMTP credentials whi
by boronine 5y ago
I've heard that it's possible to strike a balance by self-hosting incoming email and outsourcing outgoing email to Amazon SES. SES provides SMTP credentials which should be fairly straightforward to use. Anyone has experience with this kind of setup?
- thenickdude 5y agoSES for outgoing works pretty nicely, I don't think I ran into any gotchas. You can use SES for inbound email receipt as well, but unfortunately there's no POP3/IMAP service (emails just get stored in an S3 bucket). However you can use a Lambda to forward inbound email to a personal email account: https://github.com/arithmetric/aws-lambda-ses-forwarder https://github.com/arithmetric/aws-lambda-ses-forwarder
- boronine 5y agoThanks! Your solution may be best for usability. Researching further I found another solution that is perhaps best for privacy: https://github.com/markushinz/aws-ses-pop3-server https://github.com/markushinz/aws-ses-pop3-server SES -> S3 -> aws-ses-pop3-server -> desktop client with POP3 and SMTP Using this option, email is only really usable from a single device, but it avoids sharing private emails with yet another cloud, especially a free cloud that would share email with advertisers.
- boronine 5y agoEDIT: Wanting a minimal implementation, I instead made a script: 1. List email files in S3 2. For each file, download into a local maildir-style directory, then delete original 3. Use `mutt -f ./maildir` to browse
- thenickdude 5y agoHmm you could probably use the AWS CLI's "aws s3 sync" command for that right? Sounds pretty practical
- boronine 5y agoYou can probably make that work, just have to be careful deleting from S3, make sure to only delete those emails you imported and not accidentally delete an email that arrived during the import process. My personal setup makes heavy use of rclone so I used that instead of awscli: https://gist.github.com/boronine/661fd24ba6671f687ff714969d961b85 https://gist.github.com/boronine/661fd24ba6671f687ff714969d9...