From 6859bc0ba21258e4c7e76f10fac8deeba4364493 Mon Sep 17 00:00:00 2001 From: Dorian Niemiec Date: Tue, 17 Sep 2024 07:48:57 +0200 Subject: [PATCH] fix: improve the email domain validation in the contact API --- app/api/contact/route.ts | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/app/api/contact/route.ts b/app/api/contact/route.ts index 022b818..389d6d0 100644 --- a/app/api/contact/route.ts +++ b/app/api/contact/route.ts @@ -136,7 +136,24 @@ export async function POST(req: NextRequest) { let isEmailHostValid = false; try { const mxRecords = await dns.resolveMx(emailDomain); - if (mxRecords.length > 0) isEmailHostValid = true; + if (mxRecords.length > 0) { + for (let i = 0; i < mxRecords.length; i++) { + try { + const aRecords = await dns.resolve4(mxRecords[i].exchange); + if (aRecords.length > 0) { + isEmailHostValid = true; + break; + } + } catch (err) {} + try { + const aaaaRecords = await dns.resolve6(mxRecords[i].exchange); + if (aaaaRecords.length > 0) { + isEmailHostValid = true; + break; + } + } catch (err) {} + } + } } catch (err) {} if (!isEmailHostValid) { return NextResponse.json(