Rajavanya Subramaniyan published this on 1 September 2022. He was moving a client off Teachable onto self-hosted WordPress. The site had about 100,000 visitors a month and 300 to 400 new signups a day.
The host could not send mail at that rate. Password resets and purchase mail needed a transactional provider. He tried three in a few hours.
If you are looking at the SendGrid-to-Postmark slice, start with the SendGrid → Postmark playbook. The Medium post is the shared-IP loop that made him skip a dedicated IP.
Elastic Email first, then SendGrid
He picked Elastic Email because the site was simple and the free trial felt clean. Students then failed to get password resets. Paid subscribers were locked out. Elastic Email showed the rejects in the dashboard and did not email him that delivery had died.
Support said a shared IP had a bad reputation. Another account on the pool. Buying a dedicated IP “may” help. He calls that a bad moment to upsell. Public reviews looked worse. He left.
SendGrid was five DNS records in Cloudflare and an API key in WP Mail SMTP. He tested a forgot-password mail and a WooCommerce purchase. Both arrived. Reports showed in SendGrid as they sent.
Peace lasted until more people missed mail. Support answered with scripts, then the same shared-IP line. Get a dedicated IP.
Why he did not buy the IP
SendGrid’s own docs, as he read them, do not recommend a dedicated IP under 100,000 emails a month. Signups alone were about 12,000 a month. The rest of the transactional mail still did not reach 100,000.
A new dedicated IP also needs a warmup. Low volume first, then a climb. Students waiting on a password reset will not sit through that. The sending domain already had a reputation. The shared IP did not.
He looked at running his own mail server plus a deliverability hire. Then he found Postmark. They discourage dedicated IPs unless you really need one, and they would not sell one under about 300,000 emails a month. You request it. That matched what he wanted: a shared pool they protect.
The last hop
Cloudflare DNS again. On WordPress he left SendGrid and pointed WP Mail SMTP at Postmark through the Other SMTP option. Mail started flowing. He says nobody complained about spam after that, and messages were fast.
He does not publish a bounce rate, a dual-run window, or a suppression import. He notes Postmark had been acquired by ActiveCampaign and hopes they keep the product. That is a 2022 aside.
The Teachable-to-WordPress move is a different job. This post stays on the mail path. Three providers, one day, two shared-IP failures.
What I would copy
If password resets are the canary, watch them per provider, not a weekly dashboard. Both failures showed up as angry students first.
Changing five DNS records is not the hard part. Cloudflare plus WP Mail SMTP will flip SMTP in an afternoon. The hard part is refusing a dedicated IP you will not warm in time.
Copy the suppression list and a known reset onto the new server before you delete the old API key. Rajavanya tested one reset and one purchase on SendGrid. Do that again on Postmark, on Outlook and Gmail, before you call it done.
The SendGrid → Postmark playbook is the domain and webhook list. Use his post for the warmup math that makes a same-day SMTP change the rational move.