in Jixee Hotfix

Jixee Hotfix: Fixing Transactional Email

Screen Shot 2015-01-26 at 11.34.37 AM

[Editor’s Note: This post is a part of a new series on this blog, called Jixee Hotfix. It will feature real problems that our engineering team encounter on a weekly basis and the solutions they come up with to this it. Posts are written by the engineers encountering the problems. This post was written by our Sr. Engineer, John Sykes.]

This week I was reintroduced into the world of email systems. It’s been about six months since I was hands-on in this area and have returned to adapt it to our changing needs at Jixee.

We recently ran into a couple of challenges where some of our emails were not being delivered to our users. Our test accounts would not get their initial invitations, and then when we’d resend the confirmation email, we’d get both emails at one time. These kinds of situations can be tricky to diagnose and are unique for each mail carrier.

At Jixee, we use a transactional email service called Mandrill. This allows us to track analytics and click rates much easier. But somewhere along this trail of data from this service to the recipient carrier, some crucial emails didn’t always make it through. Some of these missed emails are out of our control if the recipient has very strict security filters set. But other times, it was a perplexing and potentially harmful problem for us.

Screen Shot 2015-01-26 at 11.32.57 AM

We currently use a “pool” of IP addresses provided by Mandrill. This means that the IP addresses going from the service to the recipient mail carriers are shared between users and have established a strong reputation that we can use on our transport line. We hope to reduce end user issues as much as possible so we have added our SMTP server to be used as a fallback. We have also added the ability to resend crucial emails such as email verification and user invites to use said fallback.

What SMTP means for us is that our server’s IP address is involved and when used to send emails, it will establish a reputation of being legitimate. Many carriers will run logic and filtering to determine our new server’s credibility. What kinds of email are being sent? How frequent does this IP address give us emails to deliver? How many users read, delete, or mark them as spam? These are some of the things that will determine what our reputation is to various carriers, and thus our deliverability.


We also considered using dedicated IP’s with Mandrill or even using their warm up service. What this warm up means is that Mandrill can use their main IP pool while occasionally giving some emails to the new introduced IP. After about a month it will be considered “warmed up” and will have a foothold of a reputation in the world vs sprinting right out of the gates and hope carriers allow us through. We decided not to try for the warm up period and use our already established SMTP.

On top of having an IP pool with Mandrill, we also have a dedicated IP based approach as well. This hybrid approach is pretty interesting to me and will be curious to see how well it will perform as we monitor it going forward.