-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy path.env.local.example
More file actions
41 lines (36 loc) · 1.68 KB
/
.env.local.example
File metadata and controls
41 lines (36 loc) · 1.68 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
# ============================================
# DECOUPLED MESSAGE DELIVERY ARCHITECTURE
# ============================================
# Transmission: Vercel -> Relay Service -> Proton
# Strategy: Independent Relay (Domain-Independent)
# Primary Relay: Resend API
# ============================================
# CORE DELIVERY CONFIGURATION
# ============================================
# 1. Resend API Key (Required)
# Get this from https://resend.com
RESEND_API_KEY=your_resend_api_key_here
# 2. Permanent Proton Anchor (Destination Email)
# This is where all valid project messages are delivered.
# Default: yourname@proton.me
EMAIL_RECIPIENT=yourname@proton.me
# 3. Relay Sender (For Proton Filters)
# Inside Proton: Create filter to move From:noreply@system-relay.com
# to 'Project Messages' folder and mark as not spam.
# Note: Ensure this domain or a variant is verified in Resend for production.
# PRIMARY_FROM_EMAIL is now handled as noreply@system-relay.com by default.
# ============================================
# SPAM PROTECTION (Mandatory Layers)
# ============================================
# ✅ Honeypot: Automated bot trap
# ✅ Time-Based: Blocks submissions < 2s
# ✅ Rate Limit: 3 requests / 5 minutes per IP
# ✅ Content: Schema validation & Profanity detection
# ✅ Link Density: Blocks > 3 links per message
# ✅ Metadata: Logs ISO timestamp, IP hash, & user agent
# ============================================
# VERCEL DEPLOYMENT
# ============================================
# - Add RESEND_API_KEY and EMAIL_RECIPIENT to Vercel Environment Variables.
# - Deployment is decoupled from custom domain MX records.
# - System remains functional even if custom domain expires.