التسجيل باستخدام مصادقة البريد الإلكتروني، هل تم تفعيل 30% فقط؟

StackOverflow https://stackoverflow.com/questions/1858344

سؤال

أنا أستخدم PHP و MySQL.وموقعي فلاشي (موقع فلاش كامل)

لدي موقع ويب يتيح للمستخدمين التسجيل.تتضمن عملية التسجيل إرسال "بريد إلكتروني للتنشيط"، انقر فوق الرابط لتنشيط الحساب.

كان الأسبوعان الأولان على ما يرام.من بين حوالي 2000 مستخدم، تم تنشيط 1800 مستخدم.بعد ذلك، تنخفض نسبة المستخدمين المنشطين بشكل كبير إلى حوالي 30%.مثال:تم تسجيل 1000 مستخدم، وتم تفعيل 300 فقط.

في البداية، وجدت أن المشكلة تكمن في عدم إمكانية وصول البريد الإلكتروني إلى مستخدمي ymail وmsn وgmail.(معظم المشتركين لدي هم Ymail (yahoo) وhotmail/msn(live) وgmail (gmail)).لقد حاولت التسجيل باستخدام ymail وhotmail، لكن لم أتلق أي بريد إلكتروني للتنشيط.لقد اتصلت بـ yahoo وmsn، وفي النهاية يمكن أن يمر بريدي الإلكتروني الآن.

ومع ذلك، لا تزال إحصائية الاشتراك تظهر، حيث يبلغ عدد المستخدمين المنشطين حوالي 30% فقط، وهو ما يربكني للغاية.أتصل بشركة الاستضافة الخاصة بي، وأطلب منهم إدراج عنوان IP الخاص بي في القائمة البيضاء.وقد فعلوا ذلك.

أحتاج إلى نصيحتك/مساعدتك بشأن الأسئلة التالية:

  • كيفية التحقق من أين تكمن المشكلة؟هل لم يتم تسليم البريد الإلكتروني؟يتلقى المستخدم بريدًا إلكترونيًا ولكن لم ينقر على رابط التنشيط؟

أنا أستخدم وظيفة بريد php.وهذه هي رؤوس بلدي:

  $headers = 'MIME-Version: 1.0' . "\r\n";

  $headers .= 'Content-type: text/html; charset=UTF-8' . "\r\n";

  $headers .= 'From: Admin <\admin@domain.com>' . "\r\n";

  $headers .= 'Return-Receipt-To: Bounce <\bounce@domain.com>' . "\r\n";

  $headers .= 'Reply-To: Admin <\admin@domain.com>' . "\r\n";

  $return_path = "\bounce@domain.com\";

(أقوم بإخفاء اسم النطاق الخاص بي، وأضيف خطوط مائلة عكسية داخل رسائل البريد الإلكتروني، لأنه إذا لم يكن الأمر كذلك، فلن يظهر البريد الإلكتروني هنا، غريب)

هل هناك أي خطأ في الرؤوس؟

  • ما الذي يمكنني فعله لتحسين عملية التسجيل/تفعيل الاشتراك؟
هل كانت مفيدة؟

المحلول

يجب عليك تمرير مسار الإرجاع كمعلمة "-f" لوظيفة mail():

mail(
    $this->recipient,
    $subj,
    $this->body,
    $this->compose_headers(),
    '-f ' . Options::obj()->mail->return_path);

وأيضًا، للحصول على أفضل النتائج، إذا كان الخادم المرسل لديه اسم نطاق عام example.com، فيجب أن يكون مسار الإرجاع هو Something@example.com.

على أية حال، يجب عليك بالتأكيد التحقق من السجلات (/var/log/mail*) لمعرفة ما يحدث بالضبط.

نصائح أخرى

حاول استخدام Gmail كخادم SMTP الخاص بك بدلاً من خادم البريد مثل إرسال البريد من المجال.إن استخدام gmail smtp من شأنه أن يضمن إرسال رسائل البريد الإلكتروني الخاصة بك بأقصى جهد ممكن.كما لن يتم التعامل مع Gmail كبريد عشوائي ما لم يتم وضع علامة على معرف البريد الإلكتروني كبريد عشوائي (لذا حاول استخدام معرف آمن).لتحسين التنشيط->التنشيط من خلال وضع أفضل رهان لك هو التأكد من وصول البريد الإلكتروني إلى صندوق الوارد الخاص بالمستخدم.

بالنسبة لشبكة الأمان، يمكنك الحصول على ميزة تسمح للمستخدم بإعادة إرسال رابط التنشيط إذا فشل الرابط الأول لسبب ما.

إذا كنت غير مرتاح لاستخدام gmail كـ smtp، فيمكنك تسجيل نطاقك باستخدام تطبيقات google (ولكن قد يتطلب ذلك تغييرات في احتياجات العمل) ويمكنك الحصول على بريد إلكتروني من نوع admin@domain.com مع الاستمرار في استخدام خوادم gmail smtp الفعالة.

هناك العديد من المكتبات مثل phpMAiler الذي يسمح باستخدام خوادم SMTP خارجية.لاحظ أن جميع البيانات عبر خوادم Gmail تمر عبر SSL أو TSL.

هل يمكنك الوصول إلى ملفات السجل الخاصة بخادم البريد الإلكتروني الذي يرسل رسائل البريد الإلكتروني الخاصة بالتسجيل؟أي رسائل البريد الإلكتروني المرتدة عادة العودة إلى الخادم المرسل.من خلال مراقبة ملفات السجل، يمكنك التحقق ومعرفة عدد رسائل البريد الإلكتروني (إن وجدت) التي لا تزال ترتد.

ما نوع الوصول الذي يتمتع به المستخدمون إلى موقع الويب الخاص بك دون عنوان بريد إلكتروني نشط؟هل تم تعطيل أي ميزات؟هل هناك أي حوافز لتفعيل أو استخدام عنوان بريد إلكتروني حقيقي؟

لا يُظهر المثال الخاص بك رأس التاريخ وهو حقل مطلوب.من واقع خبرتي، يرفض بعض معالجي البريد رسائل البريد الإلكتروني التي لا تحتوي على واحدة (وبعضهم يضيف واحدة فقط بالتاريخ الحالي.) إذا لم يكن الرمز الفعلي الخاص بك يحتوي على واحدة، فحاول إضافة واحدة ومعرفة ما إذا كان سيحدث فرقًا.

ابحث عن RFC2822 للحصول على معلومات حول ما هو مطلوب،

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top