diff --git a/Changes.md b/Changes.md index 2baae6105..76f7b2cd0 100644 --- a/Changes.md +++ b/Changes.md @@ -4,6 +4,8 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/). ### Unreleased +- fix(outbound): in outbound hook_delivered, when mx.exchange contains + an IP, use mx.from_dns - fix(bin/haraka): fix for finding path to config/docs/Plugins.md ### [3.0.5] - 2024-09-27 diff --git a/outbound/hmail.js b/outbound/hmail.js index 62472e55f..65626da9e 100644 --- a/outbound/hmail.js +++ b/outbound/hmail.js @@ -3,6 +3,7 @@ const events = require('node:events'); const fs = require('node:fs'); const dns = require('node:dns'); +const net = require('node:net'); const path = require('node:path'); const { Address } = require('address-rfc2821'); @@ -596,7 +597,13 @@ class HMailItem extends events.EventEmitter { processing_mail = false; if (success) { const reason = response.join(' '); - self.delivered(host, port, (mx.using_lmtp ? 'LMTP' : 'SMTP'), mx.exchange, + + let hostname = mx.exchange + if (net.isIP(hostname) && mx.from_dns && !net.isIP(mx.from_dns)) { + hostname = mx.from_dns + } + + self.delivered(host, port, (mx.using_lmtp ? 'LMTP' : 'SMTP'), hostname, reason, ok_recips, fail_recips, bounce_recips, secured, authenticated); } else {