فنی · پاسخ مستند
چگونه معتبر بودن دامنه ایمیل را بررسی کنیم؟
برای بررسی معتبر بودن یک دامنه ایمیل، یک lookup در DNS برای رکوردهای Mail Exchanger (MX) انجام دهید تا مطمئن شوید دامنه برای دریافت ایمیل پیکربندی شده است. دامنهای برای ایمیل معتبر محسوب میشود که دستکم یک رکورد MX فعال داشته باشد که به یک سرور ایمیل اشاره کند. اگر هیچ رکورد MX وجود نداشته باشد، دامنه نمیتواند ایمیل دریافت کند، مگر اینکه به رکورد A بازگشت کند؛ هرچند این حالت در پیکربندیهای امروزی کمیاب است.
اعتبارسنجی نحوی
گام اول، بررسی پیروی دامنه از استانداردهای RFC 5322 است. بخش دامنه در نشانی ایمیل باید یک دامنه سطح بالا (TLD) داشته باشد و از قواعد مشخصی برای کاراکترها پیروی کند. پیش از هر درخواست شبکهای، با regular expression مطمئن شوید کاراکتر غیرمجاز یا نقطههای متوالی وجود ندارد. این کار از کوئریهای DNS غیرضروری برای رشتههایی که آشکارا بدشکلاند جلوگیری میکند.
lookup رکورد MX
یک کوئری DNS برای رکورد MX دامنه اجرا کنید. رکورد MX سرور ایمیلی را مشخص میکند که مسئول پذیرش پیامهای ایمیل از طرف دامنه است. اگر کوئری DNS یک یا چند رکورد MX معتبر برگرداند، دامنه از نظر فنی قادر به دریافت ایمیل است. برای بررسی دستی میتوان از ابزارهایی مانند dig یا nslookup استفاده کرد، و کتابخانههای برنامهنویسی روشهای ناهمگامی برای بررسی انبوه ارائه میدهند.
بازگشت به رکورد A
طبق استانداردهای SMTP، اگر رکورد MX وجود نداشته باشد، سرور فرستنده ممکن است تلاش کند ایمیل را به نشانی IP مشخصشده در رکورد A دامنه تحویل دهد. با اینکه این یک رفتار قدیمی است، بررسی رکورد A لایه دومی از اعتبارسنجی فراهم میکند. با این حال، نبودِ هم رکورد MX و هم رکورد A تأیید میکند که دامنه برای تحویل ایمیل نامعتبر است.
ابزارهای بررسی
برای توسعهدهندگانی که این کار را در مقیاس بزرگ پیادهسازی میکنند، استفاده از یک سرویس اعتبارسنجی اختصاصی کارآمدتر از مدیریت کوئریهای خام DNS است. SendHQ ابزارهای رایگانی در https://sendhq.cc/tools برای بررسی پیکربندی دامنه ارائه میدهد. این ابزارها فرایند lookup را خودکار میکنند و پیکربندیهای نادرست رایجی را که ممکن است به شکست تحویل منجر شوند بررسی میکنند.
مدیریت خطاهای DNS
میان پاسخ NXDOMAIN و timeout تمایز قائل شوید. پاسخ NXDOMAIN صراحتاً نشان میدهد دامنه وجود ندارد. timeout یا SERVFAIL ممکن است نشاندهنده مشکل موقت DNS یا یک فایروال محدودکننده باشد. برای خطاهای غیرقطعی، منطق تلاش مجدد با exponential backoff پیاده کنید تا دامنههای معتبر در جریان قطعیهای گذرای شبکه نامعتبر علامت نخورند.
پرسشهایی که تیمها میپرسند
آیا رکورد MX معتبر وجود نشانی ایمیل را تضمین میکند؟
خیر، رکورد MX فقط تأیید میکند دامنه میتواند ایمیل دریافت کند. وجود یک صندوق ایمیل یا کاربر مشخص روی آن سرور را تأیید نمیکند.
آیا دامنه بدون رکورد MX میتواند معتبر باشد؟
بله، اگر دامنه رکورد A داشته باشد، برخی سرورهای SMTP تلاش میکنند ایمیل را به آن IP تحویل دهند؛ هرچند این روش استاندارد ایمیل امروزی نیست.
تفاوت اعتبارسنجی دامنه و اعتبارسنجی نشانی ایمیل چیست؟
اعتبارسنجی دامنه بررسی میکند دامنه برای ایمیل پیکربندی شده باشد، در حالی که اعتبارسنجی نشانی ایمیل نحو نشانی مشخص و وضعیت دامنه را بررسی میکند.
منابع اصلی
- RFC 5321: پروتکل ساده انتقال ایمیل (SMTP) — RFC Editor
- RFC 5322: قالب پیام اینترنتی — RFC Editor
- مستندات DNS در Cloudflare — Cloudflare