# Email Feature Configuration - Example Environment # Complete documentation of all email system options [features] email = true [email] enabled = true provider = "smtp" # Email provider: smtp, sendgrid, mailgun, ses, console from_email = "noreply@example.com" # Default sender email address from_name = "Example Application" # Default sender name reply_to = "support@example.com" # Default reply-to address bounce_address = "bounce@example.com" # Bounce handling address templates_dir = "templates/email" # Email templates directory queue_enabled = true # Enable email queue max_retries = 3 # Maximum retry attempts for failed emails retry_delay = 300 # Retry delay in seconds (5 minutes) max_queue_size = 10000 # Maximum queue size batch_size = 100 # Batch size for sending emails rate_limit = 100 # Rate limit (emails per minute) timeout = 30 # Email sending timeout in seconds [email.smtp] host = "smtp.example.com" # SMTP server hostname port = 587 # SMTP server port username = "your-username" # SMTP authentication username password = "your-password" # SMTP authentication password (use env var) use_tls = true # Use TLS encryption use_starttls = true # Use STARTTLS auth_mechanism = "login" # Authentication mechanism: login, plain, cram-md5 connection_timeout = 30 # Connection timeout in seconds read_timeout = 30 # Read timeout in seconds write_timeout = 30 # Write timeout in seconds pool_size = 10 # Connection pool size pool_timeout = 30 # Pool timeout in seconds keepalive = true # Enable keepalive verify_certificate = true # Verify SSL certificate [email.sendgrid] api_key = "your-sendgrid-api-key" # SendGrid API key (use env var) endpoint = "https://api.sendgrid.com/v3/mail/send" # SendGrid API endpoint sandbox_mode = false # Enable sandbox mode for testing tracking_enabled = true # Enable email tracking click_tracking = true # Enable click tracking open_tracking = true # Enable open tracking subscription_tracking = false # Enable subscription tracking ganalytics_enabled = false # Enable Google Analytics tracking [email.mailgun] api_key = "your-mailgun-api-key" # Mailgun API key (use env var) domain = "your-domain.com" # Mailgun domain endpoint = "https://api.mailgun.net/v3" # Mailgun API endpoint eu_region = false # Use EU region test_mode = false # Enable test mode tracking_enabled = true # Enable email tracking click_tracking = true # Enable click tracking open_tracking = true # Enable open tracking delivery_time = false # Enable delivery time optimization [email.ses] region = "us-east-1" # AWS SES region access_key_id = "your-access-key" # AWS access key ID (use env var) secret_access_key = "your-secret-key" # AWS secret access key (use env var) configuration_set = "" # SES configuration set source_arn = "" # Source ARN for sending authorization tags = {} # Default tags for emails template_tags = {} # Default template tags [email.console] enabled_in_dev = true # Enable console output in development log_level = "info" # Log level for console output pretty_print = true # Pretty print email content show_headers = true # Show email headers show_body = true # Show email body show_attachments = true # Show attachment info [email.templates] engine = "handlebars" # Template engine: handlebars, tera, minijinja cache_enabled = true # Cache compiled templates cache_ttl = 3600 # Template cache TTL in seconds cache_size = 1000 # Maximum cached templates auto_reload = true # Auto-reload templates in development default_language = "en" # Default template language supported_languages = ["en", "es", "fr", "de"] # Supported languages fallback_language = "en" # Fallback language template_validation = true # Validate templates on load minify_html = true # Minify HTML templates inline_css = true # Inline CSS in HTML emails [email.queue] backend = "redis" # Queue backend: redis, database, memory redis_url = "redis://localhost:6379" # Redis URL for queue storage redis_db = 2 # Redis database number redis_key_prefix = "email_queue:" # Redis key prefix database_table = "email_queue" # Database table for queue max_attempts = 5 # Maximum delivery attempts retry_backoff = "exponential" # Retry backoff strategy: linear, exponential min_retry_delay = 60 # Minimum retry delay in seconds max_retry_delay = 3600 # Maximum retry delay in seconds dead_letter_queue = true # Enable dead letter queue cleanup_interval = 3600 # Queue cleanup interval in seconds job_timeout = 300 # Job timeout in seconds [email.notifications] enabled = true # Enable email notifications delivery_notifications = true # Send delivery notifications bounce_notifications = true # Send bounce notifications complaint_notifications = true # Send complaint notifications webhook_enabled = true # Enable webhook notifications webhook_url = "https://example.com/webhook" # Webhook URL webhook_secret = "your-webhook-secret" # Webhook secret for verification webhook_events = [ # Webhook events to send "delivered", "bounced", "complained", "clicked", "opened" ] [email.tracking] enabled = true # Enable email tracking pixel_tracking = true # Enable pixel tracking for opens link_tracking = true # Enable link tracking for clicks bounce_tracking = true # Enable bounce tracking complaint_tracking = true # Enable complaint tracking unsubscribe_tracking = true # Enable unsubscribe tracking analytics_integration = true # Enable analytics integration retention_days = 90 # Tracking data retention in days [email.security] dkim_enabled = true # Enable DKIM signing dkim_domain = "example.com" # DKIM domain dkim_selector = "default" # DKIM selector dkim_private_key_path = "/path/to/private.key" # DKIM private key path spf_enabled = true # Enable SPF checking dmarc_enabled = true # Enable DMARC tls_required = true # Require TLS for sending content_filtering = true # Enable content filtering spam_filtering = true # Enable spam filtering virus_scanning = false # Enable virus scanning encryption_enabled = false # Enable email encryption pgp_enabled = false # Enable PGP encryption [email.validation] enabled = true # Enable email validation syntax_validation = true # Validate email syntax domain_validation = true # Validate domain existence mx_validation = true # Validate MX records disposable_email_detection = true # Detect disposable emails role_email_detection = true # Detect role-based emails typo_detection = true # Detect common typos blacklist_enabled = true # Enable email blacklist whitelist_enabled = false # Enable email whitelist blacklist_domains = [ # Blacklisted domains "tempmail.com", "10minutemail.com", "guerrillamail.com" ] [email.attachments] enabled = true # Enable email attachments max_size = 25165824 # Maximum attachment size (24MB) max_count = 10 # Maximum number of attachments allowed_types = [ # Allowed attachment types "pdf", "doc", "docx", "txt", "jpg", "jpeg", "png", "gif" ] blocked_types = [ # Blocked attachment types "exe", "bat", "cmd", "com", "scr", "pif", "vbs", "js" ] virus_scan = false # Scan attachments for viruses compression = true # Enable attachment compression encryption = false # Enable attachment encryption storage_backend = "filesystem" # Storage backend: filesystem, s3, gcs storage_path = "attachments" # Storage path for attachments [email.lists] enabled = true # Enable mailing lists max_subscribers = 10000 # Maximum subscribers per list double_opt_in = true # Require double opt-in unsubscribe_link = true # Include unsubscribe link list_unsubscribe_header = true # Include List-Unsubscribe header bounce_handling = true # Handle bounces automatically complaint_handling = true # Handle complaints automatically segmentation = true # Enable list segmentation personalization = true # Enable email personalization a_b_testing = true # Enable A/B testing automation = true # Enable email automation [email.campaigns] enabled = true # Enable email campaigns scheduling = true # Enable campaign scheduling recurring_campaigns = true # Enable recurring campaigns drip_campaigns = true # Enable drip campaigns trigger_campaigns = true # Enable trigger-based campaigns analytics = true # Enable campaign analytics reporting = true # Enable campaign reporting export_data = true # Enable data export archive_campaigns = true # Archive old campaigns campaign_templates = true # Enable campaign templates [email.compliance] gdpr_compliance = true # Enable GDPR compliance can_spam_compliance = true # Enable CAN-SPAM compliance casl_compliance = false # Enable CASL compliance data_retention_days = 2555 # Data retention period (7 years) consent_tracking = true # Track consent opt_out_handling = true # Handle opt-out requests data_export = true # Enable data export for users data_deletion = true # Enable data deletion for users privacy_policy_link = "https://example.com/privacy" # Privacy policy link terms_of_service_link = "https://example.com/terms" # Terms of service link [email.monitoring] enabled = true # Enable email monitoring health_checks = true # Enable health checks performance_monitoring = true # Monitor email performance error_tracking = true # Track email errors delivery_monitoring = true # Monitor delivery rates bounce_monitoring = true # Monitor bounce rates complaint_monitoring = true # Monitor complaint rates reputation_monitoring = true # Monitor sender reputation alerting = true # Enable alerting [email.monitoring.alert_thresholds] bounce_rate = 5.0 # Bounce rate threshold (%) complaint_rate = 0.1 # Complaint rate threshold (%) delivery_rate = 95.0 # Minimum delivery rate (%) queue_size = 1000 # Queue size threshold [email.testing] test_mode = false # Enable test mode test_recipients = ["test@example.com"] # Test recipients test_prefix = "[TEST]" # Test email prefix sandbox_mode = false # Enable sandbox mode mock_delivery = false # Mock email delivery test_templates = true # Enable template testing preview_mode = true # Enable email preview lint_templates = true # Lint email templates validation_testing = true # Test email validation load_testing = false # Enable load testing [email.logging] enabled = true # Enable email logging log_level = "info" # Log level log_format = "json" # Log format: json, plain log_file = "logs/email.log" # Log file path log_rotation = true # Enable log rotation max_log_size = 104857600 # Maximum log file size (100MB) max_log_files = 10 # Maximum log files to keep log_emails = false # Log email content (privacy concern) log_headers = true # Log email headers log_delivery = true # Log delivery status log_bounces = true # Log bounces log_complaints = true # Log complaints log_clicks = true # Log clicks log_opens = true # Log opens [email.performance] connection_pooling = true # Enable connection pooling persistent_connections = true # Use persistent connections compression = true # Enable compression caching = true # Enable response caching async_sending = true # Enable async email sending batch_sending = true # Enable batch sending queue_optimization = true # Enable queue optimization lazy_loading = true # Enable lazy loading precompiled_templates = true # Use precompiled templates cdn_integration = false # Enable CDN for email assets