diff --git a/src/mail.js b/src/mail.js index 4f0450c4e..2fc4ceff6 100644 --- a/src/mail.js +++ b/src/mail.js @@ -241,12 +241,10 @@ async function checkSmtpRelay(relay) { if (relay.provider === 'noop') return { status: 'skipped', message: 'Outbound disabled' }; if (relay.provider === 'cloudron-smtp') { const results = await Promise.allSettled([ checkOutboundPort25(4), checkOutboundPort25(6) ]); - if (results[0].status === 'fulfilled' && results[1].status === 'fulfilled') return { status: 'passed', message: 'Port 25 (outbound) is unblocked' }; - const messages = []; - if (results[0].status === 'rejected') messages.push(results[0].reason.message); - if (results[1].status === 'rejected') messages.push(results[1].reason.message); - messages.push('Check if port 25 (outbound) is blocked.'); - return { status: 'failed', message: messages.join('. ') }; + if (results[0].status === 'fulfilled' && results[1].status === 'fulfilled') return { status: 'passed', message: 'Port 25 outbound is unblocked' }; + if (results[0].status === 'fulfilled') return { status: 'passed', message: 'IPv4 port 25 outbound is unblocked. IPv6 port 25 outbound is blocked and delivery to IPv6 only servers will fail,' }; // ipv6 only servers are not really common + if (results[1].status === 'fulfilled') return { status: 'failed', message: `IPv4 port 25 outbound is blocked: ${results[0].reason.message}.` }; // only IPv6 worked + return { status: 'failed', message: `Port 25 outbound is blocked. ${results[0].reason.message}` }; // both failed } const options = {