← Alle artikelen

Na de overstap naar Exchange Online kwamen mails van applicatieservers wel bij externe ontvangers aan, maar niet bij collega's. De oorzaak zat niet in de mailserver, maar in een vergeten instelling bij de antispamdienst, en in een herstart van de oude Exchange.

Externe mail kwam aan, interne niet: een mailroute na de Exchange-migratie

Applicatieservers versturen notificaties, zoals inlogcodes, via een interne relay (hMailServer op Windows). Die relay stuurt alles door naar een externe antispamdienst, die het aflevert. Op een avond kwamen de mails aan bij externe ontvangers, maar niet meer bij adressen op het eigen domein.

De keten

applicatieserver → interne relay → antispamdienst → ontvanger

Het eigen domein was al gemigreerd naar Exchange Online: de MX wees naar Microsoft. Maar in het beheerpaneel van de antispamdienst stond voor dat domein nog een destination: de oude on-premises Exchange. Mail voor het eigen domein ging daar dus nog heen, en niet naar Microsoft.

Dat werkte jarenlang, tot de oude Exchange na een update en herstart niet meer bereikbaar was voor de antispamdienst. De mails bleven daar in de wachtrij staan. De relay zag een geslaagde aflevering (de antispamdienst had het bericht aangenomen), dus niets meldde een fout.

De oplossing

De destination in het antispampaneel omgezet naar de MX van Exchange Online. De wachtrij liep direct leeg. Het paneel heeft een netwerktool die een destination test inclusief de DATA-fase; daarmee was het binnen een minuut bevestigd.

Wat níet werkte

  • De relay direct naar Exchange Online laten sturen. Voor ontvangers buiten de eigen tenant geeft Microsoft dan 550 5.7.64 Relay Access Denied. Direct send werkt alleen voor ontvangers binnen de tenant.
  • Een andere SMTP-dienst als relayer. Die bood na STARTTLS alleen AUTH PLAIN aan, en hMailServer gebruikt AUTH LOGIN: 504 5.5.4 AUTH LOGIN not supported. Daarnaast was de credential beperkt tot één subdomein als afzender. Een eerdere "het werkt" bleek een curl-test vanaf een andere server te zijn.

Lessen

  • Bekijk de echte SMTP-sessie, niet een test vanaf een andere machine. Welke AUTH-methode, welke TLS, welke antwoordcode.
  • Een migratie heeft een staart. Elke plek die naar de oude mailserver verwijst (antispam, connectors, relays, monitoring) moet op een lijst, ook als hij nu "toevallig" nog werkt.
  • Kijk naar de SPF-limiet. Elke dienst die namens het domein mailt, wil in SPF. Bij tien DNS-lookups houdt het op, en dan faalt SPF voor alles. Interne mail via een dienst die niet in SPF staat, kan bovendien in quarantaine belanden als spoofing van je eigen domein.
  • "Geaccepteerd" is niet "afgeleverd". Een relay die een bericht doorgeeft aan een volgende hop, meldt succes. Zonder monitoring op de wachtrij van die volgende hop zie je een stilstand niet.