# لماذا يفشل البريد من سكربت PHP أو تطبيقك
Source: https://docs.webgee.com/ar/email/why-am-i-not-able-to-send-mail-via-my-php-script-or-application



إن كان نموذج التواصل أو متجر WooCommerce أو تطبيق الويب لديك لا يستطيع إرسال
البريد، فالسبب دائمًا تقريبًا دالة `mail()` المدمجة في PHP. ينطبق على الاستضافة
المشتركة والموزِّعة واستضافة cPanel.

ودالة `mail()` **معطّلة افتراضيًا** على خوادم WebGee.

## لماذا هي معطّلة [#لماذا-هي-معطّلة]

تسلّم `mail()` الرسالة إلى الخادم مباشرة بلا مصادقة. فلا سبيل للخادم لتأكيد أن
المرسِل هو من تدّعي الرسالة أنه هو، فيختم الرسالة بعنوان النظام الخاص بالحساب —
شيء مثل `youruser@server.webgee.com`.

بينما يكون تطبيقك مضبوطًا للإرسال *من* `you@yourdomain.com`. والنتيجة رسالة
يختلف فيها مرسِل المغلّف عن عنوان **From** الظاهر، وهو بالضبط النمط الذي تستخدمه
فلاتر السبام لتحديد الانتحال. وحتى حين يُقبَل مثل هذا البريد، فإنه يصل إلى مجلد
غير المرغوب فيه.

كما لا يمكن توثيقه بـ SPF أو DKIM لنطاقك، فـ
[DMARC](/ar/email/publishing-dmarc-records-on-your-cpanel-domain) سيُفشله.

## أرسل عبر SMTP بدلًا منها [#أرسل-عبر-smtp-بدلًا-منها]

يصادق SMTP بصندوق بريد حقيقي قبل الإرسال. فتصير الرسالة *من* ذلك العنوان فعلًا،
وتجتاز SPF وDKIM، وتُسلَّم بشكل طبيعي.

تحتاج:

1. **صندوق بريد ترسل منه.** أنشئه في cPanel إن لم يكن موجودًا — راجع
   [إنشاء حسابات بريد في cPanel](/ar/email/how-to-create-email-accounts-in-cpanel).
2. **إعدادات الخادم** من
   [إعدادات خادم البريد](/ar/email/manual-configuration).
3. **ضبط التطبيق لاستخدامها.**

استخدم المنفذ **465 مع SSL/TLS**، أو **587 مع STARTTLS**. واسم المستخدم هو
**عنوان البريد الكامل**، لا الجزء الذي قبل `@`.

### ووردبريس [#ووردبريس]

ليس لووردبريس إعدادات SMTP خاصة به. ثبّت إضافة SMTP — وWP Mail SMTP وFluentSMTP
كلتاهما واسعتا الاستخدام — وأدخل الإعدادات فيها. وأرسل رسالة اختبار من الإضافة
قبل أن تفترض أنها تعمل.

### Laravel وSymfony وأطر العمل الأخرى [#laravel-وsymfony-وأطر-العمل-الأخرى]

اضبط ناقل البريد على `smtp` في إعدادات بيئتك بدل `sendmail` أو `mail`، ثم زوّده
بالمضيف والمنفذ والتشفير واسم المستخدم وكلمة المرور.

### تطبيقات نماذج التواصل وإدارة العملاء [#تطبيقات-نماذج-التواصل-وإدارة-العملاء]

لمعظمها خيار SMTP في إعداداتها. ابحث عن «outgoing mail» أو «SMTP» أو
«mail transport» وحوّله بعيدًا عن PHP mail أو sendmail.

<Callout type="info">
  البريد المرسَل عبر SMTP يظل يُحسب على
  [حدّك الساعي للإرسال](/ar/email/email-sending-limits). فإن كان تطبيقك يرسل
  حجمًا كبيرًا من البريد المعاملاتي، فاستخدم مرحّل SMTP خارجيًا بدلًا من ذلك،
  فيبقى خارج الحصة المشتركة تمامًا.
</Callout>

## إن كنت تحتاج mail() فعلًا [#إن-كنت-تحتاج-mail-فعلًا]

يمكن تفعيلها عند الطلب، لكنك سترث مشكلات التسليم الموصوفة أعلاه. راجع
[تفعيل دالة mail() في PHP على حسابك](/ar/email/enabling-phpmail-on-your-account).

## تحقّق [#تحقّق]

* نجاح دالة اختبار البريد في التطبيق نفسه.
* وصول الرسالة إلى صندوق الوارد لا إلى مجلد غير المرغوب فيه.
* ظهور نطاقك في مرسِل المغلّف في ترويسات الرسالة، لا اسم مضيف الخادم — راجع
  [قراءة ترويسات البريد](/ar/email/how-to-obtain-email-headers-a-step-by-step-guide).

## اقرأ أيضًا [#اقرأ-أيضًا]

* [إعدادات خادم البريد](/ar/email/manual-configuration)
* [تفعيل دالة mail() في PHP على حسابك](/ar/email/enabling-phpmail-on-your-account)
* [حدود إرسال البريد](/ar/email/email-sending-limits)
