عند ملء نموذج الويب الخاص بي وإرساله ، تتم إعادة توجيهي إلى صفحة تقول:
شكرًا لك على الإرسال.
لكن هناك صندوق تحذير أحمر يقول:
غير قادر على إرسال البريد الإلكتروني. اتصل بمسؤول الموقع إذا استمرت المشكلة.
أعتقد أنه خادم SMTP ، لكنني لا أعرف كيفية إصلاح ذلك.
جرب استخدام:
مع PHPMailer
إذا كنت تستخدم Gmail لإعداد STMP ، فاتبع الخطوات التالية:
الخطأ:
غير قادر على إرسال البريد الإلكتروني.
يأتي من drupal_mail () ويعتبر عامًا جدًا وقد يرتبط بالعديد من الأشياء المختلفة مثل التهيئة الخاطئة لموقع Drupal ، PHP التكوين أو خدمة SMTP لنظام التشغيل الخاص بك.
أول شيء تفعله ، هو التحقق من نظام البريد أو سجلات Apache (مثل /var/log/Apache2/error.log
) لمزيد من التفاصيل حول الخطأ ، حيث يمكن أن تكون ببساطة مفقودة sendmail
ذاتي (إلا إذا كنت ترغب في استخدام أي خدمة SMTP خارجية).
إذا كان Drupal مستضافًا على خادمك المخصص وهو تكوين جديد تمامًا ، فمن المرجح أنك تفتقد خادم SMTP (نظرًا لأنه يشير إلى localhost
افتراضيًا) ، ما لم تكن تخطط لاستخدام الخارجية.
إذا كان جهاز التطوير المحلي لديك ، فتجاهل الخطأ (حيث يجب أن يعمل بشكل جيد على الخادم المخصص) ، حاول تثبيت MailCatcher ، أو سيكون لديك لتثبيت خادم SMTP كما هو مذكور أعلاه.
إليك بعض الاقتراحات الأخرى:
mail_system
، إذا تم تجاوزه - أعد تعيينه إلى القيمة الافتراضية (drush vdel mail_system
) ،php -i | grep -ie mail -e smtp
) وتأكد من أن sendmail_path
و SMTP
Host و smtp_port
صحيحة ،تحقق من الاتصال بخادم SMTP الخاص بك باستخدام telnet
، على سبيل المثال.
telnet $(php -r 'echo ini_get("SMTP") . " " . ini_get("smtp_port");')
للتحقق مرة أخرى ما إذا كان المضيف ليس معطلاً أو تم حله بواسطة DNS أو غير محجوب بواسطة جدار الحماية ،
إذا كنت تستخدم postfix
، تحقق مما إذا تم تعيين httpd_can_sendmail
على 1
(setsebool httpd_can_sendmail 1
).
أخيرًا ، اختبر بريدك الإلكتروني عن طريق الأمر PHP التالي:
php -r 'mail("[email protected]", "Mail test", "It works!");'
تحقق من Drupal الوكالة الدولية للطاقة و PHP سجلات الأخطاء. يمكن أن تكون أخطاء تسجيل ستساعدك على معرفة المشكلة. تحقق أيضًا من مسؤول النظام لمعرفة ما إذا كانت بيانات اعتماد خادم SMTP التي تستخدمها صالحة (مثل العنوان والمنفذ والتشفير وكلمة المرور وما إلى ذلك).
لقد وقعت في هذه المشكلة بسبب مشكلة وضع الحماية من Amazon SES. لا يسمح لك Amazon SES بإرسال بريد إلكتروني إلى المجالات غير المتحقق منها في وضع الحماية. سيكون عليك طلب الوصول للإنتاج وسيتم حل المشكلة.
إذا كانت رؤية ما سيتم إرساله كافية فقط ، فإن وحدة maillog مفيدة للغاية.
لقد نجحت الإجابة المقبولة في حل هذه المشكلة ، ولكن لاحظ أنه في وقت النشر ، يحظر Gmail جميع = تطبيق أقل أمانًا لأن موقعك drupal لا يعمل مع HTTPS.
ثم يجب عليك السماح بالتطبيقات الأقل أمانًا في حسابي في Gmail بحلول
أو احصل على شهادة SSL لموقعك drupal.
في نفس الاستضافات المشتركة لا يمكنك إرسال بريد إلكتروني دون إنشاء بريد إلكتروني لمشرف الموقع. على سبيل المثال إذا كان لديك نطاق test.com ، يجب عليك إنشاء بريد إلكتروني [email protected] أو [email protected] في لوحة التحكم لديك وتعيين هذا البريد الإلكتروني كبريد إلكتروني أساسي لموقع الويب. سيكون هذا البريد الإلكتروني في الحقل "من" في بريدك. أو أنشئ بريدًا خاصًا للنطاق واضبط هذا البريد كعنوان أساسي للموقع. يعتمد ذلك على إعدادات الأمان في الاستضافة المشتركة.
في حال كان ذلك يساعد أي شخص آخر:
لقد تلقيت هذا الخطأ واكتشفت أنه بسبب تعيين كل من "نسخة إلى" و "نسخة مخفية الوجهة" على عنوان البريد الإلكتروني نفسه في رؤوس بريد drupal_mail. (كان ذلك لأنني كنت اختبر)
الخطوة 1: يمكنك ضبط SMTP الخطوة 2: سطر الأوامر فتح المنفذ 465 "-إدخال -p tcp --dport 465 -j ACCEPT"
عملت الإعدادات التالية بالنسبة لي على النوافذ.
إذا كنت تستخدم Gmail لإعداد STMP ، فاتبع الخطوات التالية:
خادم SMTP: smtp.gmail.com
منفذ SMTP: 465
استخدام بروتوكول مشفر: استخدم SSL
مصادقة SMTP - اسم مستخدم وكلمة مرور Gmail
اترك الخيارات الأخرى افتراضيًا