Maildelivery to Domains with no MX Records
Hallo zusammen,
Es gibt immer wieder was zu lernen. So auch in diesem Fall.
Hätte mich vor ein paar Wochen jemand gefragt, was mit einer Mail an eine Domain passiert, welche keine MX Einträge im DNS hat, so hätte ich geantwortet: Der Absender erhält sofort einen Unzustellbarkeitsbericht (NonDeliveryReport kurz NDR).
Damit lag ich aber ziemlich daneben. Hier ein Beispiel:
Die Domain foolab.com besitzt im DNS keinen MX Eintrag, einen A Eintrag für die Domain und keine SPF Einträge.
Ein Mail an eine @foolab.com Adresse bleibt nicht nur im Queue hängen bis die Nachricht im Queue abgelaufen ist (MessageExpirationTimeout). Sondern es wird auch noch versucht, die Mail an den A Eintrag zu senden.
Natürlich ist dort kein Mailserver, deshalb gibt es einen Error 4.4.1
Nach ein paar Stunden informiert Exchange über die Verzögerung
Ist die Nachricht im Queue abgelaufen, so erhält man erst die Unzustellbarkeitsmeldung.
Dieses Verhalten ist sogar im RFC 5321 dokumentiert und heisst Implicit MX https://tools.ietf.org/html/rfc5321#section-5
The lookup first attempts to locate an MX record associated with the
name. If a CNAME record is found, the resulting name is processed as
if it were the initial name. If a non-existent domain error is
returned, this situation MUST be reported as an error. If a
temporary error is returned, the message MUST be queued and retried
later (see Section 4.5.4.1). If an empty list of MXs is returned,
the address is treated as if it was associated with an implicit MX
RR, with a preference of 0, pointing to that host. If MX records are
present, but none of them are usable, or the implicit MX is unusable,
this situation MUST be reported as an error.
Also habe ich ein wenig weiter rumgetüftelt. Kein A Record mehr für die Domain, sondern nur ein A Eintrag für den Host WWW. Jedoch keine MX Records.
Nun gibt es einen Error 4.4.0 DNS Query failed. Aber die Mail bleibt trotzdem im Queue.
Die Einstellungen, wie lange eine Mail im Queue verbleiben soll, wie rasch es wieder versucht wird und wann über die Verzögerung Informiert wird, sind im TransportService konfiguriert.
Get-TransportService -Identity ICESRV09 | fl *timeout*, *retry*
Lösungen:
1) Man lebt mit dieser Situation - das Internet funktioniert nun mal so
2) Man löscht die Domain und entfernt die NS Einträge für die Domains
3) Man erstellt einen MX Eintrag und eine Accepted Domain - ohne Mailboxen mit dieser Domain auf den Mailboxen
Diesen Lösungsansatz habe ich noch kurz verifiziert.
New-AcceptedDomain -DomainName foolab.com -DomainType Authoritative -Name foolab.com
Sofort wird ein Unzustellbarkeitsbericht mit dem Error 5.5.1 RESOLVER.ADR.RecipNotFound zugestellt.