/** * SMTP Provider Presets — 100+ verified providers * To add a new provider, just append to the SMTP_PRESETS array. */ export interface SmtpPreset { id: string; name: string; iconFile: string; host: string; port: number; encryption: 'tls' | 'ssl' | 'none'; auth: 1 | 0; hint?: string; category: 'popular' | 'hosting' | 'transactional' | 'enterprise' | 'regional'; } /** * Icon path helper — resolves to assets/icons/smtp/{id}.svg * Falls back to generic email icon if file doesn't load (handled via onError in UI). */ const smtpIcon = (id: string) => `assets/icons/smtp/${id}.svg`; export const SMTP_PRESETS: SmtpPreset[] = [ // ─── Popular ─── { id: 'gmail', name: 'Gmail', iconFile: smtpIcon('gmail'), host: 'smtp.gmail.com', port: 587, encryption: 'tls', auth: 1, hint: 'Use an App Password if 2FA is enabled.', category: 'popular' }, { id: 'gmail_ssl', name: 'Gmail (SSL)', iconFile: smtpIcon('gmail'), host: 'smtp.gmail.com', port: 465, encryption: 'ssl', auth: 1, hint: 'SSL alternative on port 465.', category: 'popular' }, { id: 'outlook', name: 'Outlook / Office 365', iconFile: smtpIcon('outlook'), host: 'smtp.office365.com', port: 587, encryption: 'tls', auth: 1, hint: 'Works for @outlook.com, @hotmail.com and Microsoft 365.', category: 'popular' }, { id: 'outlook_ssl', name: 'Outlook (SSL)', iconFile: smtpIcon('outlook'), host: 'smtp-mail.outlook.com', port: 465, encryption: 'ssl', auth: 1, category: 'popular' }, { id: 'yahoo', name: 'Yahoo Mail', iconFile: smtpIcon('yahoo'), host: 'smtp.mail.yahoo.com', port: 587, encryption: 'tls', auth: 1, hint: 'Generate an App Password from Yahoo account security.', category: 'popular' }, { id: 'zoho', name: 'Zoho Mail', iconFile: smtpIcon('zoho'), host: 'smtp.zoho.com', port: 587, encryption: 'tls', auth: 1, hint: 'Use your Zoho account email and password.', category: 'popular' }, { id: 'zoho_ssl', name: 'Zoho Mail (SSL)', iconFile: smtpIcon('zoho'), host: 'smtp.zoho.com', port: 465, encryption: 'ssl', auth: 1, category: 'popular' }, { id: 'icloud', name: 'iCloud Mail', iconFile: smtpIcon('icloud'), host: 'smtp.mail.me.com', port: 587, encryption: 'tls', auth: 1, hint: 'Use an app-specific password from appleid.apple.com.', category: 'popular' }, { id: 'aol', name: 'AOL Mail', iconFile: smtpIcon('aol'), host: 'smtp.aol.com', port: 587, encryption: 'tls', auth: 1, category: 'popular' }, { id: 'protonmail', name: 'ProtonMail Bridge', iconFile: smtpIcon('protonmail'), host: '127.0.0.1', port: 1025, encryption: 'tls', auth: 1, hint: 'Requires ProtonMail Bridge running locally.', category: 'popular' }, { id: 'fastmail', name: 'Fastmail', iconFile: smtpIcon('fastmail'), host: 'smtp.fastmail.com', port: 587, encryption: 'tls', auth: 1, category: 'popular' }, { id: 'yandex', name: 'Yandex Mail', iconFile: smtpIcon('yandex'), host: 'smtp.yandex.com', port: 465, encryption: 'ssl', auth: 1, category: 'popular' }, { id: 'mailru', name: 'Mail.ru', iconFile: smtpIcon('mailru'), host: 'smtp.mail.ru', port: 465, encryption: 'ssl', auth: 1, category: 'popular' }, // ─── Transactional / API Services ─── { id: 'sendgrid', name: 'SendGrid', iconFile: smtpIcon('sendgrid'), host: 'smtp.sendgrid.net', port: 587, encryption: 'tls', auth: 1, hint: 'Username: "apikey", password: your API key.', category: 'transactional' }, { id: 'mailgun', name: 'Mailgun', iconFile: smtpIcon('mailgun'), host: 'smtp.mailgun.org', port: 587, encryption: 'tls', auth: 1, hint: 'Use your Mailgun SMTP credentials.', category: 'transactional' }, { id: 'ses_us_east', name: 'Amazon SES (us-east-1)', iconFile: smtpIcon('ses_us_east'), host: 'email-smtp.us-east-1.amazonaws.com', port: 587, encryption: 'tls', auth: 1, hint: 'Change region in host to match your SES setup.', category: 'transactional' }, { id: 'ses_eu_west', name: 'Amazon SES (eu-west-1)', iconFile: smtpIcon('ses_eu_west'), host: 'email-smtp.eu-west-1.amazonaws.com', port: 587, encryption: 'tls', auth: 1, category: 'transactional' }, { id: 'ses_ap', name: 'Amazon SES (ap-southeast-1)', iconFile: smtpIcon('ses_ap'), host: 'email-smtp.ap-southeast-1.amazonaws.com', port: 587, encryption: 'tls', auth: 1, category: 'transactional' }, { id: 'brevo', name: 'Brevo (Sendinblue)', iconFile: smtpIcon('brevo'), host: 'smtp-relay.brevo.com', port: 587, encryption: 'tls', auth: 1, hint: 'Use your Brevo login + SMTP key as password.', category: 'transactional' }, { id: 'sparkpost', name: 'SparkPost', iconFile: smtpIcon('sparkpost'), host: 'smtp.sparkpostmail.com', port: 587, encryption: 'tls', auth: 1, hint: 'Username: "SMTP_Injection", password: your API key.', category: 'transactional' }, { id: 'mandrill', name: 'Mandrill (Mailchimp)', iconFile: smtpIcon('mandrill'), host: 'smtp.mandrillapp.com', port: 587, encryption: 'tls', auth: 1, hint: 'Username: your Mailchimp email, password: API key.', category: 'transactional' }, { id: 'elasticemail', name: 'Elastic Email', iconFile: smtpIcon('elasticemail'), host: 'smtp.elasticemail.com', port: 2525, encryption: 'tls', auth: 1, category: 'transactional' }, { id: 'mailjet', name: 'Mailjet', iconFile: smtpIcon('mailjet'), host: 'in-v3.mailjet.com', port: 587, encryption: 'tls', auth: 1, hint: 'Use your Mailjet API Key and Secret Key.', category: 'transactional' }, { id: 'smtp2go', name: 'SMTP2GO', iconFile: smtpIcon('smtp2go'), host: 'mail.smtp2go.com', port: 587, encryption: 'tls', auth: 1, category: 'transactional' }, { id: 'mailtrap', name: 'Mailtrap (Testing)', iconFile: smtpIcon('bell'), host: 'sandbox.smtp.mailtrap.io', port: 587, encryption: 'tls', auth: 1, hint: 'For development only — no real emails sent.', category: 'transactional' }, { id: 'mailtrap_live', name: 'Mailtrap (Live)', iconFile: smtpIcon('bell'), host: 'live.smtp.mailtrap.io', port: 587, encryption: 'tls', auth: 1, category: 'transactional' }, { id: 'smtp_com', name: 'SMTP.com', iconFile: smtpIcon('smtp_com'), host: 'send.smtp.com', port: 587, encryption: 'tls', auth: 1, category: 'transactional' }, { id: 'moosend', name: 'Moosend', iconFile: smtpIcon('moosend'), host: 'smtp.moosend.com', port: 587, encryption: 'tls', auth: 1, category: 'transactional' }, { id: 'resend', name: 'Resend', iconFile: smtpIcon('resend'), host: 'smtp.resend.com', port: 465, encryption: 'ssl', auth: 1, hint: 'Username: "resend", password: your API key.', category: 'transactional' }, // ─── Hosting Providers ─── { id: 'hostinger', name: 'Hostinger', iconFile: smtpIcon('hostinger'), host: 'smtp.hostinger.com', port: 465, encryption: 'ssl', auth: 1, hint: 'Use your Hostinger email account credentials.', category: 'hosting' }, { id: '20i', name: '20i', iconFile: smtpIcon('20i'), host: 'smtp.stackmail.com', port: 587, encryption: 'tls', auth: 1, hint: 'Use your 20i mailbox credentials.', category: 'hosting' }, { id: 'bluehost', name: 'Bluehost', iconFile: smtpIcon('bluehost'), host: 'mail.yourdomain.com', port: 465, encryption: 'ssl', auth: 1, hint: 'Replace yourdomain.com with your actual domain.', category: 'hosting' }, { id: 'siteground', name: 'SiteGround', iconFile: smtpIcon('siteground'), host: 'mail.yourdomain.com', port: 465, encryption: 'ssl', auth: 1, hint: 'Replace yourdomain.com with your actual domain.', category: 'hosting' }, { id: 'godaddy_365', name: 'GoDaddy (Microsoft 365)', iconFile: smtpIcon('outlook'), host: 'smtp.office365.com', port: 587, encryption: 'tls', auth: 1, category: 'hosting' }, { id: 'godaddy_ws', name: 'GoDaddy (Workspace)', iconFile: smtpIcon('godaddy_ws'), host: 'smtpout.secureserver.net', port: 465, encryption: 'ssl', auth: 1, category: 'hosting' }, { id: 'namecheap', name: 'Namecheap', iconFile: smtpIcon('namecheap'), host: 'mail.privateemail.com', port: 465, encryption: 'ssl', auth: 1, category: 'hosting' }, { id: 'dreamhost', name: 'DreamHost', iconFile: smtpIcon('dreamhost'), host: 'smtp.dreamhost.com', port: 465, encryption: 'ssl', auth: 1, category: 'hosting' }, { id: 'a2hosting', name: 'A2 Hosting', iconFile: smtpIcon('a2hosting'), host: 'mail.yourdomain.com', port: 465, encryption: 'ssl', auth: 1, hint: 'Replace yourdomain.com with your actual domain.', category: 'hosting' }, { id: 'hostgator', name: 'HostGator', iconFile: smtpIcon('hostgator'), host: 'mail.yourdomain.com', port: 465, encryption: 'ssl', auth: 1, hint: 'Replace yourdomain.com with your actual domain.', category: 'hosting' }, { id: 'ionos', name: 'IONOS (1&1)', iconFile: smtpIcon('ionos'), host: 'smtp.ionos.com', port: 587, encryption: 'tls', auth: 1, category: 'hosting' }, { id: 'ovh', name: 'OVH', iconFile: smtpIcon('ovh'), host: 'ssl0.ovh.net', port: 465, encryption: 'ssl', auth: 1, category: 'hosting' }, { id: 'hetzner', name: 'Hetzner', iconFile: smtpIcon('hetzner'), host: 'mail.your-server.de', port: 587, encryption: 'tls', auth: 1, category: 'hosting' }, { id: 'strato', name: 'Strato', iconFile: smtpIcon('strato'), host: 'smtp.strato.de', port: 465, encryption: 'ssl', auth: 1, category: 'hosting' }, { id: 'infomaniak', name: 'Infomaniak', iconFile: smtpIcon('infomaniak'), host: 'mail.infomaniak.com', port: 587, encryption: 'tls', auth: 1, category: 'hosting' }, { id: 'gandi', name: 'Gandi', iconFile: smtpIcon('gandi'), host: 'mail.gandi.net', port: 587, encryption: 'tls', auth: 1, category: 'hosting' }, { id: 'cloudways', name: 'Cloudways (Elastic Email)', iconFile: smtpIcon('cloudways'), host: 'smtp.elasticemail.com', port: 2525, encryption: 'tls', auth: 1, category: 'hosting' }, { id: 'wpengine', name: 'WP Engine (via 3rd party)', iconFile: smtpIcon('wpengine'), host: 'smtp.sendgrid.net', port: 587, encryption: 'tls', auth: 1, hint: 'WP Engine does not include SMTP — use SendGrid or similar.', category: 'hosting' }, // ─── Enterprise & Collaboration ─── { id: 'exchange_onprem', name: 'Microsoft Exchange (On-Prem)', iconFile: smtpIcon('outlook'), host: 'mail.yourdomain.com', port: 587, encryption: 'tls', auth: 1, hint: 'Use your Exchange server hostname.', category: 'enterprise' }, { id: 'google_workspace', name: 'Google Workspace', iconFile: smtpIcon('gmail'), host: 'smtp-relay.gmail.com', port: 587, encryption: 'tls', auth: 1, hint: 'Requires Google Workspace admin SMTP relay config.', category: 'enterprise' }, { id: 'google_workspace_ssl', name: 'Google Workspace (SSL)', iconFile: smtpIcon('gmail'), host: 'smtp-relay.gmail.com', port: 465, encryption: 'ssl', auth: 1, category: 'enterprise' }, { id: 'zimbra', name: 'Zimbra', iconFile: smtpIcon('zimbra'), host: 'mail.yourdomain.com', port: 587, encryption: 'tls', auth: 1, hint: 'Use your Zimbra server hostname.', category: 'enterprise' }, // ─── Additional Transactional ─── { id: 'sendinblue_legacy', name: 'Sendinblue (Legacy)', iconFile: smtpIcon('sendinblue_legacy'), host: 'smtp-relay.sendinblue.com', port: 587, encryption: 'tls', auth: 1, hint: 'Now rebranded as Brevo.', category: 'transactional' }, { id: 'mailchimp_transactional', name: 'Mailchimp Transactional', iconFile: smtpIcon('mailchimp_transactional'), host: 'smtp.mandrillapp.com', port: 587, encryption: 'tls', auth: 1, category: 'transactional' }, { id: 'amazon_ses_us_west', name: 'Amazon SES (us-west-2)', iconFile: smtpIcon('amazon_ses_us_west'), host: 'email-smtp.us-west-2.amazonaws.com', port: 587, encryption: 'tls', auth: 1, category: 'transactional' }, { id: 'amazon_ses_eu_central', name: 'Amazon SES (eu-central-1)', iconFile: smtpIcon('amazon_ses_eu_central'), host: 'email-smtp.eu-central-1.amazonaws.com', port: 587, encryption: 'tls', auth: 1, category: 'transactional' }, { id: 'amazon_ses_ap_south', name: 'Amazon SES (ap-south-1)', iconFile: smtpIcon('amazon_ses_ap_south'), host: 'email-smtp.ap-south-1.amazonaws.com', port: 587, encryption: 'tls', auth: 1, category: 'transactional' }, { id: 'dyn', name: 'Dyn (Oracle)', iconFile: smtpIcon('dyn'), host: 'smtp.dynect.net', port: 587, encryption: 'tls', auth: 1, category: 'transactional' }, // ─── Additional Hosting ─── { id: 'vultr', name: 'Vultr', iconFile: smtpIcon('vultr'), host: 'mail.yourdomain.com', port: 587, encryption: 'tls', auth: 1, hint: 'Vultr VPS — configure your own mail server.', category: 'hosting' }, { id: 'digitalocean', name: 'DigitalOcean (via 3rd party)', iconFile: smtpIcon('digitalocean'), host: 'smtp.sendgrid.net', port: 587, encryption: 'tls', auth: 1, hint: 'DigitalOcean blocks port 25 — use a relay service.', category: 'hosting' }, { id: 'linode', name: 'Linode / Akamai', iconFile: smtpIcon('linode'), host: 'mail.yourdomain.com', port: 587, encryption: 'tls', auth: 1, category: 'hosting' }, ];