All notable changes to the Outlook Auto Archive Script will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Console Compatibility: Replaced all Unicode emoji characters with ASCII-compatible alternatives to fix display issues in Windows console
- Universal Display: All text indicators now use ASCII characters that display correctly across all Windows systems
- Professional Appearance: Clean, readable ASCII text indicators ([OK], [ERROR], [TIP], etc.) instead of Unicode symbols
- UI/UX Enhancement: Replaced emoji characters with ASCII alternatives throughout both scripts
- Display Reliability: Improved console output consistency across different terminal environments
- Cross-Platform Compatibility: Enhanced compatibility with various Windows console configurations
- Character Replacement: Converted all Unicode emoji characters to ASCII equivalents
- Script Updates: Updated both
OutlookAutoArchive.ps1andsetup_task_scheduler.ps1 - Executable Rebuild: Rebuilt both executables with ASCII-compatible characters
- Version Update: Incremented version to 2.9.5 across all files
Author: Ryan Zeffiretti
- Task Scheduler Commands: Fixed critical bug in
setup_task_scheduler.ps1where/fparameter was incorrectly used inschtasks /changecommand - Continuous Monitoring Task: Fixed incorrect
/moparameter usage in minute-based scheduling (changed to/mo 1 /ri 240) - Version Consistency: Updated all files to version 2.9.5 for consistency
- README Documentation: Fixed references to use
setup_task_scheduler.exeinstead of.ps1script - Configuration Example: Updated LogPath example in README to use forward slashes
- Simplified Scheduling: Removed startup and continuous monitoring options, now only offers daily scheduled archiving
- User Experience: Streamlined task scheduler setup to reduce complexity and improve reliability
- Documentation: Updated README to reflect simplified scheduling options
- schtasks /change Command: Removed invalid
/fparameter from modify commands - Minute-based Scheduling: Corrected syntax from
/mo 240to/mo 1 /ri 240for proper repeat intervals - Command Logging: Added command logging for better debugging of scheduled task creation
- Documentation Updates: Ensured README reflects current executable-based approach
- Scheduling Simplification: Removed complex startup and monitoring options to focus on reliable daily scheduling
Author: Ryan Zeffiretti
- GitHub Actions Workflow: Fixed PowerShell setup action version compatibility
- Release Automation: Improved automated release process reliability
- PowerShell Version: Updated GitHub Actions to use PowerShell 7.4 for better compatibility
Author: Ryan Zeffiretti
- Enhanced User Interface: Added beautiful ASCII art banners and professional styling throughout the application
- Visual Improvements: Added emojis, color-coded sections, and box-drawn option menus for better user experience
- Professional Formatting: Improved visual hierarchy and user guidance with consistent styling
- Task Scheduler Setup Script: Created user-friendly
setup_task_scheduler.ps1with enhanced UI/UX
- User Experience: Significantly improved the visual appearance and usability of both main script and setup scripts
- Interface Design: Added professional banners, icons, and formatting for all major user interactions
- Error Handling: Enhanced error messages with visual indicators (❌ for errors,
⚠️ for warnings, ✅ for success)
- ASCII Art Banners: Added professional banners for first-run setup, completion screens, and major milestones
- Emoji Integration: Added relevant emojis throughout the interface for better visual communication
- Color Coding: Implemented consistent color scheme for different types of information and status
- Box-Drawn Menus: Created professional-looking option boxes for user choices and configuration
Author: Ryan Zeffiretti
- LogPath Processing: Fixed critical issue where LogPath was not being processed correctly from config.json
- Path Normalization: Improved path processing to handle both escaped and unescaped backslashes in JSON
- Script Directory Variable: Added missing
$scriptDirvariable assignment for normal operation - JSON Escaping: Fixed issue where PowerShell's
ConvertTo-Jsonwas escaping backslashes causing path processing failures
- Path Processing: Enhanced path normalization to handle
".\\Logs"and"./Logs"formats correctly - Variable Assignment: Added
$scriptDir = $installPathfor normal operation (was only set during first-run setup) - Backslash Handling: Improved handling of JSON-escaped backslashes in LogPath configuration
- Fallback Logic: Added robust fallback mechanisms for path processing failures
- Default LogPath: Changed default LogPath from
".\Logs"to"./Logs"to prevent JSON escaping issues - Path Processing Logic: Enhanced path processing to handle both forward slashes and backslashes properly
Author: Ryan Zeffiretti
- Comprehensive Code Comments: Added detailed comments throughout the script to help other developers understand and modify the code
- Enhanced Documentation: Improved inline documentation with section headers, function descriptions, and logic explanations
- Developer-Friendly Structure: Organized code with clear section dividers and explanatory comments
- Section Headers: Added clear section dividers for major code blocks
- Function Documentation: Enhanced helper functions with parameter descriptions and purpose explanations
- Inline Comments: Added detailed explanations for complex logic and variable assignments
- Code Flow Documentation: Documented the purpose and flow of each major section
Author: Ryan Zeffiretti
- Simplified Installation: Removed installation location choice, always installs to
C:\Users\$env:USERNAME\OutlookAutoArchive - Cleaner Code: Eliminated complex installation path selection logic
- Predictable Location: App always knows where everything is located
- Removed: Installation choice prompts and validation logic
- Simplified: Installation process now has one predictable path
- Streamlined: Reduced code complexity and user decision points
Author: Ryan Zeffiretti
- config.example.json: Removed unnecessary example config file and all references to it
- Simplified Installation: Installation now only copies the executable, no longer needs example config
- Cleaner Code: Removed all
$exampleConfigPathvariables and related logic - Streamlined Setup: Config creation now relies entirely on hardcoded defaults
- Reduced Complexity: Eliminated dependency on external example file
Author: Ryan Zeffiretti
- Config Object Initialization: Fixed error when accessing config properties on null object
- Default Values: Config object now properly initialized with default values before first-run setup
- Property Access: Fixed
RetentionDays,GmailLabel, andOnFirstRunproperty access errors - Default Config: Added proper default config initialization when no config file exists
- Error Prevention: Prevents script from crashing when config properties are accessed
Author: Ryan Zeffiretti
- Config Creation Logic: Improved when and where config.json is created
- Installation Directory Priority: Config is now always created in the installation directory
- Simplified Path Logic: Removed complex path detection in favor of consistent installation directory
- Config Creation: config.json is now only created when archive folders are discovered during first-run setup
- Directory Creation: Installation directory is automatically created if it doesn't exist
- Path Consistency: All config operations now use the installation directory consistently
- Error Handling: Better handling of missing or invalid config files
Author: Ryan Zeffiretti
- Installation Directory Detection: Fixed issue where executable was not using the correct config.json from installation directory
- Config Path Resolution: Added logic to detect and use installation directory when config.json exists there
- Archive Folders Persistence: Archive folders are now properly saved to the installation directory's config.json
- Directory Detection: Added check for installation directory at
C:\Users\$env:USERNAME\OutlookAutoArchive - Config Priority: Installation directory config.json takes priority over development directory
- User Experience: Clear indication when installation directory is detected and used
Author: Ryan Zeffiretti
- Console Output Cleanup: Fixed strange directory listing output that appeared during script execution
- New-Item Output Suppression: Added Out-Null to suppress directory creation output
- User Experience: Cleaner console output without unexpected directory listings
- Directory Creation: Suppressed output from New-Item commands when creating log directories
- Console Cleanliness: Eliminated unexpected directory listing that appeared after "=== Continuing with archive process... ==="
- Output Control: Better control over what information is displayed to users
Author: Ryan Zeffiretti
- ArchiveFolders Configuration Reload: Fixed issue where archive folders were not being loaded after first-run setup
- Config Persistence: Added config reload after first-run setup to ensure updated settings are used
- Archive Folder Discovery: Archive folders are now properly loaded and used in subsequent runs
- Config Reload: Added automatic config reload after first-run setup completion
- Archive Folder Loading: Archive folders discovered during setup are now properly loaded for archiving process
- Configuration Flow: Improved the flow between setup and archiving phases
Author: Ryan Zeffiretti
- ArchiveFolders Not Saving: Fixed issue where discovered archive folder paths were not being saved to config.json
- Unexpected Console Output: Removed duplicate console messages that appeared during setup
- Configuration Persistence: Archive folders are now properly stored for future runs
- ArchiveFolders Initialization: Removed redundant initialization that was overwriting discovered folders
- Console Output Cleanup: Streamlined setup messages to avoid confusion
- Config Save Timing: Archive folder discovery now properly persists to configuration file
Author: Ryan Zeffiretti
- PowerShell Warnings: Resolved all PowerShell linting warnings for cleaner code execution
- Unused Variables: Removed unused variable assignments (
newLabel,archivePath,taskDescription,result) - Null Comparison: Fixed
$nullplacement in equality comparisons for better PowerShell practices - Code Quality: Improved code quality and eliminated potential issues
- Variable Cleanup: Removed unused variable assignments that were flagged by PowerShell analyzers
- Best Practices: Changed
$env:COMPUTERNAME -eq $nullto$null -eq $env:COMPUTERNAMEfor better PowerShell practices - Code Optimization: Eliminated unnecessary variable assignments that could cause confusion
- Linting Compliance: Script now passes PowerShell linting checks without warnings
Author: Ryan Zeffiretti
- Simplified Scheduling: Streamlined scheduling options to just 3 clear choices
- Startup + Monitoring: New combined option that starts when computer boots and runs every 4 hours
- Enhanced User Experience: Cleaner interface with fewer confusing options
- Scheduling Options: Reduced from 5 options to 3 options (Daily, Startup + Monitoring, Skip)
- Option 2 Redesign: "When Outlook starts" now includes 4-hour periodic monitoring
- Removed Options: Eliminated separate "Continuous monitoring" and "Smart monitoring" options
- User Interface: Simplified scheduling menu with clearer descriptions
- Task Creation: Option 2 now creates a task with
/sc onstart /delay 0000:30 /mo 4parameters - Graceful Handling: Maintains existing graceful Outlook handling for scheduled runs
- Backward Compatibility: Existing scheduled tasks continue to work normally
Author: Ryan Zeffiretti
- Smart Monitoring: New scheduling option that starts when Outlook opens, then runs every 4-24 hours
- Graceful Outlook Handling: Script now gracefully skips scheduled runs when Outlook is not available (no more failed tasks)
- Enhanced Error Handling: Improved detection of scheduled vs. interactive runs for better error management
- Better User Experience: Clear distinction between different monitoring options with detailed explanations
- Scheduling Options: Added new "Smart monitoring" option (choice 4) that combines Outlook startup with periodic monitoring
- Error Handling: Scheduled runs now exit gracefully with success code (0) when Outlook is not available
- Interactive Detection: Script detects whether it's running interactively or as a scheduled task
- User Interface: Updated scheduling menu to include 5 options with clear descriptions
- Scheduled Run Detection: Uses
[Environment]::UserInteractiveand environment variables to detect task scheduler execution - Graceful Exit: Scheduled runs exit with code 0 instead of 1 when Outlook is unavailable
- Logging Integration: Graceful exits are logged to both console and log files when possible
- Task Scheduler Compatibility: Prevents failed task status in Windows Task Scheduler
Author: Ryan Zeffiretti
- Archive Folder Storage: Archive folder paths are now stored in config.json during first run for faster subsequent executions
- Performance Optimization: Eliminates the need to re-scan and search for archive folders on every run
- Enhanced User Feedback: Shows which archive folders were discovered and stored during setup
- Smart Path Detection: Automatically detects and stores Gmail labels, Inbox folders, and root folders with proper path formatting
- Backward Compatibility: Falls back to searching if stored paths become invalid or inaccessible
- Faster Execution: Subsequent runs use stored archive folder paths instead of searching
- Improved Setup Experience: Clear display of discovered archive folders during first-run setup
- Enhanced Logging: Better tracking of archive folder discovery and storage process
- Optimized Performance: Reduced overhead by eliminating repeated folder searches
- Stored Path Format: Archive folder paths stored as "Type:Path" (e.g., "GmailLabel:OutlookArchive", "Inbox:Archive", "Root:Archive")
- Intelligent Fallback: If stored paths fail, automatically falls back to searching for backward compatibility
- Config Persistence: Archive folder paths persist across application restarts and updates
- User Transparency: Clear indication of which archive folders were found and stored
Author: Ryan Zeffiretti
- Streamlined Installation Process: Only essential files copied during installation (exe + config example)
- User-Friendly README.txt: Simple, clear instructions created during installation instead of complex markdown
- Auto-Skip Non-Email Accounts: Automatically skips Internet Calendars, SharePoint Lists, Public Folders, Calendar, Contacts, Tasks, and Notes
- Clean Installation Directory: Professional, minimal installation with only necessary files
- Simplified File Copying: Reduced from 8 files to 2 essential files during installation
- Enhanced User Experience: Cleaner installation directory with user-friendly documentation
- Improved Account Processing: Non-email accounts automatically skipped during setup and processing
- Professional Appearance: Installation directory now contains only what users need
- Development Files: No longer copies source code, documentation, or repository files to user installations
- Repository Clutter: Eliminated copying of README.md, CHANGELOG.md, LICENSE, CONTRIBUTING.md, SECURITY.md
- Source Code: PowerShell script no longer copied to user installations
- Essential Files Only: Installation now copies only OutlookAutoArchive.exe and config.example.json
- Dynamic README Creation: User-friendly README.txt generated during installation with version-specific content
- Account Type Detection: Intelligent detection and skipping of non-email account types
- Cleaner User Experience: Installation directory contains only executable, config template, and simple README
Author: Ryan Zeffiretti
- Ultimate Single-File Experience: Complete integration of all functionality into the main executable
- Streamlined Distribution: Removed all standalone setup scripts for cleaner downloads
- Simplified User Experience: Everything now handled through the main executable's first-run setup
- Major Version Bump: Version 2.0.0 reflects the complete integration and cleanup
- Documentation Updates: Removed all references to standalone setup scripts
- Project Structure: Cleaner, more focused project with fewer files
- Setup_Archive_Folders.ps1: Archive folder creation now fully integrated into main executable
- Setup_OutlookStartup_Task.ps1: Scheduled task setup now fully integrated into main executable
- Standalone Setup Scripts: All setup functionality consolidated into the main executable
- Complete Integration: All setup functionality now part of the main executable's first-run process
- Simplified Distribution: Users only need to download the main executable and documentation
- Cleaner Repository: Reduced file count and improved project organization
- Better User Experience: Single point of entry for all functionality
Author: Ryan Zeffiretti
- Integrated Outlook Status Check: Enhanced Outlook status checking with better user feedback and guidance
- Convenience Batch File Generation: Option to create convenience .bat files during first-run setup
- Single-File Download Experience: Simplified download with only essential files included
- Interactive Batch File Creation: Users can choose which convenience scripts to create
- Simplified File Structure: Removed unnecessary .bat files from distribution
- Enhanced User Experience: Better error messages and user guidance for Outlook status issues
- Streamlined Setup Process: All functionality now integrated into the main executable
- Cleaner Repository: Reduced file clutter and improved organization
- Standalone Batch Files: Removed
Run_OutlookAutoArchive.bat,Run_OutlookAutoArchive_WithCheck.bat, andSetup_Archive_Folders.batfrom distribution - File Clutter: Eliminated unnecessary wrapper files
- Integrated Functionality: All batch file functionality now integrated into main executable
- Dynamic File Generation: Convenience .bat files generated on-demand during first run
- Improved Error Handling: Better user feedback when Outlook is not running
- Simplified Distribution: Single executable download with optional convenience files
Author: Ryan Zeffiretti
- Interactive Installation Location Setup: New guided installation setup during first-run configuration
- Multiple Installation Options: Users can choose between Program Files, User Documents, custom location, or current location
- Automatic File Migration: Automatically copies all application files to the chosen installation location
- Path Validation: Validates custom installation paths to ensure they are valid
- Installation Feedback: Provides detailed feedback during the installation process
- File Management: Comprehensive file copying with error handling and rollback
- Enhanced First-Run Experience: First-run setup now includes complete installation location configuration
- User Experience: Streamlined installation process with guided location selection
- File Organization: Better organization of application files in chosen installation directory
- Documentation: Updated to reflect new installation capabilities
- Installation Options: Program Files (system-wide), User Documents (user-specific), custom location, or current location
- File Migration: Copies all necessary files including executables, scripts, documentation, and configuration files
- Path Handling: Intelligent path detection and validation for custom installation locations
- Error Recovery: Graceful error handling with fallback to current location if installation fails
- Directory Creation: Automatic creation of installation directories if they don't exist
Author: Ryan Zeffiretti
- Interactive Scheduled Task Setup: New guided scheduling setup during first-run configuration
- Multiple Scheduling Options: Users can choose between daily time-based scheduling, Outlook startup integration, or manual setup
- Automatic Task Creation: Automatically creates Windows Task Scheduler tasks based on user preferences
- Time Input Validation: Validates user time input in 24-hour format for daily scheduling
- Fallback Mechanisms: Graceful fallback to PowerShell script if executable is not found
- Error Handling: Comprehensive error handling for task creation with helpful fallback instructions
- Enhanced First-Run Experience: First-run setup now includes complete scheduling configuration
- User Experience: Streamlined setup process with guided scheduling options
- Task Scheduler Integration: Seamless integration with Windows Task Scheduler
- Documentation: Updated to reflect new scheduling capabilities
- Daily Scheduling: Creates daily tasks at user-specified times using schtasks command
- Startup Integration: Option to use existing Setup_OutlookStartup_Task.ps1 or create basic startup task
- Path Detection: Intelligent detection of executable vs PowerShell script paths
- Task Naming: Consistent task naming conventions for easy identification
- Validation: Time format validation and user input sanitization
Author: Ryan Zeffiretti
- Interactive First-Run Setup: New guided setup process that automatically detects email accounts and configures archive folders/labels.
- Smart Account Detection: Automatically detects Gmail accounts (including @gmail.co.uk) and regular email accounts.
- Configurable Retention Period: Interactive setup allows users to set their preferred retention period (default: 14 days).
- Gmail Label Configuration: Interactive setup for Gmail label names with validation (prevents "Archive" which is not allowed).
- Archive Folder Path Storage: Stores detected archive folder paths in config.json for faster future access.
- Backward Compatibility: Falls back to folder search if stored paths are not found.
- Performance Improvement: Archive folder detection is now much faster using stored paths instead of searching every time.
- User Experience: First-time users get a guided setup experience instead of manual configuration.
- Configuration Management: Archive folder paths are automatically stored and managed in config.json.
- Gmail Support: Enhanced Gmail detection including @gmail.co.uk domains.
- Path Storage Format: Archive folder paths stored as "Type:Name" (e.g., "GmailLabel:OutlookArchive", "Root:Archive", "Inbox:Archive").
- Fallback Mechanism: If stored paths fail, script falls back to original search method for compatibility.
- Config Structure: Added
OnFirstRunandArchiveFoldersfields to config.json. - Validation: Gmail label names validated to prevent invalid characters.
Author: Ryan Zeffiretti
- Complete Folder Detection System: Fixed critical issue where script couldn't find archive folders in Outlook accounts.
- Multi-Account Support: Script now properly detects and processes all email accounts (Gmail, Outlook, Exchange, etc.).
- Gmail Label Support: Full support for Gmail labels as archive folders (e.g., "OutlookArchive").
- Comprehensive Testing: Thorough testing completed with 1,000+ emails processed across multiple accounts.
- Outlook Folder Access: Completely rewrote folder detection logic to use
$namespace.Foldersinstead of$namespace.Stores. - Gmail Label Detection: Fixed Gmail label access by using direct folder enumeration through namespace.
- Account Processing: Script now correctly processes all account types and finds their respective archive folders.
- Skip Rules Functionality: Verified skip rules work correctly across all account types.
- Architecture: Changed from store-based to account-based processing for better compatibility.
- Folder Detection: Improved
Get-ArchiveFolderfunction to work with account objects instead of store objects. - Error Handling: Enhanced error handling for folder access and account processing.
- Documentation: Updated README to reflect successful testing and working status.
- Namespace Access: Switched from
$namespace.Storesto$namespace.Foldersfor proper account enumeration. - Account Processing: Updated all functions to work with account objects (
$account) instead of store objects ($store). - Folder Detection: Improved logic to find archive folders in Inbox, root level, and Gmail labels.
- Testing Results: Successfully tested with Gmail accounts (using labels), regular email accounts (using folders), and skip rules.
Author: Ryan Zeffiretti
- Path Binding Errors: Resolved "cannot bind argument to parameter path" errors
- Null Path Issues: Fixed null path binding errors in logging setup
- JSON Parsing: Improved config.json handling and error recovery
- Executable Console Mode: Fixed popup windows by using proper console mode
- Log Path Processing: Enhanced handling of environment variables and backslashes
- Enhanced Error Handling: More robust error handling throughout the script
- Improved Logging: Better logging system with safe file writing
- Path Resolution: Better path handling for both script and executable modes
- User Experience: Emphasized executable usage for end users
- Documentation: Updated to clarify executable vs source code usage
- Safe Logging: New
Write-Logfunction with proper error handling - Path Detection: Improved script directory detection for executables
- JSON Validation: Better error messages for configuration issues
- Console Mode: Proper console application build for better user experience
Author: Ryan Zeffiretti
- Outlook Status Check: Automatic verification that Outlook is running before execution
- Enhanced Batch File:
Run_OutlookAutoArchive_WithCheck.batwith Outlook status verification - Startup Task Setup:
Setup_OutlookStartup_Task.ps1for creating Outlook startup tasks - Improved Error Handling: Better logging and error recovery for path issues
- Outlook Startup Integration: Task that waits for Outlook to start before running archive
- Enhanced Safety: Script now checks Outlook status before attempting operations
- Better Logging: Improved error handling and logging with null checks
- Scheduled Task Options: Added method to run when Outlook starts automatically
- Documentation: Updated with new features and improved setup instructions
- Outlook Detection: Uses
Get-Processto verify Outlook is running - Path Handling: Improved error handling for log path processing
- Task Scheduler: New PowerShell script for creating Outlook startup tasks
- Error Recovery: Graceful handling of missing paths and configuration issues
Author: Ryan Zeffiretti
- Executable Version: Created
OutlookAutoArchive.exefor easy deployment - Batch File: Added
Run_OutlookAutoArchive.batfor user-friendly execution - Enhanced User Experience: No PowerShell execution policy issues
- Task Scheduler Support: Easy integration with Windows Task Scheduler
- Double-Click Execution: Users can run by double-clicking the batch file
- Installation: Simplified with executable and batch file options
- Documentation: Updated README with executable usage instructions
- Version Management: Updated to version 1.2.0
- GitHub Preparation: Project ready for GitHub release
- Executable: Created using PS2EXE tool
- Compatibility: Works on Windows with Outlook installed
- Configuration: Still uses
config.jsonfor all settings
Author: Ryan Zeffiretti
- External Configuration: Moved from hardcoded settings to
config.jsonfile - Enhanced Skip Rules: Configurable skip rules via JSON configuration
- Improved Gmail Support: Configurable Gmail label support
- Better Error Handling: Enhanced error handling for missing config files
- JSON Configuration: All settings now configurable via
config.json - Flexible Skip Rules: Support for multiple mailbox-specific skip rules
- Environment Variable Support:
%USERPROFILE%variable support in log paths - Config Validation: Basic JSON validation and error reporting
Author: Ryan Zeffiretti
- Initial release of Outlook Auto Archive Script
- Automatic email archiving with configurable retention period
- Dry-run mode for safe testing
- Comprehensive logging system
- Multi-account support
- Smart archive folder detection
- Duplicate email prevention
- Custom skip rules for specific emails
- Year/month folder organization structure
- Archive Folder Detection: Automatically finds Archive folders in multiple locations:
Inbox\Archive- Root-level
Archive - Gmail-style
OutlookArchive
- Organized Structure: Creates year/month hierarchy (e.g.,
Archive\2025\2025-08) - Safety Features: Dry-run mode, duplicate prevention, comprehensive logging
- Custom Skip Rules: Built-in logic to skip monitoring alerts and other specific emails
- PowerShell script using Outlook COM Interop
- Configurable retention period (default: 14 days)
- Timestamped log files in user documents folder
- Error handling for missing folders and permissions
- Support for multiple Outlook accounts/stores
- This is an "as-is" script created for personal use
- No planned updates unless critical issues are found
ALWAYS BACKUP YOUR DATA BEFORE USE! While this script includes safety features like dry-run mode and comprehensive logging, it's your responsibility to ensure you have proper backups of your email data before using this tool.
This software is provided "AS IS" without warranty of any kind. The author makes no representations or warranties about the accuracy, reliability, completeness, or suitability of this software for any purpose.
The author shall not be liable for any direct, indirect, incidental, special, consequential, or punitive damages, including but not limited to:
- Loss of data or emails
- Email corruption or deletion
- System corruption
- Any other damages arising from the use of this software
By using this software, you acknowledge that:
- You have backed up your email data before use
- You understand the risks involved in email operations
- You accept full responsibility for any consequences
- You will test the software in dry-run mode first
- You have read and understood all disclaimers
- 1.4.0: Bug fixes and improved error handling (2025-08-13)
- 1.3.0: Outlook status check and startup integration (2025-08-13)
- 1.2.0: Executable version and enhanced user experience (2025-08-13)
- 1.1.0: External configuration and enhanced skip rules (2025-08-13)
- 1.0.0: Initial release with core functionality (2025-08-13)