email rate limit exceeded في Supabase: ليش وقفت الإيميلات؟

خطأ email rate limit exceeded في Supabase مع Lovable و Bolt: كم حد الإيميلات، وليش التجربة تخلّصه، وكيف تحله بمزوّد إيميل ومهلة على زر إعادة الإرسال.

23 أكتوبر 2026 (12 جمادى الأولى 1448 هـ) · قراءة 5 دقائق · كتبها

آخر تحديث:

يوم الإطلاق، أو وأنت تجرّب صفحة التسجيل للمرة العاشرة، فجأة يوقف كل شي: ما فيه إيميل تأكيد، ولا رابط دخول، ولا رابط «نسيت كلمة السر». وفي Console تلقى: email rate limit exceeded. هذا خطأ من Supabase، ونشوفه كثير في المنتجات المبنية بـ Lovable و Bolt و v0 و Cursor. معناه أن Supabase أوقف إرسال الإيميلات من مشروعك مؤقتًا، لأنك وصلت إلى الحد المسموح.

إذا المشكلة إن الإيميلات ما توصل أصلًا، أو المستخدم يطلع له Email not confirmed، هذا له درسه: Email not confirmed في Supabase. هنا نتكلم عن الحد نفسه.

إيش يعني بالضبط

Supabase يحط حدود على عدد الإيميلات والطلبات، عشان ما ينستخدم مشروعك في إزعاج الناس أو تخمين كلمات السر. لما تتجاوز الحد، يرد بالرمز 429، ومعناه «طلبات كثيرة»، ومعه رمز الخطأ over_email_send_rate_limit. وفيه أكثر من حد:

  • حد الإيميلات للمشروع كله: كل إيميل يرسله Supabase لتسجيل الدخول ينحسب: تأكيد التسجيل، ورابط الدخول السحري (magic link)، واستعادة كلمة السر. مع خدمة الإيميل المدمجة، الحد حاليًا إيميلين في الساعة للمشروع كله، وما تقدر ترفعه.
  • مهلة لكل مستخدم: نفس المستخدم ما يقدر يطلب رابط دخول أو تأكيد أو استعادة كلمة سر جديد إلا بعد 60 ثانية افتراضيًا، حتى لو عندك مزوّد إيميل.
  • حد لكل جهاز: طلبات التسجيل والدخول من نفس عنوان IP، يعني نفس الجهاز أو الشبكة، حدها الافتراضي 30 طلب كل 5 دقائق. هذا يطلع برمز ثاني، over_request_rate_limit، وهو 429 بعد.

ليش يصير في المنتجات المبنية بالذكاء الاصطناعي

  • التجربة تخلّص الحد: تسجّل بإيميل، وتمسح المستخدم، وتسجّل مرة ثانية، وتجرّب «نسيت كلمة السر». مع حد إيميلين في الساعة، ثالث محاولة تتوقف.
  • زر «إعادة الإرسال» بدون مهلة: الأداة تبني زر يقدر المستخدم يضغطه كل ثانية. الإيميل ما وصل، فيضغط خمس مرات، وكل ضغطة طلب إيميل.
  • فورم واحد يرسل أكثر من طلب: الزر ما يتعطّل بعد الضغطة الأولى، فالضغط مرتين يرسل طلبين. أو الكود ينادي التسجيل داخل useEffect، وهو كود يشتغل لحاله لما تتغيّر الصفحة، فيتكرر بدون ما أحد يضغط.
  • إعادة المحاولة التلقائية: الكود يعيد الطلب لحاله كل ما فشل، والحد ما انتهى، فكل إعادة تفشل بنفس الخطأ.
  • إيميل في كل خطوة: عميل ما وصله إيميل التأكيد يجرّب رابط الدخول، وبعدين «نسيت كلمة السر». كل محاولة إيميل جديد، وعميل واحد محتار ممكن يخلّص حد الساعة كله.

كيف تعرف أي حد وصلت له؟

  1. افتح منتجك، واضغط F12، وافتح تبويب Network، وسوّ الحركة اللي تفشل: تسجيل، أو رابط دخول، أو نسيت كلمة السر.
  2. دوّر على الطلب الأحمر اللي رابطه فيه /auth/v1/، مثل signup أو otp أو recover. إذا رمزه 429، افتح Response: over_email_send_rate_limit يعني حد الإيميلات، و over_request_rate_limit يعني حد الطلبات من جهازك.
  3. في لوحة Supabase افتح Logs، واختار نوع Auth، وسوّ الحركة مرة ثانية. بتشوف الطلب ونتيجته، وتعرف إذا فيه طلبات متكررة ورا بعض لنفس الإيميل.
  4. افتح إعدادات SMTP تحت Authentication: إذا ما فيه مزوّد إيميل مضاف، منتجك على الخدمة المدمجة وحدها، بحد إيميلين في الساعة.
  5. افتح Authentication ثم Rate Limits: هنا الحدود الحالية لمشروعك.

ليش إلغاء تأكيد الإيميل مو حل؟

  • إلغاء تأكيد الإيميل في المنتج الحقيقي عشان يختفي الخطأ. صفحة التسجيل تشتغل، لكن أي أحد يقدر يسجّل بإيميل غيره، وروابط الدخول واستعادة كلمة السر للحين إيميلات، فترجع لنفس الحد.
  • إعادة المحاولة في حلقة. كود يعيد الطلب كل ثانية حتى ينجح ما يسرّع شي، ويملأ السجل بطلبات فاشلة تخبي السبب.
  • إخفاء الخطأ. الصفحة تقول «تم» والإيميل ما انرسل، والعميل ينتظر شي ما بيجي.

كيف تحل email rate limit exceeded في Supabase؟

  1. مزوّد إيميل حقيقي: سوّ حساب عند مزوّد مثل Resend أو Postmark أو Amazon SES، ووثّق نطاقك عنده، وأضف بياناته في إعدادات SMTP في Supabase. بعدها الحد يبدأ من 30 إيميل في الساعة، وترفعه من صفحة Rate Limits حسب حاجتك. وسجلات النطاق اللي تمنع الإيميلات تروح للسبام في إيميلاتك تروح للسبام؟.
  2. مهلة على زر إعادة الإرسال: بعد كل ضغطة يتعطّل الزر ويعرض عدّاد 60 ثانية، نفس مهلة Supabase. وزر التسجيل نفسه يتعطّل بعد الضغطة الأولى حتى يرجع الرد.
  3. رسالة واضحة للمستخدم: لما يرجع 429، اعرض رسالة مثل «أرسلنا لك إيميل قبل شوي، انتظر دقيقة وجرّب مرة ثانية»، بدل صفحة فاضية أو «تم» ما صارت. والكود يتعرّف على الخطأ من رمزه over_email_send_rate_limit، مو من نص الرسالة، وهذا اللي ينصح فيه Supabase.
  4. حسابات تجربة بدون إيميلات: وأنت تجرّب، أضف مستخدمين التجربة من صفحة Users تحت Authentication مؤكّدين من البداية، بدل ما تسجّل كل مرة بإيميل جديد. كذا تجاربك ما تصرف من الحد.

بعدها جرّب الرحلة كاملة بإيميل جديد: تسجيل، وتأكيد، ودخول، ونسيت كلمة السر، وزر إعادة الإرسال مرتين ورا بعض.

تبي أحد يتأكد منها؟

ربط مزوّد الإيميل وضبط الحدود وزر إعادة الإرسال شغلة مكالمة استشارية وحدة غالبًا. إذا تبي أحد يصلّح تسجيل الدخول كامل، من الفورم حتى رسائل الخطأ، فيه الإصلاح المباشر. وإذا الإطلاق قريب، تدقيق جاهزية الإطلاق يمر على الرحلة كلها قبل ما يجيك أول عميل. وإذا منتجك على Lovable، شوف مشاكل Lovable و Supabase، وفحوصات ثانية في 5 ثغرات في تسجيل الدخول.

المصادر

عندك نفس المشكلة؟

علّمنا إيش صار بدون كلام تقني، ونقول لك إيش تحتاج وكم يكلّف.

ابدأ طلبك

بدون أي كلمة سر · عرض السعر مجاني