4 ms·
Email receiving is easier than email sending. Sending needs to consider IP reputations, etc so that emails don't go to the spam on the recipients side. For rece
by harryzcy 3y ago
Email receiving is easier than email sending. Sending needs to consider IP reputations, etc so that emails don't go to the spam on the recipients side. For receiving, there are fewer moving parts. As long as the DNS is correct, an email will land in AWS, and it will be in DB
- Kwpolska 3y agoThe SMTP parts of receiving e-mail is simple, sure. But then your solution puts 6 AWS services between the SMTP server and the user, with four of them (SES, S3, Lambda, DynamoDB) critical for the e-mail to be seen by the user. What if SES calls your lambda before the e-mail contents are fully saved to S3? You seem to be loading the email contents into memory, what if you get a large attachment and run out of RAM? The function that saves data to DynamoDB handles errors by printing them and returning, without any retries or alerts, so it’s really easy for emails to get lost if DynamoDB goes down for even a second. What if you get a ton of spam (and you do get a lot of spam with any public e-mail address), and you rack up bazillions of dollars in bills, since SES charges you for every email? How many more holes could I find if I spent more than 10 minutes skimming the code and thinking what could go wrong? This might work as an experiment or for some automated service, but it’s far from something that should be used anywhere near production or personal e-mail accounts.