codeforkansascity / meep-backend

MIT License
8 stars 11 forks source link

Mail server #32

Open galbwe opened 5 years ago

galbwe commented 5 years ago

Create a service for sending contributors emails when there is a bug. There is a way to do this within a flask app, as detailed in this article. Rather than including the email service in the api, it would be nice to have a service running in its own docker container that can accept a request from any other container when there is a bug, and send an email with information about which container experienced an error, as well as the error message itself. Paul suggested the mailgun api as a place to start. Another option is to run our own SMTP server in a docker container using this python module. It should also be possible to do this with an nginx server. You are free to choose whatever method suits you, as long as it runs in a docker container.

aaronshivers commented 5 years ago

@galbwe I set up an api for transactional emails.

Everything seems to work, but can you check it out and see if I need to change anything before adding it to meep?

https://github.com/aaronshivers/email

galbwe commented 5 years ago

Nice work! That was really fast. I was able to follow your readme without any issues. You may want to provide an explicit command for the last step of the readme where the POST endpoint is tested. I ended up doing

curl -d '{"email":"myemail@someserver.com", "message":"this is a test"}' -H "Content-Type: application/json" -X POST http://localhost:49160/

What is the pricing for postmark like once we get out of development?

Is there any chance you can modify this to keep a list of contributors' emails and send one email to each contributor when a post request for an error message is received? We will probably also want CRUD endpoints for managing contributors on file.

aaronshivers commented 5 years ago

Thanks.

I'll update the instructions with your suggestion.

The pricing for postmark is free under 100 emails per month, then $10 per month for up to 10000 emails. https://postmarkapp.com/pricing

I'll work on setting up a users model and routes.

galbwe commented 5 years ago

@aaronshivers Thanks for the info. I reached out to Tom to try and get an estimate of our monthly budget. If we end up having to go with the free version, maybe we can make it work by sending an email to a gmail account that forwards it to all the contributors.

aaronshivers commented 5 years ago

@galbwe We might have to shop around a little to see if any other providers are less expensive, or have larger free plans.

I just updated the email application with CRUD functionality for users.

If I merge the email application, where do you want me to put it, or is there a better way of doing it?

Maybe this? https://git-scm.com/book/en/v2/Git-Tools-Submodules

galbwe commented 5 years ago

@aaronshivers You can either put it in its own folder in meep-backend called "email" or something similar, or keep it where it is, build a docker image, and push it to docker hub. Then go and edit the docker-compose.yml file in meep-backend to pull the image and build a container from it.