لدي منشورات تمتد على مدار 28 عامًا، مع مجلد لكل سنة، وملف mbox لكل شهر. يوجد 66909 رسالة في ملفات mbox. يُظهر الاستيراد 65895. هل الفرق البالغ 1014 ناتج عن حالات الفشل المذكورة في مخرجات الاستيراد؟
تم تحويل المنشورات من ملفات Eudora mbx إلى ملفات mbox قياسية باستخدام Aid4Mail.
بالنسبة لخطأ “رسالة الأصل غير موجودة”، أرى 421 حالة.
وبالنسبة لخطأ “فشل في تعيين المنشور”، أرى 149 حالة.
تعبير split_regex الخاص بي هو “^From .@. [0-9]{4}”، والذي يبدو مناسبًا للعناوين مثل:
لقد رأيت نفس الخطأ الأسبوع الماضي أثناء العمل على مشكلة مختلفة. سأقوم بإصلاحه هذا الأسبوع وسأقوم بنشر تحديث هنا بمجرد إصلاحه.
هذه مجرد تحذيرات وربما تظهر بسبب أخطاء “فشل في تعيين المنشور”. يحدث ذلك عندما تشير رسالة إلى منشور غير موجود. أنا متأكد تمامًا من أن إصلاح المشكلة الأخرى سيصلح معظم هذه التحذيرات، إن لم يكن جميعها.
يمكنك إلقاء نظرة على ملف index.db الذي ينشئه برنامج الاستيراد. إنه قاعدة بيانات SQLite3. يمكنك تشغيل الاستعلام التالي لمعرفة ما يعمل عليه المحلل. يقوم هذا الاستعلام باختيار الرسائل الخاصة بمعرفي Message-ID اللذين نشرتهما.
SELECT *
FROM email
WHERE msg_id IN ('bbe76bf7a9cab5a2ec2a06e6ef453555', '23a86e52-71ba-7435-1c9c-c4f2a134b90d@mmtaylor.net')
أعتقد أن عمودي email_date و raw_message سيكونان العمودين الأكثر إثارة للاهتمام بالنسبة لك. ربما يمكنك العثور على ما يربك محلل البريد الإلكتروني…
بالنسبة لأول رسالة، التاريخ هو null، وألاحظ عدم وجود تاريخ لتلك الرسالة في صندوق الوارد (mbx). ألاحظ أن الرد (الذي يحتوي على :Re) يظهر قبل الرسالة “الأصلية”، وهو ما جعلني أظن أن التاريخ غير مفقود. هل يستورد النظام الرسائل الأصلية كأول رسالة في الملف تحمل نفس الموضوع؟
هل يتم أخذ تاريخ البريد الإلكتروني من سطر “Date:”، مثل هذا؟
لقد قمت بتعيين إعداد group_messages_by_subject إلى true لأنه بدونه لم يكن هناك أي تجميع على الإطلاق.
تحتوي هذه الرسالة على صورتين مدمجتين:
Content-Type: application/octet-stream;
name=“Conflict (was … long live Wil”
Content-Transfer-Encoding: base64
Content-Disposition: inline; filename=“Conflict (was … long live Wil”
نعم، هذا يعمل. لقد قمت بنفس الشيء في الماضي. أنصحك بتعيين index_only إلى true في ملف settings.yml، حتى لا يبدأ الاستيراد فورًا بعد فهرسة الرسائل. يمكنك إجراء جميع التغييرات المطلوبة في قاعدة البيانات بعد انتهاء الفهرسة. ثم غيّر index_only إلى false مرة أخرى وأعد تشغيل الاستيراد.
أعتقد أنني أساءت فهم شيء ما هناك. أليس الفهرسة قد اكتملت بالفعل، نظرًا لأن ملف index.db قد تم بناؤه؟
لقد قمت بنقل ملف index.db إلى سطح المكتب. كنت سأقوم بتحديث التواريخ ثم نقل ملف index.db مرة أخرى إلى الخادم وتشغيل الاستيراد مرة أخرى. أليس ذلك صحيحًا؟
لقد قررت اتباع نهج تعديل ملفات mbox وإضافة سطر “Date”، مثل “Date: Wed, 25 Mar 1992 17:43:06”. قمت بنقل الملفات المحدثة وأعدت تشغيل عملية الاستيراد مرتين. ومع ذلك، لم يتم تحديث حقل email_date.