diff --git a/CLAUDE.md b/CLAUDE.md index 1af233d..41c787e 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -110,10 +110,14 @@ To complete the implementation, the following items need to be addressed: 1. **Real IMAP Message Parsing**: Replace placeholder message generation with actual IMAP message fetching and parsing using the correct go-imap/v2 API 2. **Message Body Extraction**: Implement proper text/plain and text/html body extraction from multipart messages -3. **Attachment Handling**: Add support for email attachments (optional) -4. **Error Recovery**: Add retry logic for network failures and partial sync recovery -5. **Performance**: Add batch operations for better CouchDB insertion performance -6. **Testing**: Add unit tests for all major components +3. **Keyword Filtering**: Add support for filtering messages by keywords in: + - Subject line (`subjectKeywords`) + - Sender addresses (`senderKeywords`) + - Recipient addresses (`recipientKeywords`) +4. **Attachment Handling**: Add support for email attachments (optional) +5. **Error Recovery**: Add retry logic for network failures and partial sync recovery +6. **Performance**: Add batch operations for better CouchDB insertion performance +7. **Testing**: Add unit tests for all major components ## Development Guidelines diff --git a/TODO.md b/TODO.md new file mode 100644 index 0000000..e004c00 --- /dev/null +++ b/TODO.md @@ -0,0 +1,47 @@ +# mail2couch TODO and Feature Requests + +## Planned Features + +### Keyword Filtering for Messages + +Add support for filtering messages by keywords in various message fields. This would extend the current `messageFilter` configuration. + +**Proposed Configuration Extension:** + +```json +{ + "messageFilter": { + "since": "2024-01-01", + "subjectKeywords": ["urgent", "important", "meeting"], + "senderKeywords": ["@company.com", "notifications"], + "recipientKeywords": ["team@company.com", "all@"] + } +} +``` + +**Implementation Details:** + +- `subjectKeywords`: Array of keywords to match in email subject lines +- `senderKeywords`: Array of keywords to match in sender email addresses or names +- `recipientKeywords`: Array of keywords to match in recipient (To/CC/BCC) addresses or names +- Keywords should support both inclusive (must contain) and exclusive (must not contain) patterns +- Case-insensitive matching by default +- Support for simple wildcards or regex patterns + +**Use Cases:** + +1. **Corporate Email Filtering**: Only backup emails from specific domains or containing work-related keywords +2. **Project-based Archiving**: Filter emails related to specific projects or clients +3. **Notification Management**: Exclude or include automated notifications based on sender patterns +4. **Security**: Filter out potential spam/phishing by excluding certain keywords or senders + +**Implementation Priority:** Medium - useful for reducing storage requirements and focusing on relevant emails. + +## Other Planned Improvements + +1. **Real IMAP Message Parsing**: Replace placeholder data with actual message content +2. **Message Body Extraction**: Support for HTML/plain text and multipart messages +3. **Attachment Handling**: Optional support for email attachments +4. **Batch Operations**: Improve CouchDB insertion performance +5. **Error Recovery**: Retry logic and partial sync recovery +6. **Testing**: Comprehensive unit test coverage \ No newline at end of file