port-nimara-client-portal/docs/email-system-fixes.md

70 lines
2.5 KiB
Markdown
Raw Normal View History

# Email System Fixes
## Issues Addressed
### 1. Email Credentials Not Found Errors
- **Problem**: The system was trying to fetch emails even when no credentials were present
- **Solution**:
- Added session ID check in `EmailThreadView` before attempting to fetch emails
- Modified `fetch-thread` API to return empty results instead of throwing errors when credentials are missing
- Added proper session cleanup in `EmailCommunication` component
### 2. 502 Gateway Timeout Errors
- **Problem**: Email fetching was causing timeouts, especially when editing/saving interest cards
- **Solution**:
- Reduced email fetch limit from 50 to 20 emails
- Added 15-second timeout for IMAP connections
- Prevented unnecessary email fetches when no session exists
### 3. EOI Generation Issues
- **Problem**: EOI generation may fail due to missing Documenso configuration
- **Solution**:
- Added environment variable validation for `NUXT_DOCUMENSO_API_KEY` and `NUXT_DOCUMENSO_BASE_URL`
- Improved error messages to indicate when configuration is missing
## Required Environment Variables
Make sure these are set in your `.env` file:
```env
# Email Configuration
NUXT_EMAIL_ENCRYPTION_KEY=your-32-character-encryption-key
NUXT_EMAIL_IMAP_HOST=mail.portnimara.com
NUXT_EMAIL_IMAP_PORT=993
NUXT_EMAIL_SMTP_HOST=mail.portnimara.com
NUXT_EMAIL_SMTP_PORT=587
NUXT_EMAIL_LOGO_URL=https://portnimara.com/logo.png
# Documenso Configuration (REQUIRED for EOI generation)
NUXT_DOCUMENSO_API_KEY=your-actual-api-key
NUXT_DOCUMENSO_BASE_URL=https://signatures.portnimara.dev
```
## How It Works Now
1. **Email Session Management**:
- Sessions are stored in browser's sessionStorage
- If no session exists, email features are gracefully disabled
- Users can connect/disconnect at any time
2. **Email Fetching**:
- Only attempts to fetch when valid session exists
- Limited to 20 emails to prevent timeouts
- Falls back to cached emails from MinIO if IMAP fails
- 15-second timeout prevents hanging connections
3. **EOI Generation**:
- Validates all required fields before attempting generation
- Checks for Documenso configuration
- Returns clear error messages if configuration is missing
- Inserts client's signing link directly into email body
## Troubleshooting
If you're still experiencing issues:
1. **Check Docker logs**: `docker logs <container-name>`
2. **Verify environment variables are set correctly**
3. **Ensure Documenso API credentials are valid**
4. **Try disconnecting and reconnecting email credentials**