feat: add TLS support to Rust implementation

- Add async-native-tls dependency for secure IMAP connections
- Implement ImapStream enum supporting both TLS and plain connections
- Add automatic TLS detection based on port (993=TLS, 143=plain, 3143=test)
- Add comprehensive Read/Write trait implementations for stream wrapper
- Add debug logging for connection type verification
- Create example configurations for Gmail, Outlook, and other providers
- Add TLS_SUPPORT.md documentation with security guidelines
- Test with existing test environment and TLS detection logic
- Maintain backward compatibility with plain IMAP for testing

The Rust implementation now supports secure connections to production
email providers while maintaining compatibility with test environments.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
Ole-Morten Duesund 2025-08-02 20:01:42 +02:00
commit 35c3c8657a
5 changed files with 279 additions and 4 deletions

48
rust/config-tls-test.json Normal file
View file

@ -0,0 +1,48 @@
{
"couchDb": {
"url": "http://localhost:5984",
"user": "admin",
"password": "password"
},
"mailSources": [
{
"name": "TLS Test Port 993",
"enabled": true,
"protocol": "imap",
"host": "imap.gmail.com",
"port": 993,
"user": "test@example.com",
"password": "dummy",
"mode": "archive",
"folderFilter": {
"include": ["INBOX"]
}
},
{
"name": "Plain Test Port 143",
"enabled": true,
"protocol": "imap",
"host": "localhost",
"port": 143,
"user": "test",
"password": "dummy",
"mode": "archive",
"folderFilter": {
"include": ["INBOX"]
}
},
{
"name": "Unknown Port Test",
"enabled": true,
"protocol": "imap",
"host": "example.com",
"port": 9999,
"user": "test",
"password": "dummy",
"mode": "archive",
"folderFilter": {
"include": ["INBOX"]
}
}
]
}