Forwarding email, it just keeps breaking!

Popsicle sticks and duct tape for the win! Well, IFTTT and Firebase anyway.

I run an SMTP server so that I can get email at foo@hraban.com (well obviously not foo, but you get what I mean), but I don’t want to run a full on web mail reader that is exposed to the internet. So I just forward incoming email to specific addresses (I am not running an open relay here folks!) to an external email address at a popular free email service.

But this keeps breaking, for one reason or another, because my ISP SMTP server keeps rejecting my outgoing email, but not telling me, so we don’t find out until a friend tells us that email they sent us has bounced – less than ideal.

IFTTT and Firebase to the rescue! I setup a cron job to send an email out to IFTTT, where a recipe triggers that updates a Firebase record with the received time. The cron job also fetches the received time and checks to see that it has not been too long – if it has been, then it fires off a request to the IFTTT Maker channel, which sends a notification to my phone when triggered.