فنی · پاسخ مستند
چگونه نشانی ایمیل را بدون ارسال ایمیل تأیید کنیم؟
میتوانید با اجرای مجموعهای از اعتبارسنجی نحو، lookup رکوردهای DNS و SMTP handshake، نشانی ایمیل را بدون ارسال ایمیل تأیید کنید. این فرایند بدون تحویل واقعی پیام بررسی میکند که قالب ایمیل درست است و سرور گیرنده برای پذیرش ایمیل آن دامنه پیکربندی شده است.
اعتبارسنجی نحو
گام اول، بررسی رشته ایمیل در برابر استانداردهای RFC 5322 است. این کار تضمین میکند نشانی شامل بخش محلی، نماد @ و بخش دامنه معتبر است. معمولاً از عبارتهای منظم (regex) برای یافتن غلطهای تایپی رایج، نویسههای غیرمجاز و قالببندی نادرست پیش از هر درخواست شبکه استفاده میشود.
تأیید رکوردهای DNS
پس از تأیید نحو، باید بررسی کنید که دامنه رکوردهای معتبر Mail Exchanger (MX) دارد. کوئری DNS برای دامنه باید دستکم یک رکورد MX برگرداند. اگر هیچ رکورد MX وجود نداشته باشد، دامنه نمیتواند ایمیل دریافت کند. میتوانید از ابزارهایی مانند ابزارهای رایگان SendHQ برای بررسی پیکربندی DNS و اطمینان از فعال بودن دامنه استفاده کنید.
فرایند SMTP handshake
روش فنی تأیید شامل برقراری اتصال SMTP با سرور MX است. کلاینت دستور HELO و پس از آن MAIL FROM و RCPT TO را میفرستد. اگر سرور به دستور RCPT TO با 250 OK پاسخ دهد، سرور نشانی را معتبر میداند. سپس پیش از ارسال دستور DATA، اتصال با دستور QUIT بسته میشود.
مدیریت محدودیتهای سرور
بسیاری از سرورهای ایمیل مدرن برای جلوگیری از تأیید، از پیکربندی catch-all یا greylisting استفاده میکنند. سرور catch-all همه ایمیلهای دامنه را صرفنظر از بخش محلی میپذیرد. greylisting اولین تلاش را موقتاً رد میکند و فرستنده را ملزم به تلاش مجدد در زمانی دیگر میکند که میتواند اسکریپتهای تأیید لحظهای را پیچیده کند.
ملاحظات پیادهسازی
هنگام پیادهسازی این بررسیها، مطمئن شوید IP ارسالکننده شما اعتبار پاکی دارد و reverse DNS آن درست تنظیم شده است. SMTP handshakeهای مکرر بدون ارسال ایمیل ممکن است از سوی سرورهای گیرنده رفتار مشکوک تلقی شوند و در نتیجه IP شما توسط فیلترهای امنیتی مسدود یا محدود شود.
پرسشهایی که تیمها میپرسند
آیا بررسی SMTP تحویل را تضمین میکند؟
خیر، فقط تأیید میکند سرور دستور RCPT TO را پذیرفته است. تضمین نمیکند پیام از فیلترهای اسپم عبور کند یا به صندوق ورودی برسد.
نشانی ایمیل catch-all چیست؟
catch-all پیکربندیای در سرور است که هر ایمیل ارسالی به دامنه را میپذیرد، حتی اگر بخش محلی مشخصشده وجود نداشته باشد.
آیا میتوانم برای این کار از یک API معمولی استفاده کنم؟
بله، بسیاری از سرویسهای اعتبارسنجی ایمیل فرایند بررسی نحو، DNS و SMTP handshake را از طریق یک REST API خودکار میکنند.
چرا برخی سرورها بررسیهای SMTP را رد میکنند؟
سرورها ممکن است این بررسیها را رد کنند تا از حملات directory harvest جلوگیری کنند؛ حملاتی که در آنها باتها با حدس زدن نشانیها تلاش میکنند کاربران معتبر را پیدا کنند.
منابع اصلی
- RFC 5321: پروتکل ساده انتقال ایمیل (SMTP) — RFC Editor
- RFC 5322: قالب پیام اینترنتی — RFC Editor
- رجیستری نام سرویسها و شماره پورتهای پروتکل انتقال — IANA