Files
rs-pop-imap-importer/README.md
T
2025-12-04 11:59:30 +01:00

74 lines
2.0 KiB
Markdown

# POP to IMAP Importer
A Rust application that downloads emails from a POP3 server and imports them into an IMAP server's INBOX.
## Features
- **POP3 to IMAP Migration**: Downloads all emails from a POP3 server and imports them to IMAP
- **IMAP Email Normalization**: Fix existing malformed emails already in your IMAP inbox
- Secure TLS connections
- Environment-based configuration
- Automatic email header normalization (RFC 5322 compliance)
- Fixes improperly formatted header continuation lines
- Ensures continuation lines start with proper whitespace
- Safe operation with dry-run mode and confirmation prompts
## Setup
1. Copy `.env.example` to `.env`:
```bash
cp .env.example .env
```
2. Edit `.env` with your server credentials:
```env
# POP3 Source Server Configuration
POP3_HOST=pop.example.com
POP3_PORT=995
POP3_USERNAME=your_pop3_username
POP3_PASSWORD=your_pop3_password
# IMAP Destination Server Configuration
IMAP_HOST=imap.example.com
IMAP_PORT=993
IMAP_USERNAME=your_imap_username
IMAP_PASSWORD=your_imap_password
```
## Usage
### POP3 to IMAP Migration
Run the main importer to migrate emails from POP3 to IMAP:
```bash
cargo run --bin pop-to-imap
# or in release mode
cargo run --release --bin pop-to-imap
```
### Normalize Existing IMAP Emails
If you already have malformed emails in your IMAP inbox, use the normalization tool:
```bash
# Dry run to see what would be changed
cargo run --release --bin normalize-imap -- --dry-run
# Actually normalize the emails (will prompt for confirmation)
cargo run --release --bin normalize-imap
# Skip confirmation prompt
cargo run --release --bin normalize-imap --yes
```
**Note:** The normalize-imap tool will:
1. Fetch all emails from your IMAP INBOX
2. Analyze which emails have malformed headers
3. Show you a summary of what needs to be fixed
4. Delete and re-import only the emails that need normalization
5. Keep emails that are already RFC 5322 compliant unchanged