- 已装运
- 2026年9月23日 19:31 UTC
- 作者
- Kamo
- 提交
- 6084db9
Campaign 8781b848 ended with 667 bounces and 1,258 failures. Three gaps in the existing eligibility engine let them through: - DomainMailCheck asked A and AAAA in one JNDI call, which sends an ANY query. The cluster resolver answers NOTIMP, so every domain without an MX came back CHECK_FAILED and was mailed (check-failed-action ALLOW). Ask each type separately. An MX now counts only when one of its hosts exists: a lapsed Microsoft 365 tenant's MX pointed nowhere and still read MX_PRESENT. The cache key moves to v2 so week-old wrong answers are not reused. - BounceClassifier read Postfix's 5.0.0 (a reply without an enhanced code) and Microsoft 365's 5.4.1 directory rejection as unplaceable, so "mailbox not found", "No such user" and "Access denied" were never suppressed. A vague code now lets the words decide; a disabled, closed or inactive mailbox is a hard bounce for the org that met it. - POST **************** re-reads a campaign's FAILED rows with today's classifier and suppresses the dead mailboxes (dry run unless apply=true). On 8781b848: 780 of 1,258.
