# Mail Server Setup ## Gmail Configuration ### 1. Enable 2-Step Verification App Passwords require 2-Step Verification to be enabled on your Google account. 1. Go to https://myaccount.google.com/security 2. Under "How you sign in to Google", click **2-Step Verification** 3. Follow the prompts to enable it ### 2. Create an App Password 1. Go to https://myaccount.google.com/apppasswords 2. Enter a name (e.g. "Mail TUI") and click **Create** 3. Google will display a 16-character password — copy it ### 3. Update config.toml ```toml [imap] host = "imap.gmail.com" port = 993 username = "you@gmail.com" password = "xxxx xxxx xxxx xxxx" use_tls = true ``` Replace the password with the app password from step 2 (spaces are optional). **Important:** Do not commit `config.toml` — it is listed in `.gitignore`. ## Local Test Server (Docker) ### Quick Start 1. **Start the mail server:** ```bash docker-compose up -d ``` 2. **Create a test user:** ```bash docker exec -it mailserver setup email add test@example.com password123 ``` 3. **Verify the server is running:** ```bash docker-compose ps ``` ### IMAP Connection Details - **Host:** localhost - **IMAP Port:** 143 (unencrypted) or 993 (SSL/TLS) - **Username:** test@example.com - **Password:** password123 ### Useful Commands ```bash # Stop the mail server docker-compose down # View logs docker-compose logs -f mailserver # List all email accounts docker exec -it mailserver setup email list # Add another user docker exec -it mailserver setup email add user2@example.com pass456 # Delete a user docker exec -it mailserver setup email del test@example.com # Access the container shell docker exec -it mailserver bash ``` ### Testing with telnet You can test IMAP connectivity: ```bash telnet localhost 143 ``` Then try IMAP commands: ``` a1 LOGIN test@example.com password123 a2 LIST "" "*" a3 SELECT INBOX a4 LOGOUT ``` ### Send Test Email ```bash # From within the container docker exec -it mailserver bash echo "Test email body" | mail -s "Test Subject" test@example.com ``` Or use SMTP (port 25/587) from your application. ## Troubleshooting - Gmail: if login fails, verify that 2-Step Verification is enabled and you're using an App Password (not your regular password) - Docker: check logs with `docker-compose logs mailserver` - Ensure ports aren't already in use - Data persists in `./docker-data/` directory