لم يصل بريد التحقق أو إعادة تعيين كلمة المرور؟
- تحقق من مجلد البريد غير الهام (Spam / Junk) والعروض الترويجية.
- قد يتأخر الإرسال بضع دقائق؛ انتظر قليلاً ثم أعد تحميل صندوق الوارد.
- استخدم زر إعادة الإرسال في الشريط الأصفر أعلى الموقع بعد تسجيل الدخول.
- إن كنت سجلّت عبر Google، قد لا يصل بريد «إعادة تعيين كلمة المرور» — جرّب تسجيل الدخول بـ Google.
- الدفع والمدرسة: لا يمكن إتمام الاشتراك أو بعض إجراءات المدرسة حتى تُؤكَّد رسالة التحقق في بريدك.
- على بيئة التطوير المحلية قد لا يكون SMTP مضبوطاً؛ الرسائل لن تُرسل حتى يضبط المطوّر البريد على الخادم.
- على الموقع المنشور، يجب أن يضبط مسؤول الخادم متغيرات البيئة (SMTP_USER، كلمة مرور التطبيق، MAIL_FROM) وأن يعمل طابور البريد — بدونها لن تصل رسائل التأكيد ولا إعادة تعيين كلمة المرور.
- الخادم نجح بالإرسال لكن المستخدم لا يرى البريد: قد يكون مزود البريد قبل الرسالة ثم صفّاها أو أخفاها. راجع سجلات الخادم لـ messageId أو حقل smtpMessageId في طابور البريد، وابحث عنه في لوحة مزود الإرسال لمعرفة التسليم الفعلي (Delivered / Bounced / Dropped) وتحقق من إعدادات النطاق (SPF / DKIM / DMARC).
- للمشغّل: راجع GET /api/health (حقول smtpEnvOk و mailFromDomain و mailReplyToConfigured و emailQueueRetryAfterMs)، ومن مجلد الـ backend شغّل أولاً npm run check:mail-readiness لقائمة جاهزية البيئة، ثم npm run diagnose:smtp و npm run diagnose:email-queue. إن ضُبط OPS_HEALTH_KEY في الخادم، يمكن استخدام GET /api/health/mail مع ترويسة X-Ops-Key لمعرفة عدد الرسائل المعلّقة وفاشلة ومرسلة آخر 24 ساعة، وعيّنة recentSentSample مع smtpMessageId للبحث في لوحة المزوّد، ومدة انتظار إعادة المحاولة بين SMTP. بعد إصلاح البريد يمكن إعادة طابور «فاشل» عبر npm run diagnose:email-reset-failed (راجع التوثيق قبل التنفيذ الفعلي).
English: Check spam, wait a few minutes, use "Resend" on the yellow banner, or sign in with Google if you registered that way. Payment and school actions require a verified email. On production, the server operator must configure SMTP env vars and restart the backend; otherwise neither verification nor password-reset emails can be delivered. If SMTP accepts mail but the inbox stays empty, check server logs for messageId or queue field smtpMessageId and search the provider dashboard (e.g. Resend) for delivery vs bounce/drop; verify domain DNS (SPF/DKIM/DMARC). Operators: use GET /api/health (smtpEnvOk, mailFromDomain, mailReplyToConfigured, emailQueueRetryAfterMs), then from backend/ run npm run check:mail-readiness (env checklist, no secrets), then npm run diagnose:smtp and npm run diagnose:email-queue. If OPS_HEALTH_KEY is set, GET /api/health/mail with header X-Ops-Key returns pending, failed and sent counts (24h), recentSentSample (includes smtpMessageId for provider lookup), and emailQueueRetryAfterMs. After fixing SMTP, operators can list/retry failed rows with npm run diagnose:email-reset-failed (see backend .env.example before using --apply).