Zoho Mail Not Receiving Email? A DNS Troubleshooting Guide

Sending works, nothing comes in, and no bounce shows up anywhere. That asymmetry tells you almost everything: inbound mail is decided by MX records, not by SPF. This guide walks the inbound path in the order a sending server actually walks it, groups the real causes into five DNS failure families, and gives you the dig commands to prove which one you are looking at.

Continue ReadingZoho Mail Not Receiving Email? A DNS Troubleshooting Guide

Bulk WordPress Migration: Moving 20 Sites to a New VPS in One Weekend

Moving one WordPress site is easy. Moving twenty in a weekend is a pipeline, and the failures that cost you are the quiet ones: writes landing on the old server, cron firing on two boxes, certificates blocked by ACME rate limits. Here is the fleet migration process I use, from manifest to per-site rollback.

Continue ReadingBulk WordPress Migration: Moving 20 Sites to a New VPS in One Weekend

Business Email DNS Done Right: MX, SPF, DKIM and DMARC

Your domain has all four records. Every free checker shows green. It is still trivially spoofable, because publishing a record and enforcing a policy are different acts. A working guide to business email DNS: what MX, SPF, DKIM and DMARC each actually protect, the SPF lookup budget and the void-lookup limit nobody watches, why DKIM alignment decides whether you can ever reach p=reject, the domain architecture that stops the problem recurring, and a rollout order that gets you to enforcement without losing legitimate mail.

Continue ReadingBusiness Email DNS Done Right: MX, SPF, DKIM and DMARC

DNS Troubleshooting: How to Find the Real Cause in Minutes, Not Hours

Most "the site is down" tickets are really DNS problems wearing a costume. Here's the practical DNS troubleshooting workflow I use — how to read dig output, follow the delegation chain, decode SERVFAIL and NXDOMAIN, and stop blaming propagation for things that are actually caching, TTL, or DNSSEC failures.

Continue ReadingDNS Troubleshooting: How to Find the Real Cause in Minutes, Not Hours