From f9b8e83bb054fa22b1fb8262a7ef8500a21f822f Mon Sep 17 00:00:00 2001 From: evazion Date: Sun, 20 Nov 2022 22:30:32 -0600 Subject: [PATCH] emails: fix deliverability check when MX lookup returns nonexistent domain. Fix the email deliverability check to return undeliverable when the MX lookup returns a domain or IP address that is invalid or that refuses connections. For example, `yeah.com` returns the invalid IP address 0.0.0.0 for its MX record. --- app/logical/danbooru/email_address.rb | 3 +++ 1 file changed, 3 insertions(+) diff --git a/app/logical/danbooru/email_address.rb b/app/logical/danbooru/email_address.rb index c50254aac..acb4ca7c0 100644 --- a/app/logical/danbooru/email_address.rb +++ b/app/logical/danbooru/email_address.rb @@ -349,6 +349,9 @@ module Danbooru response = conn.rcptto(address) rescue $! return response.is_a?(Net::SMTPFatalError) end + rescue Errno::ECONNREFUSED + # nobody@yeah.com (MX: 0.0.0.0) + true rescue false end