Files
cloudflare_temp_email/vitepress-docs/docs/en/guide/feature/ai-extract.md
Dream Hunter dbb55d948f feat: add AI email extraction with Cloudflare Workers AI
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>
2025-12-06 16:28:19 +08:00

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 admin under @company.com (e.g., admin@company.com, admin123@company.com)