التحقق من بريد إلكتروني واحد
تحقق من صحة عناوين البريد الإلكتروني الفردية في الوقت الفعلي مع فحوصات الصياغة والنطاق وSMTP
تحقق من صحة عنوان بريد إلكتروني في الوقت الفعلي قبل الإرسال. يُجري MailLand سلسلة تحقق من 5 طبقات: فحص الصياغة، اكتشاف الأخطاء الإملائية، كشف النطاقات المؤقتة، كشف الحسابات الوظيفية، والتحقق عبر SMTP.
المصادقة
أدرج مفتاح API الخاص بك في ترويسة X-API-Key:
X-API-Key: ml_pv_Ab3Kx9mN2pQ7rT4wL8yD...يجب أن يكون الاعتماد اعتماد منتج Validation مع تفعيل قناة Api.
التحقق من بريد إلكتروني
POST https://api.mail.land/v1/validation/email{
"email": "[email protected]",
"verify_smtp": true
}| الحقل | النوع | الافتراضي | الوصف |
|---|---|---|---|
email | string | - | عنوان البريد الإلكتروني للتحقق منه (مطلوب) |
verify_smtp | bool | true | إجراء التحقق من صندوق البريد عبر SMTP |
curl -X POST https://api.mail.land/v1/validation/email \
-H "X-API-Key: ml_pv_Ab3Kx9mN2pQ7rT4wL8yD..." \
-H "Content-Type: application/json" \
-d '{ "email": "[email protected]", "verify_smtp": true }'الاستجابة
{
"email": "[email protected]",
"result": "Deliverable",
"score": 95,
"syntax": {
"is_valid": true,
"suggestion": null,
"domain": "example.com",
"local_part": "user",
"has_typo": false,
"typo_type": null,
"typo_confidence": null
},
"disposable": {
"is_disposable": false
},
"role": {
"is_role_account": false
},
"mx": {
"has_mx": true,
"records": ["mx1.example.com", "mx2.example.com"],
"accepts_mail": true
},
"smtp": {
"can_connect": true,
"is_deliverable": true,
"is_catch_all": false,
"has_full_inbox": false,
"is_disabled": false,
"reachability": "safe",
"error_type": null,
"error_message": null
},
"provider": {
"name": "Unknown",
"type": "unknown"
},
"cached": false,
"verified_at": "2026-02-17T12:34:56Z"
}أنواع النتائج
| النتيجة | نطاق الدرجة | الوصف |
|---|---|---|
Deliverable | 80–95 | عنوان صالح، تم تأكيد قابلية التسليم عبر SMTP |
Risky | 45–70 | قد يكون قابلاً للتسليم لكن توجد عوامل خطر (خادم catch-all، حساب وظيفي، صندوق ممتلئ) |
Unknown | 30–50 | لا يمكن التحديد (انتهاء مهلة SMTP، فشل الاتصال) |
Undeliverable | 0–25 | غير قابل للتسليم (نطاق مؤقت، لا يوجد سجل MX، صندوق بريد معطّل، صياغة غير صالحة = 0) |
Invalid | 5 (ثابتة) | خطأ إملائي عالي الثقة في النطاق (ثقة ≥90%)، راجع syntax.suggestion |
تعديلات الدرجة
يتم تعديل الدرجة الأساسية بناءً على عوامل الخطر:
| العامل | التعديل |
|---|---|
| حساب وظيفي (info@، admin@، إلخ.) | -10 |
| خادم catch-all | -5 |
سلسلة التحقق
يتحقق MailLand من كل بريد إلكتروني عبر 5 طبقات:
التحقق من الصياغة
يتحقق من التوافق مع معيار RFC 5322: صيغة صالحة، الجزء المحلي (بحد أقصى 64 حرفاً)، النطاق (بحد أقصى 255 حرفاً)، الطول الإجمالي (بحد أقصى 320 حرفاً). كما يكتشف الأخطاء الإملائية الشائعة في النطاقات.
فحص النطاقات المؤقتة
يتحقق من النطاق مقابل قاعدة بيانات لمزودي البريد الإلكتروني المؤقت المعروفين. يتم تصنيف العناوين المؤقتة فوراً كـ Undeliverable.
فحص الحسابات الوظيفية
يكتشف العناوين الوظيفية مثل info@ وadmin@ وsupport@ وpostmaster@. لا يتم تصنيف الحسابات الوظيفية كغير قابلة للتسليم لكنها تُقلل من درجة الثقة.
التحقق من سجلات MX
يبحث عن سجلات MX للنطاق. إذا لم توجد سجلات MX ولا سجل A، يتم تصنيف البريد الإلكتروني كـ Undeliverable.
التحقق عبر SMTP
يتصل بخادم البريد ويتحقق مما إذا كان صندوق البريد موجوداً. يتم تخطي هذه الخطوة إذا كانت قيمة verify_smtp هي false.
اكتشاف الأخطاء الإملائية
يستخدم MailLand نظام اكتشاف أخطاء إملائية من 3 طبقات للأخطاء الشائعة في النطاقات:
| الطبقة | الطريقة | مثال |
|---|---|---|
| مطابقة دقيقة | قاعدة بيانات الأخطاء المعروفة | gmial.com → gmail.com |
| تصحيح TLD | متغيرات نطاق المستوى الأعلى | gmail.co → gmail.com |
| مسافة Levenshtein | مطابقة ضبابية (أقصى مسافة: 2) | gmal.com → gmail.com |
عند اكتشاف خطأ إملائي، يحتوي حقل syntax.suggestion على العنوان المُصحّح:
{
"email": "[email protected]",
"result": "Invalid",
"score": 5,
"syntax": {
"is_valid": true,
"suggestion": "[email protected]",
"domain": "gmial.com",
"local_part": "user",
"has_typo": true,
"typo_type": "levenshtein",
"typo_confidence": 95
}
}الأخطاء الإملائية عالية الثقة (بنسبة 90%+) يتم تقييمها مبكراً في السلسلة: لا يتم إجراء فحص SMTP ولا يتم استهلاك أي رصيد.
اكتشاف مزود الخدمة
يتعرف MailLand على مزود البريد الإلكتروني من أسماء النطاقات وسجلات MX:
| المزود | النوع | طريقة الاكتشاف |
|---|---|---|
| Gmail | consumer | مطابقة النطاق |
| Outlook / Hotmail / Live | consumer | مطابقة النطاق |
| Yahoo | consumer | مطابقة النطاق |
| iCloud | consumer | مطابقة النطاق |
| ProtonMail | consumer | مطابقة النطاق |
| Google Workspace | business | سجلات MX (aspmx) |
| Microsoft 365 | business | سجلات MX (outlook.com) |
| Zoho | business | سجلات MX |
| Mimecast | business | سجلات MX |
| Proofpoint | business | سجلات MX |
تفاصيل فحص SMTP
يحتوي كائن smtp على نتائج التحقق التفصيلية عبر SMTP:
| الحقل | النوع | الوصف |
|---|---|---|
can_connect | bool | تم الاتصال بخادم SMTP بنجاح |
is_deliverable | bool | يبدو أن صندوق البريد موجود |
is_catch_all | bool | الخادم يقبل جميع العناوين (يُقلل الثقة) |
has_full_inbox | bool | صندوق البريد ممتلئ (النتيجة: Risky) |
is_disabled | bool | صندوق البريد معطّل (النتيجة: Undeliverable) |
reachability | string | الحكم: safe أو risky أو invalid أو unknown |
error_type | string | نوع الخطأ إذا فشل فحص SMTP |
error_message | string | رسالة خطأ تفصيلية |
أنواع أخطاء SMTP
| نوع الخطأ | الوصف |
|---|---|
Timeout | انتهت مهلة اتصال SMTP |
ConnectionFailed | تعذر الاتصال بالخادم |
Blacklisted | عنوان IP الخاص بالتحقق محظور من قبل الخادم |
Socks5 | خطأ في البروكسي |
AsyncSmtpError | خطأ في بروتوكول SMTP |
Cancelled | تم إلغاء الطلب |
UnexpectedError | خطأ غير متوقع |
الأرصدة
كل عملية تحقق تستهلك رصيداً واحداً من حصتك الشهرية. بعض عمليات التحقق مجانية (لا يتم استهلاك رصيد):
| الحالة | مجاني |
|---|---|
| نطاقات البريد الإلكتروني المؤقتة | نعم |
| أخطاء إملائية عالية الثقة في النطاق (90%+) | نعم |
| أخطاء SMTP (انتهاء المهلة، فشل الاتصال، الحظر) | نعم |
| تعذر اتصال SMTP مع نتيجة غير معروفة | نعم |
| النتائج المخزنة مؤقتاً | لا (تم استهلاك الرصيد عند الفحص الأول) |
تحقق من رصيدك:
GET https://api.mail.land/v1/validation/credits{
"monthly_quota": 1000,
"used": 450,
"remaining": 550,
"resets_at": "2026-03-01T00:00:00Z"
}تُعاد تعيين الأرصدة تلقائياً في اليوم الأول من كل شهر (بتوقيت UTC).
التخزين المؤقت
يتم تخزين نتائج التحقق مؤقتاً في Redis لتجنب الفحوصات المتكررة:
| نوع النتيجة | مدة التخزين المؤقت |
|---|---|
| Deliverable | 48 ساعة |
| Risky | 24 ساعة |
| Undeliverable | 24 ساعة |
| Unknown | 6 ساعات |
تحتوي الاستجابات المخزنة مؤقتاً على cached: true في الاستجابة. تم استهلاك الرصيد الأصلي عند حساب النتيجة لأول مرة.
استجابات الأخطاء
| الحالة | الكود | الوصف |
|---|---|---|
400 | INVALID_REQUEST | نص الطلب مفقود أو غير صالح |
400 | INVALID_EMAIL_FORMAT | عنوان البريد الإلكتروني مطلوب |
402 | INSUFFICIENT_CREDITS | تم تجاوز حصة التحقق الشهرية |
الخطوات التالية
- التحقق الجماعي: تحقق من قوائم البريد الإلكتروني بالجملة
- قوائم المنع: إدارة قوائم المنع
- REST API: إرسال البريد الإلكتروني إلى العناوين التي تم التحقق منها