يحتوي منتداي على العديد من المستخدمين المستوردين الذين يحملون نطاق بريد إلكتروني محدد لم يعد يعمل.
هناك بضعة آلاف من المستخدمين لديهم مثل هذا العنوان للبريد الإلكتروني.
لم يكن هذا يمثل مشكلة حتى الآن، لكنني قمت بزيادة قيمة قمع رسائل الملخص بعد أيام، فأرسل منتداي الكثير من رسائل الملخص، بما في ذلك إلى عدد كبير من المستخدمين الذين يحملون نطاقات بريد إلكتروني غير عاملة.
أدى ذلك إلى عدد كبير جداً من الارتدادات، مما جعل خدمة Mailgun يعطل نطاق بريدي.
ما الذي يجب أن أفعله مع هذه الحسابات لمنع تكرار هذه المشكلة وحلها؟ الكثير من هذه الحسابات تعود لمستخدمين شرعيين لم يعودوا إلى المنتدى بعد. وهذه ليست بالضرورة حسابات مهجورة.
بسبب هذه المشكلة، لا يستطيع المستخدمون التسجيل في المنتدى حتى يتم إصلاحها.
كما هو موضح في Replace a string in all posts. سيؤدي ذلك إلى جعل جميع عناوين البريد الإلكتروني هذه بحيث لا يرسل Discourse إليها. حل جيد آخر سيكون شيئًا مثل
bad=User.find_by_email
<بحث معين سيحصل على جميعها>
bad.update_all(active: false)
وتعطيل جميع المستخدمين الذين لديهم عناوين بريد إلكتروني مزيفة معروفة. لست متأكدًا تمامًا من كيفية القيام بالجزء الأول من الذاكرة، لكن يجب أن يكون من السهل جدًا استنتاجه.
نعم، فكرت في القيام بذلك للتخلص من نطاقات البريد الإلكتروني هذه.
لاحظت أن طريقة في Discourse تنشئ عناوين بريد إلكتروني بصيغة @no-email.invalid:
أما في قاعدة المُستورد (importer base)، فيتم استخدام @email.invalid وهو مختلف قليلاً:
هل يتم تجاهل هذين النطاقين الوهميين المختلفين كليهما عندما يحاول Discourse إرسال رسائل بريد إلكتروني؟
هل يجب أن أستبدل النطاق غير الفعال لدي بـ @no-email.invalid أم @email.invalid، أم لا يهم؟
@pfaffman، لست متأكداً من فهم سبب ضرورة إعادة تعيين العناوين في المشاركات بدلاً من تغيير عناوين البريد الإلكتروني للمستخدمين… هذه العناوين الإلكترونية ليست موجودة في المشاركات، إلا إذا كنت أفتقد شيئاً ما.
إذا كانت هذه هي الطريقة الموصى بها، فأنا فقط أرغب في استبدال عناوين @brokendomains.com الخاصة بي في كل ملف شخصي بـ @no-email.invalid أو @email.invalid. يمكنني معرفة كيفية القيام بذلك، لكنني أتساءل فقط عن أي “نطاق وهمي” يجب استخدامه.
UserEmail.where("email like '%@brokendomain.com'").each do |e|
e.update(email: SecureRandom.hex + "@email.invalid)
end
قد يعمل كودك أيضًا، لكنني لست متأكدًا مما إذا كان نموذج User قد تم تحديثه ليدعم u.email.include? بعد نقل عناوين البريد الإلكتروني إلى نموذج أو جدول آخر.
شكرًا لك. هذا هو الحل الذي استخدمته.
أكثر من 5000 مستخدم من إجمالي 17000 مستخدم لديهم نطاقات بريد إلكتروني من هذا النوع. لا عجب في زيادة عدد الارتدادات عندما قمت بزيادة كتم رسائل البريد الإلكتروني الملخصة بعد أيام…