> ## Documentation Index
> Fetch the complete documentation index at: https://ayakaleaf-pro.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

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

> أرسل رسائل التفعيل والدعوات وإعادة تعيين كلمة المرور من نشر على Kubernetes.

ترسل خدمة **web** كل رسائل البريد الإلكتروني (التفعيل، ودعوات المشاريع، وإعادة تعيين كلمة المرور) من كل Pod من Pods ‏Ayakaleaf Pro. الإعدادات هي نفسها كما في Toolkit، راجع [تسليم البريد الإلكتروني](https://ayakaleaf-pro.mintlify.site/ar/on-premises/configuration/overleaf-toolkit/email-delivery.md).

| | |
| - | - |
| الخدمة | web، في كل Pod من Pods ‏Ayakaleaf Pro؛ تُقرأ عند بدء تشغيل web |
| Pod → الخارج | خادم SMTP لديك (`OVERLEAF_EMAIL_SMTP_HOST`)، أو واجهة Amazon SES البرمجية في `OVERLEAF_EMAIL_AWS_SES_REGION` |
| الحالة | حد معدّل الإرسال في Redis |
| المهام الدورية | لا توجد |

### الإعداد

**1. ConfigMap**

```yaml title="30-config.yaml (additions)" wrap theme={null}
  OVERLEAF_EMAIL_FROM_ADDRESS: no-reply@example.com
  OVERLEAF_EMAIL_SMTP_HOST: smtp.example.com
  OVERLEAF_EMAIL_SMTP_PORT: "587"
  OVERLEAF_EMAIL_SMTP_SECURE: "false"
  OVERLEAF_EMAIL_SMTP_USER: no-reply@example.com
  # optional
  # OVERLEAF_EMAIL_REPLY_TO: support@example.com
  # OVERLEAF_EMAIL_SMTP_IGNORE_TLS: "false"
  # OVERLEAF_EMAIL_SMTP_TLS_REJECT_UNAUTH: "true"
```

يفعّل `OVERLEAF_EMAIL_FROM_ADDRESS` الإرسال. اضبطه فقط مع خادم SMTP (أو SES): فمع ضبط المرسل وحده، يحاول Ayakaleaf Pro استخدام خادم SMTP داخل الـ Pod، فتفشل كل الرسائل. وبدونه لا تُرسل الرسائل، بل تُكتب في `web.log` فقط.

تُقرأ `OVERLEAF_EMAIL_SMTP_SECURE` و`OVERLEAF_EMAIL_SMTP_IGNORE_TLS` و`OVERLEAF_EMAIL_SMTP_TLS_REJECT_UNAUTH` بصيغة JSON، لذا استخدم `"true"` أو `"false"`: فقيمة مثل `yes` توقف كل خدمات الـ Pod عند بدء التشغيل.

**2. Secret**

```bash theme={null}
kubectl -n overleaf patch secret overleaf-secrets --type merge \
  -p '{"stringData":{"OVERLEAF_EMAIL_SMTP_PASS":"<SMTP password>"}}'
```

بالنسبة إلى واجهة Amazon SES البرمجية، ضع `OVERLEAF_EMAIL_AWS_SES_ACCESS_KEY_ID` و`OVERLEAF_EMAIL_AWS_SES_SECRET_KEY` هنا بدلًا من ذلك، وضع `OVERLEAF_EMAIL_DRIVER: ses` و`OVERLEAF_EMAIL_AWS_SES_REGION` في الـ ConfigMap.

**3. طبّق التغييرات وأعد التشغيل واختبر**

```bash theme={null}
kubectl apply -f 30-config.yaml
kubectl -n overleaf rollout restart deployment/overleaf     # or statefulset/overleaf
```

أرسل لنفسك رسالة إعادة تعيين كلمة المرور من صفحة تسجيل الدخول. إذا لم تصل، فتحقّق من إمكانية الوصول إلى خادم SMTP من الـ Pods واطّلع على سجل web:

```bash theme={null}
kubectl -n overleaf exec deploy/overleaf -- bash -c 'echo > /dev/tcp/smtp.example.com/587 && echo reachable'
kubectl -n overleaf exec deploy/overleaf -- grep -iE "email|smtp" /var/log/overleaf/web.log | tail
```

### عدة نسخ متماثلة

لا حاجة إلى شيء إضافي. ترسل كل نسخة متماثلة بالإعدادات نفسها، ويُحتسب حد معدّل الإرسال في Redis عبر جميع النسخ المتماثلة. إذا كان خادم SMTP لديك لا يقبل إلا المرسلين المعروفين، فاسمح بالعناوين التي تغادر بها الـ Pods الكتلة (وهي عادةً عناوين العقد).

### الاختبار على Kubernetes

مع Mailpit بوصفه خادم SMTP، على Kubernetes 1.37 مع نسخة متماثلة واحدة، نجحت اختباراتنا الشاملة التي ترسل البريد الإلكتروني: رسالة تفعيل الحساب الذي ينشئه مسؤول، ورسالة تفعيل التسجيل الذاتي المقصور على نطاقات معيّنة، ورسالة إعادة تعيين كلمة المرور، والرسالة التي تُعلم المستخدم بحذف حسابه، وما يحدث عندما يرفض خادم SMTP رسالة تفعيل أو حذف: إذ يظل الحساب يُنشأ أو يُحذف، ويمكن إرسال رسالة التفعيل مجددًا لاحقًا. ومع ضبط `OVERLEAF_EMAIL_FROM_ADDRESS` دون مضيف SMTP، فشل طلب إعادة تعيين كلمة المرور مع خطأ، وأظهر `web.log` الرسالة "error sending message"، كما هو موضح أعلاه.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.