MailLandDocs
المرجع

رموز الأخطاء

مرجع شامل لرموز أخطاء واجهة برمجة تطبيقات Mail.Land ومعانيها

تتضمن كل استجابة خطأ من واجهة برمجة تطبيقات MailLand حقل code يحتوي على رمز خطأ قابل للقراءة آليًا، وحقل message يحتوي على وصف مقروء للمستخدم.

صيغة استجابة الخطأ

Error response
{
  "code": "DOMAIN_NOT_VERIFIED",
  "message": "Domain is not verified",
  "timestamp": "2026-02-18T12:35:00Z",
  "traceId": "00-4bf92f3577b34da6a3ce929d0e0e4736-00f067aa0ba902b7-01"
}

تتضمن بعض الأخطاء حقل details إضافي:

Error response with details
{
  "code": "IP_RATE_LIMIT_EXCEEDED",
  "message": "Too many requests from this IP. Retry after 45 seconds.",
  "details": {
    "limit": 300,
    "current": 301,
    "retryAfter": 45,
    "resetAt": "2026-02-18T12:35:00Z"
  }
}

التحقق من صحة الطلب (400)

يُعاد عندما يكون نص الطلب أو معلمات الاستعلام أو الرؤوس غير صالحة أو تفتقد حقولًا مطلوبة.

الرمزالوصف
INVALID_REQUESTطلب غير صالح بشكل عام
VALIDATION_FAILEDفشل التحقق من صحة حقل واحد أو أكثر
INVALID_EMAIL_FORMATصيغة عنوان البريد الإلكتروني غير صالحة
WEBHOOK_DESTINATION_NOT_ALLOWEDرفض عنوان الـ webhook بسبب سياسة الوجهة: يتم تسليم الـ webhooks عبر HTTPS على المنفذ 443 فقط، ولا يجوز أن تشير إلى خوادم MailLand أو عناوينها أو أسماء مضيفيها
MISSING_CONTENTمهمل منذ 2026-04. استخدم VALIDATION_FAILED: نقاط النهاية send/scheduled تُرجع الآن أخطاء تحقق منظمة.
CONTENT_TOO_LARGE"The message is too large to send: it would exceed the platform's message-size limit. Reduce the HTML, text, attachments or recipients.": الرسالة تتجاوز حد حجم الرسائل في المنصة. تُعيدها POST /v1/transactional/send وsend-batch بالرمز 413؛ ولا يوضع شيء في الطابور. قلّص الرسالة. وفي استيراد CSV يكون الرمز 400
transactional_recipient_limit_exceededأكثر من 5 مستلمين على بيانات اعتماد معاملاتية (رمز بأحرف صغيرة)
marketing_recipient_limit_exceededأكثر من 1000 مستلم على بيانات اعتماد تسويقية (رمز بأحرف صغيرة)
VALIDATION_FAILEDإرسال مجمّع بأكثر من 10000 مستلم
SEND_FAILEDفشلت عملية إرسال البريد الإلكتروني، بما في ذلك "جميع المستلمين محظورون"
BATCH_SEND_FAILEDفشلت عملية الإرسال المجمّع
IDEMPOTENCY_KEY_INVALIDمفتاح التكرار الآمن فارغ أو غير صالح أو يتجاوز 255 محرفاً، أو أُرسل الرأس أكثر من مرة (فقط send/send-batch)
IDEMPOTENCY_KEY_CONFLICTأُرسل رأس X-Idempotency-Key وحقل idempotencyKey معاً وقيمتاهما مختلفتان
INVALID_CURSORمعامل ترقيم الصفحات بالمؤشر غير صالح
PASSWORD_REQUIREDتأكيد كلمة المرور مطلوب
RECIPIENT_SUPPRESSEDالمستلم مدرج في قائمة الحظر

المصادقة (401)

يُعاد عندما يفتقد الطلب بيانات الاعتماد أو تكون بيانات الاعتماد غير صالحة.

الرمزالوصف
UNAUTHORIZEDX-API-Key مفقود أو غير صالح أو منتهي الصلاحية أو مُلغى: تُرجع البرمجية الوسيطة لمفتاح API هذا الرمز الوحيد في كل الحالات، مع message وصفية. لا تميّز بين الحالات المفقودة/غير الصالحة/المنتهية/الملغاة عبر الرمز. كلمة مرور تسجيل دخول خاطئة تُرجع أيضًا 401 UNAUTHORIZED.
LOGIN_REQUIREDتسجيل الدخول مطلوب لهذه العملية

المصادقة الثنائية

تُرجع أخطاء المصادقة الثنائية 400 INVALID_REQUEST مع message وصفية (مثل "Invalid code"، "2FA is already enabled"). لا توجد رموز أخطاء مخصصة للمصادقة الثنائية، اقرأ حقل message.

التفويض (403)

يُعاد عندما لا يملك المستخدم المصادق عليه الصلاحية لتنفيذ الإجراء المطلوب.

الرمزالوصف
FORBIDDENرفض الوصول بشكل عام
INSUFFICIENT_PERMISSIONSالمستخدم يفتقد الدور أو الصلاحية المطلوبة
ACCOUNT_SUSPENDEDتم تعليق حساب المستخدم
ACCOUNT_DISABLEDتم تعطيل حساب المستخدم
ACCOUNT_NOT_ACTIVEحساب المستخدم غير نشط
IP_NOT_ALLOWEDعنوان IP الخاص بالعميل غير مدرج في قائمة السماح لبيانات الاعتماد
VALIDATION_CREDENTIAL_REQUIREDتتطلب نقاط نهاية التحقق من البريد الإلكتروني مفتاح API لمنتج التحقق. يُرفض مفتاح الإرسال أو الاستقبال؛ وتُقبل جلسة مسجَّل الدخول أو مفتاح منتج التحقق
PLAN_LIMIT_REACHEDتم الوصول إلى حد الخطة، الترقية مطلوبة
SENDING_BLOCKEDمستوى توثيق الحساب لا يسمح بهذا الإرسال. ملاحظة: رفض SendingBlocked الخاص بمحرك السياسات نفسه هو 403؛ ونفس الرمز القادم من مسار سياسة المعدل/الإحماء هو 429، انظر قسم محرك السياسات أدناه.
SUBSCRIPTION_EXPIREDانتهت صلاحية الاشتراك
NO_ACTIVE_SUBSCRIPTIONلا يوجد اشتراك نشط
TENANT_APPROVAL_REQUIREDالحساب بانتظار المراجعة قبل أن يتمكن من الإرسال. إعادة المحاولة لا تفيد؛ تواصل مع الدعم
MARKETING_NOT_YET_ALLOWEDالإرسال التسويقي غير متاح بعد. يُفتح تلقائياً بعد سجل معاملات نظيف (500 رسالة معاملات مُسلَّمة على الأقل خلال 7 أيام على الأقل، وارتدادات صلبة دون 2% وشكاوى دون 0.1%)
MARKETING_SUSPENDEDالبريد التسويقي غير متاح مؤقتاً على مستوى المنصة. البريد المعاملاتي غير متأثر؛ تُحفظ الحملات والأتمتة وتُستأنف عند تفعيل التسويق
ACTION_REQUIREDيلزم إجراء من المستخدم قبل استئناف الإرسال. تُعاد أيضًا لكل إرسال أثناء نشاط تعليق إمكانية التسليم لمساحة العمل (تجاوز نسبة الارتداد/الشكاوى): يُعيد SMTP relay الكود 550 لنفس التعليق. راجع تعليقات إمكانية التسليم

غير موجود (404)

يُعاد عندما لا يكون المورد المطلوب موجودًا أو ينتمي إلى مساحة عمل مختلفة.

الرمزالوصف
RESOURCE_NOT_FOUNDمورد عام غير موجود
USER_NOT_FOUNDالمستخدم غير موجود
WEBHOOK_NOT_FOUNDالويب هوك غير موجود
DELIVERY_NOT_FOUNDتسليم الويب هوك غير موجود

تستخدم معظم استجابات 404 الرمز RESOURCE_NOT_FOUND. يوفر حقل message سياقًا حول المورد الذي لم يتم العثور عليه (مثل "Domain not found" أو "Template not found" أو "Campaign not found"). نقاط نهاية الويب هوك استثناء: إعادة محاولة تسليم ويب هوك تستخدم WEBHOOK_NOT_FOUND / DELIVERY_NOT_FOUND.

التعارض (409)

يُعاد عندما تتعارض العملية مع الحالة الحالية للمورد.

الرمزالوصف
CONFLICTتعارض عام في المورد
IDEMPOTENCY_KEY_REUSEDمفتاح التكرار الآمن مستخدم بالفعل لنقطة نهاية مختلفة في هذا الحساب (فقط send/send-batch)

النطاق والإرسال (422)

يُعاد عندما يكون الطلب سليمًا من حيث الصيغة لكن لا يمكن معالجته بسبب قيود منطق العمل.

الرمزالوصف
DOMAIN_NOT_FOUNDالنطاق غير موجود في مساحة العمل
DOMAIN_NOT_VERIFIEDالنطاق لم يتم التحقق منه، أكمل إعداد DNS أولًا
DOMAIN_NOT_ALLOWED_FOR_CREDENTIALبيانات الاعتماد غير مصرّح لها لهذا النطاق المرسل
CAMPAIGN_LINK_BLOCKEDرابط في الحملة يشير إلى وجهة غير آمنة؛ لا تتم جدولة الحملة أو إرسالها
DOMAIN_SUSPENDEDتم تعليق النطاق
DOMAIN_VERIFICATION_EXPIREDانتهت صلاحية التحقق من النطاق، أعد التحقق

الدفع مطلوب (402)

يُعاد عندما لا يغطي رصيد مساحة العمل العملية المطلوبة.

الرمزالوصف
INSUFFICIENT_CREDITSالرصيد غير كافٍ لإتمام العملية

تحديد المعدل (429)

يُعاد عندما يتجاوز الطلب حدود المعدل. يتضمن عادةً رأس Retry-After؛ إذا كان غائبًا، استخدم التراجع الأسي بدلاً من افتراض عدم وجود انتظار.

حدود معدل API

الرمزالوصف
RATE_LIMIT_EXCEEDEDتم تجاوز حد معدل API العام
IP_RATE_LIMIT_EXCEEDEDتم تجاوز حد المعدل المستند إلى IP
SUPPORT_RATE_LIMITEDتم تجاوز حد معدل API الدعم الفني
TOO_MANY_LOGIN_ATTEMPTSمحاولات تسجيل دخول فاشلة كثيرة جداً، حظر مؤقت

حدود معدل إرسال البريد الإلكتروني

الرمزالوصف
DAILY_LIMIT_EXCEEDEDتم تجاوز حد الإرسال اليومي
WARMUP_LIMIT_EXCEEDEDبلغ حساب الحد اليومي لمرحلة تهيئة الإرسال؛ يُعاد ضبطه عند 00:00 UTC (انظر تسخين عناوين IP)
PAYMENT_DAILY_LIMIT_EXCEEDEDتم بلوغ الحد اليومي لحساب متأخر السداد

سعة المنصة (429)

تعني حالات الرفض هذه أن المنصة، وليس حصة حسابك، هي التي تحدّ من الإرسال الجديد الآن. كل منها 429 مع ترويسة Retry-After، ولم يوضع شيء في الطابور، وإعادة المحاولة بالطلب نفسه آمنة. عبر SMTP تظهر كـ 421 Try again later: <message> مؤقتة. الحقل message هو النص الإنجليزي الذي تُعيده الواجهة.

الرمزmessage (كما يُعاد)متى تُعيد المحاولة
WARMUP_POOL_BUDGET_EXCEEDED"Sending is temporarily paused for today. It resumes automatically at 00:00 UTC; no action is needed."بعد Retry-After (الساعة 00:00 UTC التالية)
WARMUP_POOL_BUDGET_EXCEEDED"Sending is briefly delayed. Please retry in a few minutes." (الرمز نفسه، عندما يتعذر التحقق من سعة المنصة لحظياً)بعد Retry-After القصيرة
WARMUP_POOL_EMPTY"Sending is temporarily paused. It resumes automatically; no action is needed."بعد Retry-After؛ لا حاجة لأي إجراء
PLATFORM_DAILY_CAPACITY_REACHED"Platform sending capacity for today is fully booked. This is a temporary platform-wide limit, not your account quota, and it resets at midnight UTC."بعد Retry-After (الساعة 00:00 UTC التالية)
PLATFORM_CAPACITY_PROTECTION"New sending is briefly paused to protect platform capacity. Mail already accepted is not affected. This is transient and clears on its own; retry shortly."بعد Retry-After القصيرة
PROBATION_CAP_REACHED"New accounts can send to N recipients per rolling 24 hours until our team has reviewed the account. Capacity returns as earlier sends age out of the 24-hour window; contact support to request a review." (أو «…cannot be verified right now, so sending is briefly paused…» عند انقطاع قصير)بعد Retry-After، أو اطلب مراجعة من الدعم

الرسائل المقبولة سابقاً لا تتأثر أبداً. تعامل معها كأي 429 آخر: تراجع، والتزم بـ Retry-After، وأعد المحاولة. لا يوجد ما يلزم ضبطه أو ترقيته.

حدود التدفق

transactional_recipient_limit_exceeded وmarketing_recipient_limit_exceeded هما 400 وليس 429: انظر قسم التحقق من صحة الطلب أعلاه. BATCH_NOT_ALLOWED_FOR_TRANSACTIONAL هو أيضاً 400: الإرسال المجمّع غير مسموح به على بيانات اعتماد معاملاتية بغض النظر عن حدود المعدل.

الحصص والفوترة

الرمزالوصف
QUOTA_EXCEEDEDتم تجاوز حصة الاستخدام لفترة الفوترة الحالية

محرك السياسات

الرمزالوصف
SENDING_BLOCKEDحظر محرك سياسة المعدل/الإحماء هذا الإرسال: مستوى التوثيق، أو قائمة السماح الخاصة بالصندوق التجريبي، أو تقييد الحساب، أو ارتفاع غير معتاد في الحجم
MARKETING_PAUSEDرسائل البريد التسويقي متوقفة مؤقتًا لمساحة العمل هذه

أخطاء الخادم (5xx)

الرمزحالة HTTPالوصف
INTERNAL_ERROR500خطأ غير متوقع في الخادم الداخلي
AUTHENTICATION_FAILED500فشل التحقق من مفتاح API داخليًا (وليس تسجيل دخول خاطئ، أعد المحاولة)
TIMEOUT504انتهت مهلة العملية
SERVICE_UNAVAILABLE503الخدمة غير متاحة مؤقتًا
DATABASE_ERROR503حدث خطأ في قاعدة البيانات

أخطاء الخادم (5xx) مؤقتة. أعد محاولة الطلب مع التراجع الأسي. إذا استمر الخطأ، تحقق من صفحة حالة MailLand أو تواصل مع الدعم الفني.

التعامل مع الأخطاء

استراتيجية إعادة المحاولة

حالة HTTPإعادة المحاولة؟الاستراتيجية
400لاأصلح الطلب وحاول مرة أخرى
401لاتحقق من بيانات الاعتماد أو جدّد الرمز المميز
403لاتحقق من الصلاحيات أو قم بترقية خطتك
404لاتحقق من معرّف المورد
409لاحل التعارض
422لاأصلح مشكلة منطق العمل (مثل التحقق من النطاق)
429نعمانتظر مدة Retry-After، ثم أعد المحاولة
500نعمأعد المحاولة مع التراجع الأسي (3 محاولات كحد أقصى)
503نعمأعد المحاولة مع التراجع الأسي (5 محاولات كحد أقصى)

قراءة رؤوس تحديد المعدل

تتضمن معظم الاستجابات X-RateLimit-Limit وX-RateLimit-Remaining:

الرأسالوصف
X-RateLimit-Limitالحد الأقصى للطلبات المسموح بها في النافذة الحالية
X-RateLimit-Remainingالطلبات المتبقية في النافذة الحالية

يضيف 429 المستند إلى IP ما يلي:

الرأسالوصف
X-RateLimit-Resetالطابع الزمني بتوقيت UTC بصيغة ISO-8601 لإعادة تعيين النافذة الحالية (استجابات حد IP فقط)
Retry-Afterعدد الثواني للانتظار قبل إعادة المحاولة

الخطوات التالية

في هذه الصفحة