Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feat: Use Gmail to send Email!! 📧 🤯 #271

Open
nelsonic opened this issue Feb 11, 2023 · 0 comments
Open

Feat: Use Gmail to send Email!! 📧 🤯 #271

nelsonic opened this issue Feb 11, 2023 · 0 comments

Comments

@nelsonic
Copy link
Member

It recently occurred to me while reading the swoosh Adapters docs: https://hexdocs.pm/swoosh/Swoosh.Adapters.Gmail.html#content 👀
That I'm over-thinking/complicating things by using AWS SES for sending emails ... 💭

My original reasoning for using SES is/was simple:

  1. A dedicated purpose-built transactional email system that has bounce/failure detection.
  2. Cheapest by far and with a generous "free tier" means we can send 62k emails / month for FREE before paying a penny ... see: https://aws.amazon.com/ses/pricing/
  3. Fully customisable and usable from AWS Lambda, again "free tier".

These reasons are still technically valid. But they miss one important fact: setup complexity!!
We ended up needing a whole separate repo for this: https://github.com/dwyl/aws-ses-lambda
Which we considered reasonably well-documented/maintained ...
But doesn't have an AWS CloudFormation script to automate the setup ...
so it's still a manual process with several steps.

What if there was a dramatically simpler way of doing this?
What if when setting up the auth app for the first time, the admin person
was able to sign-in with their Google Account e.g. hello@app.io
and then the auth app stored a token to send emails on behalf of the admin using their Gmail?!
This would solve so many issues in one step!

Simplified Setup

Consider the list of environment variables on the current /init screen: https://authdemo.fly.dev/init

image

  1. The ADMIN_EMAIL would be populated by this step
    so we would never see the error described in Feat: Auth Setup Wizard #discuss #270
  2. EMAIL_APP_URL would no longer be needed, i.e. no longer a separate app! ref: 2023 Rebuild? email#77

Enhanced Deliverability

Instead of having to waste time setting up all the enhanced verifications in a 3rd party email service,
Google handles the deliverability!!

Replies!!

If people receiving an email from our App want to reply they can, easily!
And that reply ends up in our collective inbox. Not in the AWS SES black hole.

Limitations?

Google has a daily sending limit of 500 emails.

https://www.google.com/search?q=gmail+outbound+sending+limit+daily
image

This is totally fine during MVP, we definitely won't have more than 500 signups per day.
For reference, this is 15,000/month ... any bootstrapped startup would dream of this!!
But what happens on a day that our App is mentioned on HackerNews, ProductHunt, Reddit or YouTube...?
Well, we build a "waiting list" feature dwyl/app#304 that would store all the details and send the emails as soon as resources were available.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant