Add AI-powered email content extraction feature using Cloudflare Workers AI to automatically identify and extract important information from emails including verification codes, authentication links, service links, and subscription links. Features: - AI extraction with priority-based logic (auth_code > auth_link > service_link > subscription_link > other_link) - Admin allowlist configuration with wildcard support (*@example.com) - Frontend display in both email list (compact) and detail view (full mode) - Bilingual documentation (Chinese/English) - Database migration: add metadata field to raw_mails (v0.0.3 -> v0.0.4) Technical highlights: - Proper regex escaping for wildcard pattern matching - Content truncation to avoid AI token limits - Error handling that won't affect email receiving - JSON schema validation for AI responses - Type-safe TypeScript implementation - Vue I18n support with special character escaping References: - Inspired by Alle Project: https://github.com/bestruirui/Alle - Uses Cloudflare Workers AI JSON Mode 🤖 Generated with Claude Code Co-Authored-By: Claude <noreply@anthropic.com>
3.2 KiB
AI Email Recognition
Note
This feature is supported from version v1.1.0
This feature is inspired by the Alle project
Features
The AI email recognition feature uses Cloudflare Workers AI to automatically analyze incoming email content and intelligently extract important information, including:
- Verification Code (auth_code) - OTP, security code, confirmation code, etc.
- Authentication Link (auth_link) - Login, verify, activate, password reset links
- Service Link (service_link) - GitHub, GitLab, deployment notifications and other service-related links
- Subscription Link (subscription_link) - Unsubscribe, manage subscription links
- Other Link (other_link) - Other valuable links
Extraction results are automatically saved to the metadata field in the database, and the frontend can directly display extracted verification codes or links.
Configuration Variables
| Variable Name | Type | Description | Example |
|---|---|---|---|
ENABLE_AI_EMAIL_EXTRACT |
Text/JSON | Whether to enable AI email recognition feature | true |
AI_EXTRACT_MODEL |
Text | AI model name, choose from models supporting JSON mode | @cf/meta/llama-3.1-8b-instruct |
Workers AI Binding
Configure Workers AI binding in wrangler.toml:
[ai]
binding = "AI"
Or add in Cloudflare Dashboard Worker settings:
- Variable name:
AI - Type: Workers AI
Address Allowlist (Optional)
To control costs and resource usage, you can configure an address allowlist in the Admin console's AI Extract Settings page:
Configuration
- Allowlist Disabled: AI extraction will process all email addresses
- Allowlist Enabled: AI extraction will only process addresses in the allowlist
Allowlist Format
One address per line, supporting wildcard * to match any characters:
- Exact Match:
user@example.com- Only matches this specific email - Domain Wildcard:
*@example.com- Matches all emails under example.com domain - User Wildcard:
admin*@example.com- Matches emails starting with admin - Wildcard Anywhere:
*test*@example.com- Matches emails containing test - Multiple Wildcards:
admin*@*.com- Matches emails starting with admin under any .com domain
Configuration Example
user@example.com
*@mydomain.com
admin*@company.com
This configuration will only perform AI extraction for:
user@example.com(exact match)- All emails under
@mydomain.com(e.g.,test@mydomain.com,admin@mydomain.com) - All emails starting with
adminunder@company.com(e.g.,admin@company.com,admin123@company.com)