Permission-Based Gmail OAuth2 Compliance-First

Send Personalized
Email Campaigns
at Scale

A self-hosted campaign manager that sends personalized emails through your own Gmail accounts. Supports OAuth2 and manual SMTP, dynamic placeholders, PDF attachments, and built-in compliance with unsubscribe links and rate limiting.

email-preview.html
Subject: Invoice %RandomInvoiceNumber% from %RandomCompanyName%
 
Hi %FirstName%,
 
Your invoice #INV-2026-0847 from Acme Corp
is due on %DueDate%.
 
Total: %RandomTotal%  |  Shipping: %RandomShippingCharge%
 
Questions? Call us at %CompanyPhone%
 
%RandomName%, Billing Team
%UnsubscribeLink%

Core Features

Everything you need to run compliant, personalized email campaigns through Gmail.

Gmail OAuth2 + SMTP

Connect accounts via Google OAuth2 consent flow or manual SMTP with App Passwords. Supports up to 10 accounts with automatic rotation and rate limiting.

13 Dynamic Placeholders

Personalize every email with recipient data, random names, company names, invoice numbers, dates, totals, and more — all replaced at send time.

PDF Attachments

Convert HTML invoice templates to PDF attachments automatically. Attach plain-text copies, HTML copies, or standard files from your template library.

Recipient Management

Import up to 2,000 recipients per campaign via CSV. Automatic deduplication, email validation, and column mapping for first name, last name, company, and email.

Compliance Built-In

Automatic unsubscribe links, compliance footers, daily sending caps, per-account rate limits, and a suppression list to honor opt-outs.

Real-Time Monitoring

Live send log, progress bar, ETA calculation, pause/resume/stop controls, and per-email status tracking with detailed error reporting.

13 Placeholders

Every placeholder is replaced at send time with real or generated data. Click any chip in the app to insert it into your template.

PlaceholderReplaced With
%FirstName%Recipient's first name
%LastName%Recipient's last name
%CompanyName%Recipient's company name
%RandomCompanyName%Random real company name from 946-name pool (Company.xlsx)
%CompanyPhone%Random phone from the phone pool
%CustomerEmail%Recipient's email address
%RandomName%Random name from 304k name pool
%RandomInvoiceNumber%Realistic invoice number (INV-/ORD-/RF patterns)
%InvoiceDate%Random invoice date (today or recent past)
%DueDate%Due date (7–30 days after invoice date)
%RandomTotal%Random invoice total ($300–$1,500, no repeats)
%RandomShippingCharge%Random shipping charge ($5–$50)
%UnsubscribeLink%Unique unsubscribe URL per recipient

How It Works

Get up and running in four simple steps.

1
Connect Accounts

Upload your Google OAuth credentials.json or add Gmail accounts manually with App Passwords. Up to 10 accounts supported.

2
Import Recipients

Upload a CSV with up to 2,000 contacts. The system validates emails, deduplicates, and maps columns automatically.

3
Compose & Preview

Write your email with placeholders, choose HTML or plain text, attach PDFs, and preview with sample data before sending.

4
Launch & Monitor

Start the campaign and watch real-time progress. Pause, resume, or stop at any time. Export a CSV report when done.

Compliance-First Design

Built with email regulations and best practices in mind.

Automatic Unsubscribe Links

Every email includes a unique one-click unsubscribe URL. Opted-out recipients are added to a suppression list and never emailed again.

Rate Limiting

Configurable delays between sends, per-account daily caps, and a global daily cap to stay within Gmail's sending limits.

Compliance Footer

Automatic physical address and permission reminder appended to every email, satisfying CAN-SPAM and CASL requirements.

Error Auto-Pause

If Gmail returns rate-limit or auth errors, the campaign pauses automatically to protect your sender reputation.

Compliance Footer Preview

You're receiving this email because you opted in to communications from Acme Corp.

Acme Corp · 123 Business Ave, Suite 100 · New York, NY 10001

Unsubscribe · Privacy Policy

Ready to Launch Your Campaign?

Sign in to the dashboard and start sending personalized, compliant emails through Gmail in minutes.

Get Started