سؤال

أنا على وشك إضافة IMAP البريد الإلكتروني التكامل في أحد تطبيقات ويب (ASP.NET / SQL Server).أنا بالفعل باستخدام المكتبة التجارية الذي يعرض أهم وظيفة IMAP:الحصول على قائمة المجلدات ، الحصول على رسالة رؤوس الحصول على رسالة mime.... الخ)

الحصول على بيانات البريد الإلكتروني "العيش" من الملقم IMAP يعمل بشكل جيد جدا.ولكن هنا يأتي المهمة الصعبة:لدي للحفاظ على البريد الإلكتروني/المجلدات التخزين المؤقت SQL قاعدة بيانات متزامنة إلى ملقم IMAP (يجب أن تظهر بيانات تطبيق معايير مختلفة).

لدينا مخطط قاعدة البيانات أساسا يحتوي على "المجلدات" و "البريد الإلكتروني" الجدول.إن "البريد الإلكتروني" الجدول في المقام الأول يحتوي على معلومات رأس مثل "FromAddress", "FromName", "هي مدينة صغيرة", "IsAnswered", "IsForwarded", "HasAttachments" الخ.(دون محتوى البريد الإلكتروني أو المرفقات).

يجب أن تنظر الرئيسية اثنين من السيناريوهات:

  1. الحصول على جميع الرسائل في المرة الأولى (أو بعد فترة من المستخدم إعادة تنظيم المجلدات)
  2. الحصول على الجديدة/أحدث الرسائل

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

وذلك بفضل!

هل كانت مفيدة؟

المحلول

من المكتبة الخاصة بك ميزة قائمة:

أفضل UniqueId الدعم:واضاف لدينا حتى المزيد من الخيارات طلب رسالة معرف فريد.يمكنك الآن عودة UniqueId في الرسالة DataTable عن عودة الرحلات إلى IMAP الملقم.

و:

  • استرداد الرسائل الجديدة فقط
  • البحث ترفع علم رسائل
  • تحديد/عدم تحديد الرسائل كمقروءة

يبدو لي كما لو أن المكتبة الخاصة بك لديه كل الدعم الذي تحتاجه للحفاظ على ملقم SQL الخاصة بك متزامنة.يمكنك برمجيا بمناسبة رسائل القراءة و المكتبة يدعم استرجاع الرسائل الجديدة فقط.الذي يعتني بك البند الثاني.

الاستراتيجية الخاصة بك سوف تعتمد جزئيا على كيفية الحل الخاص بك يعمل.إذا قرأت سؤالك correclty الخاص بك المستخدمين في إدارة البريد الإلكتروني على خادم IMAP و SQL Server الخاص بك هو "مشترك" على خادم IMAP من مزامنة المنظور.

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

الصغيرة الجديدة/حذف البريد الإلكتروني التوافق وظائف الذهاب إلى أحد "المعالج" وأكبر وظائف مثل مجموع resynch و مجلد التنظيم الذهاب إلى آخر.حقا كبيرة resynch فرص العمل قد بد من تقسيم من أجل الحفاظ على مجمل إنتاجية عالية.في "عمل صغير" و "مهمة كبيرة" المعالجات يمكن أن يكون اثنين من الخدمات المختلفة ، أو ربما اثنين من المواضيع المختلفة اعتمادا على الأداء ، اعتبارات التصميم.

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