PROJECT / 13 FEATURE ARTICLE

Bulk EmailSender

TYPE Automation ToolSTATUS live

A browser-to-automation workflow for preparing personalized email tasks.

01 Project overview

Prepare once, deliver through a separate run

Bulk Email Sender turns a recipient CSV and reusable HTML template into a task for personalized SMTP email. The browser interface helps prepare and preview that task; it does not send messages.

The embedded V5 demo covers this preparation stage and stops at task JSON. Actual delivery runs separately, either locally with Node.js or through GitHub Actions; both paths use the same task format and SMTP configuration, then produce a results report.

02 System flow

Preparation ends at the task file

CSV recipients + HTML template
Browser task builder
Task JSON
Task JSON
Local Node.js sender
Nodemailer / SMTP
Results JSON
Task JSON in tasks/
GitHub Actions
SMTP delivery
Results JSON

The real repository workflow continues from task JSON to local Node.js or GitHub Actions delivery through SMTP. The embedded V5 demo ends at task preparation and never sends email.

03 Implementation

One task model, two execution paths

The repository browser UI uses Papa Parse to read recipient CSV, requires an email column, previews up to five rows, and substitutes double-curly variables such as {{name}} in the subject and HTML body. The dependency-free embedded V5 demo covers task preparation with a small local CSV parser and renders CSV and template values as text; it stops at task JSON and does not execute HTML-like input.

The local Node.js command reads a task JSON path and sends personalized messages sequentially with Nodemailer over SMTP. The GitHub Actions workflow processes task files added under tasks/ and contains its own inline sender logic. Both paths use SMTP settings from environment configuration or GitHub Secrets and write a results JSON file with success and failure counts.

04 Use the workflow

From recipient list to delivery report

  1. 01

    Compose

    Enter a subject and HTML template, then add double-curly variables for recipient-specific fields.

  2. 02

    Prepare recipients

    Upload a CSV with an email column. Other columns can supply values for the template.

  3. 03

    Preview and prepare

    The embedded demo previews up to five recipients, substitutes template variables, and generates task JSON.

  4. 04

    Choose execution

    In the real repository workflow, run the task locally with Node.js or add its JSON under tasks/ for GitHub Actions.

  5. 05

    Review results

    After external execution, inspect the results JSON for recipient totals, successes, failures, and recorded errors.

05 Interactive demo

Build a task without sending

Load sample recipients or a local CSV, preview template substitution, and generate task JSON. No email is sent from this demo.