Skip to content

Email Tools v1.0.2

Latest

Choose a tag to compare

@ParhamGhafouri ParhamGhafouri released this 23 Jul 15:15

English  |  فارسی

English

Email Tools v1.0.2 is a focused reliability release for Emergency Archive, Smart Archive, legacy PST draining, daily archive-season repair, mailbox-size detection, body indexing, and GAL synchronization.

This release contains only the fixes and maintenance improvements introduced for v1.0.2.

Emergency Archive Reliability

Earlier builds could temporarily fail to read mailbox size while Outlook was connecting and treat the unavailable value as if the mailbox were not full. Version 1.0.2 now:

  • Treats missing mailbox metrics as not ready, never as not full.
  • Retries the current-session size and quota reading without blocking Outlook.
  • Preserves the last valid cached values instead of replacing them with zero.
  • Updates an already-open Settings window when current values become available.
  • Gives Emergency Archive priority over every other mailbox-maintenance task.
  • Starts emergency relief without waiting for user inactivity.
  • Runs the bounded 30-day, 20-day, and 10-day emergency sequence when required.
  • Requires a fresh mailbox measurement before reporting that the emergency condition has been relieved.
  • Keeps the separate normal daily archive due after emergency relief.

Smart Archive Status and Completion

Smart Archive could previously appear as running even when it had not started real archive work. Version 1.0.2 reports the actual phase and counters, including preparation, waiting, scanning, legacy drain, season checking, examined items, eligible items, successful moves, failures, no eligible items, and incomplete verification.

LastRunDate is now written only after the complete normal daily workflow succeeds. A blocked, unreadable, partially drained, or unverified run cannot be recorded as successful.

Strict Single-Owner Maintenance

Version 1.0.2 adds one exclusive maintenance lane for:

  • Mailbox readiness and the emergency decision
  • Emergency Archive
  • Archive preparation
  • Normal Smart Archive
  • Vacation Mode mailbox changes
  • Conversation History repair
  • Flagged-mail recovery
  • Body indexing
  • GAL synchronization

Only one operation may perform Outlook/MAPI maintenance at a time. Active work is not interrupted halfway through; higher-priority pending work receives the next safe opportunity.

This prevents GAL from starting during indexing, indexing from starting during GAL, normal archive from entering Emergency Archive, and other mailbox operations from overtaking required emergency or archive work.

Faster Idle Resume Without UI Stalls

Normal indexing, archive movement, and Conversation History processing now resume after approximately one second of user inactivity instead of three seconds.

The first work slices remain deliberately small and grow only after longer inactivity. Emergency Archive still has no idle delay. Large folder discovery is also processed in bounded chunks to keep Outlook responsive.

Legacy PST Drain and Permanent Removal

The legacy migration path was reviewed from classification through physical deletion.

Version 1.0.2 now:

  • Protects the default store and every configured account delivery PST.
  • Fails closed when a store cannot be classified safely.
  • Processes the live mailbox before normal legacy migration.
  • Uses Outlook Move() only; no copy-and-delete fallback is used.
  • Retries failed moves with a freshly resolved destination.
  • Keeps Conversation History-owned folders under the dedicated repair process.
  • Recursively verifies that the exact physical source-item count is zero.
  • Removes source-targeting Move/Copy rules only after zero verification.
  • Releases Outlook references before detaching the store.
  • Confirms that Outlook no longer has the PST mounted.
  • Permanently deletes the exact PST and verifies that the file is gone.
  • Keeps the daily archive incomplete while an empty PST remains locked or present.
  • Uses path, file length, and last-write time for deferred deletion authorization.
  • Reprocesses a changed file through the complete safety pipeline instead of deleting it from stale metadata.
  • Removes unsafe path-only reboot deletion.

A damaged, unreadable, non-empty, or partially drained PST is preserved and retried. Email Tools never deletes unverified leftover mail merely to make the archive appear complete.

Required Daily Archive-Season Self-Heal

Archive-season self-heal remains a required daily task and is now incremental:

  • Stores, folders, and table rows are processed in bounded steps.
  • A stable candidate list is built before modifying each folder.
  • Misfiled messages are moved to the correct account, season, and folder.
  • Moved identities are reconciled with the local body index.
  • Any required self-heal failure keeps the daily run incomplete and prevents LastRunDate from being written.

Body Index and GAL Coordination

  • Active index cycles are no longer reset by repeated sweep requests.
  • Additional sweeps are coalesced.
  • GAL waits for both the index reader and database writer queue.
  • A recovered external GAL worker is recognized as the current maintenance owner.
  • Uncertain external-worker state blocks competing maintenance instead of failing open.
  • A full body-index reconciliation runs after GAL completes.

Sent Items Archive Eligibility

Eligible Sent Items can now use SentOn or CreationTime when ReceivedTime is unavailable, preventing valid sent messages from being silently skipped.

Updated SQLite Stack

Version 1.0.2 updates and pins the local index stack to:

  • Microsoft.Data.Sqlite.Core 8.0.29
  • SQLitePCLRaw 3.0.4 packages
  • SourceGear.sqlite3 3.53.3
  • Current compatible System.Memory, System.Buffers, Unsafe, and Numerics.Vectors dependencies

Both x86 and x64 native SQLite payloads remain included by the installer build.

Installer and Release Reliability

  • The build restores and verifies exact dependency versions and paths.
  • VSTO manifests are recalculated and signed after the final add-in assembly is produced.
  • The updater, GAL worker, and installer are verified against the pinned signing certificate.
  • Stale release output is removed before a new build.
  • version.json must match both the installer and RAR SHA-256 values.
  • Same-version repair is supported and downgrade to an older Email Tools release is blocked.
  • The installer no longer removes unrelated Outlook resiliency registry data.

Installation

Existing v1.0.1 and v1.0.0 users do not need to uninstall first. Install the signed v1.0.2 package over the current installation after Outlook closes.

Email Tools remains a per-user installation and does not require administrator rights.


فارسی

نسخهٔ Email Tools v1.0.2 یک انتشار متمرکز بر پایداری Emergency Archive، Smart Archive، تخلیهٔ PSTهای قدیمی، اصلاح روزانهٔ فصل‌های آرشیو، تشخیص حجم صندوق، ایندکس متن ایمیل‌ها و همگام‌سازی GAL است.

این متن فقط اصلاحات و بهبودهای نگهداری اضافه‌شده در نسخهٔ 1.0.2 را توضیح می‌دهد.

پایداری Emergency Archive

در نسخه‌های قبلی ممکن بود هنگام اتصال اولیهٔ Outlook، حجم صندوق موقتاً خوانده نشود و این وضعیت به‌اشتباه به معنی پرنبودن صندوق در نظر گرفته شود. نسخهٔ 1.0.2 اکنون:

  • ناموجودبودن اطلاعات حجم صندوق را به معنی آماده‌نبودن می‌داند، نه پرنبودن.
  • حجم و سهمیهٔ نشست فعلی را بدون مسدودکردن Outlook دوباره تلاش می‌کند.
  • در صورت خطای موقت، مقدار معتبر قبلی را با صفر جایگزین نمی‌کند.
  • بعد از آماده‌شدن مقادیر فعلی، پنجرهٔ Settings بازشده را به‌روزرسانی می‌کند.
  • Emergency Archive را در اولویت همهٔ عملیات نگهداری صندوق قرار می‌دهد.
  • برای تخلیهٔ اضطراری منتظر بی‌کاری کاربر نمی‌ماند.
  • در صورت نیاز توالی محدود ۳۰ روز، ۲۰ روز و ۱۰ روز را اجرا می‌کند.
  • پیش از اعلام رفع وضعیت اضطراری، یک اندازه‌گیری تازه از صندوق می‌خواهد.
  • بعد از تخلیهٔ اضطراری، اجرای عادی روزانه را همچنان لازم نگه می‌دارد.

وضعیت و پایان واقعی Smart Archive

Smart Archive ممکن بود پیش از شروع کار واقعی در وضعیت Running نمایش داده شود. نسخهٔ 1.0.2 مرحله و شمارندهٔ واقعی را نمایش می‌دهد؛ از جمله آماده‌سازی، انتظار، اسکن، تخلیهٔ Legacy، بررسی فصل‌ها، موارد بررسی‌شده، موارد واجد شرایط، انتقال‌های موفق، خطاها، نبود مورد واجد شرایط و بررسی ناقص.

LastRunDate فقط پس از موفقیت کامل فرآیند عادی روزانه نوشته می‌شود. اجرای مسدود، ناخوانا، نیمه‌تخلیه‌شده یا تأییدنشده دیگر موفق ثبت نمی‌شود.

مسیر انحصاری واحد برای نگهداری

نسخهٔ 1.0.2 یک مسیر انحصاری برای موارد زیر اضافه می‌کند:

  • آماده‌شدن اطلاعات صندوق و تصمیم اضطراری
  • Emergency Archive
  • آماده‌سازی فضای آرشیو
  • Smart Archive عادی
  • تغییرات Vacation Mode
  • اصلاح Conversation History
  • بازیابی ایمیل‌های پرچم‌دار
  • ایندکس متن ایمیل‌ها
  • همگام‌سازی GAL

در هر لحظه فقط یک عملیات می‌تواند روی Outlook/MAPI کار کند. کار فعال در میانه قطع نمی‌شود و کار مهم‌تر در اولین فرصت امن بعدی اجرا می‌شود.

این تغییر از شروع GAL هنگام ایندکس، شروع ایندکس هنگام GAL، ورود آرشیو عادی به Emergency Archive و جلو زدن کارهای دیگر از تخلیهٔ ضروری جلوگیری می‌کند.

شروع دوباره پس از یک ثانیه بدون ایجاد وقفهٔ رابط کاربری

ایندکس عادی، انتقال آرشیو و Conversation History اکنون پس از حدود یک ثانیه بی‌کاری کاربر دوباره شروع می‌شوند؛ در نسخهٔ قبلی این زمان سه ثانیه بود.

اولین بخش‌های پردازش کوچک نگه داشته شده‌اند و فقط پس از بی‌کاری طولانی‌تر بزرگ می‌شوند. Emergency Archive همچنان بدون تأخیر بی‌کاری اجرا می‌شود. شناسایی پوشه‌های بزرگ نیز در بخش‌های محدود انجام می‌شود تا Outlook پاسخ‌گو بماند.

تخلیه و حذف دائمی PSTهای قدیمی

مسیر Legacy از مرحلهٔ تشخیص تا حذف فیزیکی بازبینی شده است. نسخهٔ 1.0.2 اکنون:

  • Store پیش‌فرض و PST تحویل هر حساب را محافظت می‌کند.
  • اگر تشخیص امن Store ممکن نباشد، به‌صورت Fail Closed عمل می‌کند.
  • پیش از مهاجرت عادی Legacy، صندوق زنده را پردازش می‌کند.
  • فقط از Move() در Outlook استفاده می‌کند و Copy-Delete انجام نمی‌دهد.
  • انتقال ناموفق را با مقصدی که دوباره پیدا شده است تکرار می‌کند.
  • پوشه‌های متعلق به Conversation History را به فرآیند اختصاصی آن واگذار می‌کند.
  • به‌صورت بازگشتی تأیید می‌کند که تعداد دقیق موارد فیزیکی مبدأ صفر است.
  • Ruleهای Move/Copy مربوط به مبدأ را فقط بعد از تأیید صفر حذف می‌کند.
  • Referenceهای Outlook را پیش از جداکردن Store آزاد می‌کند.
  • تأیید می‌کند PST دیگر در Outlook متصل نیست.
  • فایل PST دقیق را برای همیشه حذف می‌کند و نبودن فایل را تأیید می‌کند.
  • تا زمانی که PST خالی ولی قفل‌شده هنوز وجود دارد، اجرای روزانه را ناقص نگه می‌دارد.
  • برای حذف با تأخیر از مسیر، اندازهٔ فایل و زمان آخرین تغییر استفاده می‌کند.
  • فایل تغییریافته را به فرآیند کامل بررسی بازمی‌گرداند و با اطلاعات قدیمی حذف نمی‌کند.
  • حذف ناامن فقط بر اساس مسیر در Restart را حذف می‌کند.

PST خراب، ناخوانا، غیرخالی یا نیمه‌تخلیه‌شده حفظ و دوباره تلاش می‌شود. Email Tools برای نمایش موفقیت ظاهری، ایمیل تأییدنشدهٔ باقی‌مانده را حذف نمی‌کند.

اصلاح اجباری روزانهٔ فصل‌های آرشیو

Archive-season self-heal همچنان یک کار اجباری روزانه است و اکنون به‌صورت مرحله‌ای اجرا می‌شود:

  • Storeها، پوشه‌ها و ردیف‌های Table در بخش‌های محدود پردازش می‌شوند.
  • پیش از تغییر هر پوشه، فهرست پایدار موارد ساخته می‌شود.
  • پیام‌های اشتباه به حساب، فصل و پوشهٔ صحیح منتقل می‌شوند.
  • هویت موارد منتقل‌شده با Body Index هماهنگ می‌شود.
  • هر خطای ضروری Self-Heal اجرای روزانه را ناقص نگه می‌دارد و مانع نوشتن LastRunDate می‌شود.

هماهنگی Body Index و GAL

  • درخواست‌های تکراری دیگر چرخهٔ فعال ایندکس را از ابتدا شروع نمی‌کنند.
  • درخواست‌های اضافه با هم ادغام می‌شوند.
  • GAL تا پایان Reader ایندکس و صف Writer پایگاه داده منتظر می‌ماند.
  • GAL Worker بازیابی‌شده از نشست قبلی به‌عنوان مالک فعلی نگهداری شناخته می‌شود.
  • وضعیت نامطمئن Worker به‌جای Fail Open، کارهای رقیب را مسدود می‌کند.
  • بعد از پایان GAL، هماهنگ‌سازی کامل Body Index اجرا می‌شود.

بهبود تشخیص Sent Items

برای بعضی پیام‌های Sent Items، در صورت نامناسب‌بودن ReceivedTime از SentOn یا CreationTime استفاده می‌شود تا پیام واجد شرایط نادیده گرفته نشود.

به‌روزرسانی SQLite

نسخهٔ 1.0.2 مجموعهٔ Local Index را به نسخه‌های زیر به‌روزرسانی و ثابت می‌کند:

  • Microsoft.Data.Sqlite.Core 8.0.29
  • بسته‌های SQLitePCLRaw 3.0.4
  • SourceGear.sqlite3 3.53.3
  • نسخه‌های سازگار فعلی System.Memory، System.Buffers، Unsafe و Numerics.Vectors

فایل‌های Native SQLite برای Outlookهای x86 و x64 همچنان توسط ساخت Installer اضافه می‌شوند.

پایداری Installer و Release

  • Build نسخه‌ها و مسیرهای دقیق Dependencyها را بازیابی و بررسی می‌کند.
  • Manifestهای VSTO بعد از تولید فایل نهایی Add-in دوباره محاسبه و امضا می‌شوند.
  • Updater، GAL Worker و Installer با گواهی امضای سنجاق‌شده بررسی می‌شوند.
  • خروجی قدیمی پیش از Build جدید حذف می‌شود.
  • version.json باید با SHA-256 دقیق Installer و RAR مطابقت داشته باشد.
  • Repair همان نسخه پشتیبانی می‌شود و Downgrade به نسخهٔ قدیمی‌تر مسدود است.
  • Installer دیگر اطلاعات نامرتبط Outlook Resiliency را حذف نمی‌کند.

نصب

کاربران نسخهٔ v1.0.0 و v1.0.1 نیازی به حذف نسخهٔ قبلی ندارند. پس از بسته‌شدن Outlook، بستهٔ امضاشدهٔ v1.0.2 را روی نصب فعلی اجرا کنید.

نصب Email Tools همچنان در سطح کاربر انجام می‌شود و به دسترسی Administrator نیاز ندارد.