SMTP to SendGrid Gateway
Forward emails from SMTP requests to the Sendgrid API. Useful when the cloud provider does not allow outbound connections on ports 25, 465, 587.
The Story
It all started with this:
Google Compute Engine does not allow outbound connections on ports 25, 465, and 587. By default, these outbound SMTP ports are blocked because of the large amount of abuse these ports are susceptible to. In addition, having a trusted third-party provider such as SendGrid, Mailgun, or Mailjet relieves Compute Engine and you from maintaining IP reputation with your receivers.
And since we were on a MVP startup weekend working on our next product killbug, we tweet this:
GKE does not allow outbound connections on ports 25, 465, 587. Keycloak requires SMTP. I need to build a SMTP to SendGrid API gateway.
Here we are.
Run
Since this server should run as a sidekick of the main application (thus on the same machine or the same pod) authorization was not required.
docker run -it -p 25:25 -e SENDGRID_API=XXXXXXX fgribreau/smtp-to-sendgrid-gateway
Configuration - environment variables
SENDGRID_API
(required): sendgrid API tokenSMTP_PORT
(optional) Port to listen (default: 25)
Credits