interface Implements multi-user authentication system with email account management, profile settings, drive configuration, and security controls. Includes database migrations for user accounts, email credentials, preferences, and session management. Frontend provides intuitive UI for adding IMAP/SMTP accounts with provider presets and connection testing. Backend supports per-user vector databases for email and file indexing with Zitadel SSO integration and automatic workspace initialization. ```
306 lines
No EOL
6.9 KiB
Markdown
306 lines
No EOL
6.9 KiB
Markdown
# Account Setup Quick Guide
|
|
|
|
## 🚀 Quick Start
|
|
|
|
### Step 1: Run Database Migration
|
|
|
|
First, apply the new database migration to add user account tables:
|
|
|
|
```bash
|
|
cd botserver
|
|
diesel migration run
|
|
```
|
|
|
|
This creates the following tables:
|
|
- `user_email_accounts` - Store email credentials
|
|
- `email_drafts` - Save email drafts
|
|
- `email_folders` - Cache folder structure
|
|
- `user_preferences` - User settings
|
|
- `user_login_tokens` - Session management
|
|
|
|
### Step 2: Start the Server
|
|
|
|
Make sure the `email` feature is enabled (it should be by default):
|
|
|
|
```bash
|
|
cargo run --features email
|
|
```
|
|
|
|
Or if already built:
|
|
|
|
```bash
|
|
./target/release/botserver
|
|
```
|
|
|
|
### Step 3: Access Account Settings
|
|
|
|
1. Open your browser to `http://localhost:8080`
|
|
2. Click on the user avatar or settings icon
|
|
3. Navigate to "Account Settings"
|
|
|
|
## 📧 Adding Your First Email Account
|
|
|
|
### For Gmail Users
|
|
|
|
1. **Generate App Password** (Required for Gmail)
|
|
- Go to Google Account settings
|
|
- Security → 2-Step Verification
|
|
- App passwords → Generate new password
|
|
- Copy the 16-character password
|
|
|
|
2. **Add Account in BotServer**
|
|
- Go to Account Settings → Email Accounts tab
|
|
- Click "Add Account"
|
|
- Fill in:
|
|
```
|
|
Email: your-email@gmail.com
|
|
Display Name: Your Name
|
|
IMAP Server: imap.gmail.com
|
|
IMAP Port: 993
|
|
SMTP Server: smtp.gmail.com
|
|
SMTP Port: 587
|
|
Username: your-email@gmail.com
|
|
Password: [paste app password]
|
|
```
|
|
- Check "Set as primary email account"
|
|
- Click "Add Account"
|
|
|
|
3. **Test Connection**
|
|
- Click "Test" button
|
|
- Should show "Connection successful"
|
|
|
|
### For Outlook/Office 365 Users
|
|
|
|
```
|
|
Email: your-email@outlook.com
|
|
IMAP Server: outlook.office365.com
|
|
IMAP Port: 993
|
|
SMTP Server: smtp.office365.com
|
|
SMTP Port: 587
|
|
Username: your-email@outlook.com
|
|
Password: [your password]
|
|
```
|
|
|
|
### For Yahoo Mail Users
|
|
|
|
**Important:** Yahoo requires app-specific password
|
|
|
|
1. Go to Yahoo Account Security
|
|
2. Generate app password
|
|
3. Use these settings:
|
|
|
|
```
|
|
Email: your-email@yahoo.com
|
|
IMAP Server: imap.mail.yahoo.com
|
|
IMAP Port: 993
|
|
SMTP Server: smtp.mail.yahoo.com
|
|
SMTP Port: 587
|
|
Username: your-email@yahoo.com
|
|
Password: [app-specific password]
|
|
```
|
|
|
|
### For Custom IMAP/SMTP Servers
|
|
|
|
```
|
|
Email: your-email@domain.com
|
|
IMAP Server: mail.domain.com
|
|
IMAP Port: 993
|
|
SMTP Server: mail.domain.com
|
|
SMTP Port: 587
|
|
Username: your-email@domain.com (or just username)
|
|
Password: [your password]
|
|
```
|
|
|
|
## 📬 Using the Mail Client
|
|
|
|
### Reading Emails
|
|
|
|
1. Navigate to Mail section (📧 icon)
|
|
2. Your emails will load automatically
|
|
3. Click on any email to read it
|
|
4. Use folders (Inbox, Sent, Drafts, etc.) to navigate
|
|
|
|
### Sending Emails
|
|
|
|
1. Click "Compose" button (✏️)
|
|
2. Fill in:
|
|
- To: recipient@example.com
|
|
- Subject: Your subject
|
|
- Body: Your message
|
|
3. Click "Send"
|
|
|
|
### Multiple Accounts
|
|
|
|
If you have multiple email accounts:
|
|
1. Account dropdown appears in mail toolbar
|
|
2. Select account to view its emails
|
|
3. Composing email uses currently selected account
|
|
|
|
## 🔧 Troubleshooting
|
|
|
|
### "Failed to connect to IMAP server"
|
|
|
|
**Possible causes:**
|
|
- Incorrect server address or port
|
|
- Firewall blocking connection
|
|
- Need to enable IMAP in email provider settings
|
|
- Using regular password instead of app password
|
|
|
|
**Solutions:**
|
|
- Verify IMAP server address from your provider
|
|
- Check if IMAP is enabled in your email settings
|
|
- Use app-specific password for Gmail/Yahoo
|
|
- Try port 143 with STARTTLS if 993 fails
|
|
|
|
### "Authentication failed"
|
|
|
|
**Causes:**
|
|
- Wrong username or password
|
|
- Need app-specific password
|
|
- 2FA not configured properly
|
|
|
|
**Solutions:**
|
|
- Double-check username (often full email address)
|
|
- Generate app-specific password
|
|
- Ensure 2FA is enabled before generating app password
|
|
|
|
### "Failed to send email"
|
|
|
|
**Causes:**
|
|
- SMTP server/port incorrect
|
|
- Authentication issues
|
|
- Rate limiting
|
|
|
|
**Solutions:**
|
|
- Verify SMTP settings
|
|
- Try port 587 (STARTTLS) or 465 (SSL)
|
|
- Check if sender email matches account
|
|
- Wait and retry if rate limited
|
|
|
|
### "No emails loading"
|
|
|
|
**Causes:**
|
|
- Mailbox is empty
|
|
- Wrong folder name
|
|
- IMAP connection issue
|
|
|
|
**Solutions:**
|
|
- Try different folders (INBOX, Sent)
|
|
- Click refresh button
|
|
- Test connection in Account Settings
|
|
- Check account is marked as active
|
|
|
|
## 🔒 Security Notes
|
|
|
|
### Current Implementation
|
|
|
|
⚠️ **IMPORTANT**: Current password encryption uses base64 encoding, which is **NOT SECURE** for production use. This is temporary for development.
|
|
|
|
### For Production Deployment
|
|
|
|
You **MUST** implement proper encryption before deploying to production:
|
|
|
|
1. **Replace base64 with AES-256-GCM encryption**
|
|
- Update `encrypt_password()` and `decrypt_password()` functions
|
|
- Use a strong encryption key from environment variable
|
|
- Never commit encryption keys to version control
|
|
|
|
2. **Use HTTPS/TLS**
|
|
- All communication must be encrypted in transit
|
|
- Configure reverse proxy (nginx/Apache) with SSL certificate
|
|
|
|
3. **Implement rate limiting**
|
|
- Limit login attempts
|
|
- Limit email sending rate
|
|
- Protect against brute force attacks
|
|
|
|
4. **Use JWT tokens for authentication**
|
|
- Implement proper session management
|
|
- Token refresh mechanism
|
|
- Secure token storage
|
|
|
|
5. **Regular security audits**
|
|
- Review code for vulnerabilities
|
|
- Update dependencies
|
|
- Monitor for suspicious activity
|
|
|
|
## 📊 Account Management Features
|
|
|
|
### Profile Settings
|
|
- Update display name
|
|
- Change phone number
|
|
- View account creation date
|
|
|
|
### Security Settings
|
|
- Change password
|
|
- View active sessions
|
|
- Revoke sessions on other devices
|
|
|
|
### Drive Settings
|
|
- View storage usage
|
|
- Configure auto-sync
|
|
- Enable offline mode
|
|
|
|
## 🆘 Getting Help
|
|
|
|
### Check Logs
|
|
|
|
Server logs show detailed error messages:
|
|
```bash
|
|
# View recent logs
|
|
tail -f nohup.out
|
|
|
|
# Or if running in foreground
|
|
# Logs appear in terminal
|
|
```
|
|
|
|
### API Testing
|
|
|
|
Test the API directly:
|
|
```bash
|
|
# List accounts
|
|
curl http://localhost:8080/api/email/accounts
|
|
|
|
# Add account
|
|
curl -X POST http://localhost:8080/api/email/accounts/add \
|
|
-H "Content-Type: application/json" \
|
|
-d '{"email":"test@gmail.com",...}'
|
|
```
|
|
|
|
### Database Inspection
|
|
|
|
Check database directly:
|
|
```bash
|
|
psql -d botserver_dev -c "SELECT * FROM user_email_accounts;"
|
|
```
|
|
|
|
## ✅ Verification Checklist
|
|
|
|
- [ ] Database migration completed successfully
|
|
- [ ] Server starts with `email` feature enabled
|
|
- [ ] Can access Account Settings page
|
|
- [ ] Can add email account
|
|
- [ ] Connection test passes
|
|
- [ ] Can see emails in Mail client
|
|
- [ ] Can send email successfully
|
|
- [ ] Can compose and save drafts
|
|
- [ ] Multiple accounts work (if applicable)
|
|
|
|
## 📚 Further Reading
|
|
|
|
- See `MULTI_USER_SYSTEM.md` for technical details
|
|
- See `REST_API.md` for API documentation
|
|
- See `TESTING.md` for testing procedures
|
|
|
|
## 🎯 Next Steps
|
|
|
|
After basic setup:
|
|
1. Configure additional email accounts
|
|
2. Explore Drive functionality
|
|
3. Set up automated tasks (future)
|
|
4. Customize preferences
|
|
5. **Implement proper security for production**
|
|
|
|
---
|
|
|
|
Need help? Check the logs, review error messages, and consult the troubleshooting section above. |