نقل قائمة بريدية إلى Discourse (mbox، Listserv، Google Groups، إلخ)

حسناً، هذا أمر محبط للغاية!

ظننت أن جوجل لم تلمسه منذ فبراير 2015، لكنني أراجع رأيي.

يبدو أنه كان هناك إعادة تصميم كاملة في عام 2020 وتحديث للشعار في عام 2021.

أفكر في استخدام واجهات برمجة تطبيقات Gmail وDiscourse لتحويل سلسلة الرسائل إلى منشور في Discourse. لقد استعرضت واجهات برمجة تطبيقات Google وتمكنت من الحصول على رسائل البريد الإلكتروني، لكن لدي بعض الأسئلة حولها.

  1. يمكن تنزيل البريد الإلكتروني بتنسيق خام وهو القيمة المشفرة بترميز Base64 لـ “الرسالة الأصلية” للبريد. هل هذا هو نفسه تنسيق mbox أم أنه مختلف؟
  2. هل هناك مثال توضيحي لكيفية إضافة منشورات ومرفقات إلى Discourse عبر واجهة برمجة التطبيقات؟

مثير للاهتمام. هل من الممكن استخدام واجهة برمجة تطبيقات Gmail للوصول إلى رسائل البريد الإلكتروني من مجموعات Google، أم أنك تمتلك ببساطة حساب Gmail يحتوي على جميع الرسائل المرسلة إلى المجموعة؟

أنصحك بحفظ جميع الرسائل في ملفات فردية بامتداد *.eml. ستحتاج إلى فك تشفير الرسالة قبل الحفظ إذا كانت الرسالة بأكملها (بما في ذلك رؤوس البريد الإلكتروني) مشفرة بترميز base64. بعد ذلك، اتبع الخطوات الواردة في Migrate a mailing list to Discourse (mbox, Listserv, Google Groups, etc) (ما عدا خطوات مجموعات Google). ستقوم سكريبت الاستيراد بالتعامل مع المنشورات والمرفقات والعديد من العناصر الأخرى.

إعجاب واحد (1)

أنا عضو في المجموعة، لذا يمكنني سحب الرسائل باستخدام بريدي الإلكتروني. ستكون رسالة البريد الإلكتروني بالكامل، بما في ذلك الترويسات، جزءًا من السلسلة المشفرة.

سأجرب نهجك للاستيراد إلى Discourse على الأقل لمنتدًى واحد.

إعجاب واحد (1)

حسنًا، في هذه الحالة قد لا تحتاج حتى إلى واجهة برمجة تطبيقات Gmail. يكفي توصيل عميل بريد إلكتروني مثل Thunderbird بحساب Gmail الخاص بك وتصدير رسائل البريد الإلكتروني الفردية أو ملف mbox…

الآن، أود حقًا معرفة كيفية عمل ذلك. كنتُ أعتقد أن مجموعات Google لا تدعم NNTP.

إعجاب واحد (1)

إنه ليس NNTP بل واجهة برمجة التطبيقات REST.

3 إعجابات

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

هل توجد طريقة بديلة للحصول فقط على بيانات مجموعة Google وتصديرها إلى mbox؟

مرحبًا جيرهارد شلاغر،

نحن نحاول نقل مجموعات جوجل الخاصة بنا إلى Discourse، وقد اتبعنا جميع الخطوات المذكورة أعلاه وفقًا للمستند، لكن النظام ينشئ الفئة في Discourse فقط دون استيراد البيانات. سنقدر جدًا إذا أمكنك الرد على هذا الأمر بسرعة.

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

إذا كانت البيانات موجودة في صندوق بريدك، فقد يكون من الممكن استخدام واجهة برمجة تطبيقات Gmail لسحبها. ومع ذلك، ستكون هذه المهمة معقدة، حيث يحتاج المطور إلى الوصول إلى صندوق بريد يحتوي على بيانات مجموعة Google لكتابة الكود.

ما لم يكن هناك عميل من فئة المؤسسات يتطلب ذلك، فأنا أشك في أن cdck (المعروفة باسم discourse.org) ستقوم بكتابة هذا الكود في أي وقت قريب. يمكنك طرح سؤالك في قناة Marketplace. من غير المرجح أن أعتبر أي مشروع بهذا السعر أقل من 2000 دولار، ونظرًا للإحباط الذي واجهته سابقًا مع سكريبت استيراد مجموعات Google، فمن المرجح أن أطلب 5000 دولار. بالطبع، قد يكون لدى شخص آخر مهارات أفضل أو صبر أكثر.

إحدى الطرق التي قد تنجح هي استخدام Integromat لكتابة تحويل بافتراض توفر تطبيقات Google Groups وDiscourse. أو استخدام استدعاءات HTTP للاتصال بواجهات برمجة التطبيقات (REST APIs) الخاصة بها بشكل مستقل.

يُعد Integromat نظامًا لدمج البيانات والهجرة. وهو قوي للغاية ويمكنه إنجاز الكثير من المهام مع الحد الأدنى من البرمجة أو بدونها.

لقد جربت Google Takeout بجعل نفسي مالكًا لمجموعة Google Workspace الخاصة بنا وتمكنت من تنزيل محادثات مجموعة Google. ما زلت أعمل على استيرادها.

هناك عدد قليل من السلبيات لهذا النهج.

  1. الحاجة إلى تنزيل البيانات بالكامل مرة أخرى إذا لزم الأمر لإجراء تحديث تزايدي.
  2. غير ممكن تنزيل بيانات مجموعة انتقائية بدلاً من ذلك، سيؤدي هذا إلى تنزيل بيانات لجميع المجموعات التي يمتلك المستخدم صلاحيات المالك أو المدير لها.
  3. الحاجة إلى العمل مع مسؤول Google Workspace لتمكين التصدير لأنه معطل افتراضيًا.
3 إعجابات

مرحباً @Anjana_Raghavendra_P - هل تمكنت من إجراء استيراد بسيط باستخدام هذا النهج؟

شكراً جزيلاً!

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

لاحقًا، نظرًا لأننا نستخدم خدمة PAAS الخاصة بـ Discourse، فقد تم تقديم الملف إلى فريق الدعم الفني لـ Discourse، والذي تمكن من استيراد المحتوى إلى منصة Discourse.

إعجابَين (2)

يسعدني سماع ذلك - شكراً!

لقد واجهت مشكلة @sturdy2 عندما قمت في settings.yml بتغيير السطر الأول data_dir: /shared/import/data من قيمته الافتراضية.

الخلاصة: لا تغيره لأنه يشير إلى المسار داخل حاوية الاستيراد (import docker) وليس على الجهاز الرئيسي.

لدي سؤال حول إعادة تشغيل استيراد؟

أنا لست مطورًا، لكنني تمكنت من استيراد ملفين mbox بنجاح جاءا من نظام يسمى Topicbox Group Email. لقد أجريت استيرادًا تجريبيًا إلى نسخة مؤقتة من Discourse قمت بإعدادها على Digital Ocean. وتمكنت من استيراد ملفي mbox النموذجيين إلى فئات موجودة كنت قد أنشأتها بالفعل في Discourse، وذلك بفضل الملاحظات حول تعيين الفئة.custom_fields[“import_id”] = “mydir” من الأعلى.

رائع! ولكن إذا كنت أرغب في استيراد المزيد من ملفات mbox، فهل يجب علي تشغيل جميع الأوامر المذكورة في الأسئلة الشائعة 2.2، والتي تشير إلى أنها “ستحذف كل شيء”؟

إعجابَين (2)

تمكنت من تعيين “import_id” الخاص بي بنجاح لفئتين كاختبار استيراد أولي. لقد نجح الأمر! تم استيراد ملفي mbox الخاصين بي إلى الفئات الموجودة التي حددتها.

لدي 18 فئة مختلفة أحتاج في النهاية إلى القيام بذلك معها. لا أعرف شيئًا عن Ruby. هل يمكنني إنشاء ملف يحدد اسم الدليل لكل فئة من فئاتي المختلفة حتى لا أضطر إلى إدخال كل سطر يدويًا في واجهة سطر أوامر Ruby؟

إعجابَين (2)

نعم. ابحث عن المزيد من Google “ruby for each”. وأنشئ مصفوفة تحتوي على بعض الفئات.

إعجاب واحد (1)

لا، ليس عليك ذلك. يدعم المستورد الاستيراد التدريجي. سيقوم فقط باستيراد البيانات الجديدة في المرة التالية. يرجى عدم تشغيل الأوامر المذكورة في 2.2 إلا إذا كنت تريد البدء من الصفر.

للأسف، هذا غير ممكن حاليًا. تحتاج إلى تعيين import_id لكل فئة إذا كنت تريد الاستيراد إلى فئات موجودة.

إعجابَين (2)

شكراً جزيلاً @gerhard على كل عملك المذهل في هذا! أنا لست مطوراً، لكنني تمكنت من إكمال عملية ترحيل من نظام قوائم البريد يسمى Topicbox. تمكنت من الحصول على ملفات mbox من Topicbox لاستيرادها إلى Discourse. خلال خطوات التجربة والخطأ، وثقت كل شيء في منشور مدونة. لذلك، إذا كان الأمر مقبولاً؟ أردت لصق رابط لهذا المنشور لأي مستخدمي Topicbox آخرين يرغبون في التحويل إلى Discourse.

4 إعجابات