English | 简体中文
Chinese name: 个性化批量邮件引擎
Personalized Batch Email Engine is a lightweight Codex/OpenClaw skill for sending authorized one-to-one style email batches over SMTP.
It is built for teams that need a simple, scriptable workflow for:
It is not built for scraped leads, unsolicited cold outreach, or bulk prospecting.
Most email automation tools are built around campaign UIs and hidden state. This project keeps the workflow file-based and transparent:
send_log.csv and summary.jsonThat makes it easier to audit, version, and integrate into existing AI or ops workflows.
CSV or JSONL inputconsent_status or audience_type--min-gap-seconds and --max-gap-seconds.env style SMTP secret loading through --smtp-env-fileapproved_to_send.csv conversion into an authorized batchpersonalized-batch-email-engine/
├── README.md
├── SKILL.md
├── assets/
│ └── sample-authorized-email-batch.csv
└── scripts/
├── send_authorized_batch.py
├── mark_partner_contacts.py
├── convert_openclaw_approved_to_authorized.py
└── smtp_login_probe.py
Required fields:
emailsubjectbodyAt least one authorization field is required for live sends:
consent_statusaudience_typeAccepted authorization values:
opt_insubscribedcustomerpartnerpartner_contacttransactionalsupportinternalRecommended metadata:
authorization_basisauthorization_noterelationship_ownerfrom_emailreply_tolist_unsubscribeDry-run:
python3 scripts/send_authorized_batch.py \
--input assets/sample-authorized-email-batch.csv \
--output-dir /tmp/authorized-email-dryrun \
--dry-run
SMTP login test:
python3 scripts/smtp_login_probe.py \
--smtp-env-file /path/to/.smtp_env \
--smtp-host smtp.example.com \
--smtp-port 465 \
--smtp-security ssl \
--smtp-username ops@example.com \
--smtp-password-env SMTP_PASSWORD
Authorized live send:
python3 scripts/send_authorized_batch.py \
--input /path/to/authorized.csv \
--output-dir /tmp/authorized-live \
--smtp-env-file /path/to/.smtp_env \
--smtp-host smtp.example.com \
--smtp-port 465 \
--smtp-security ssl \
--smtp-username ops@example.com \
--smtp-password-env SMTP_PASSWORD \
--from-email ops@example.com \
--reply-to ops@example.com \
--min-gap-seconds 2 \
--max-gap-seconds 3
Both formats are supported:
SMTP_PASSWORD=your-secret
or:
export SMTP_PASSWORD=your-secret
Adds authorization fields for lists that already come from a real partner or supplier relationship.
Converts an OpenClaw approved_to_send.csv file into a structured
authorized.csv that this skill can send.
Validates SMTP credentials without sending mail.
Every run writes:
send_log.csvsummary.jsonThese files are designed to be easy to inspect, automate around, and commit to an ops repository if needed.
A lightweight SMTP email automation skill for authorized one-to-one batch delivery, partner-contact batches, dry-runs, and local Mailpit testing.
smtp, email-automation, python, codex-skill, mailpit, mailtrap,
transactional-email, ops-tooling
Add the license that matches your release plan before publishing.