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.