Ви не можете вибрати більше 25 тем Теми мають розпочинатися з літери або цифри, можуть містити дефіси (-) і не повинні перевищувати 35 символів.
Daniel Covington e5c78289ec Add safe HTML template import and image snapshots 2 дні тому
.specs Add safe HTML template import and image snapshots 2 дні тому
src Add Access-backed HTA foundation and safe contact workflow 2 дні тому
templates Add safe HTML template import and image snapshots 2 дні тому
tools Add safe HTML template import and image snapshots 2 дні тому
.gitignore Plan HTA mass mailer with Access backend and add gitignore 2 дні тому
MassMailer.hta Add safe HTML template import and image snapshots 2 дні тому
README.md Add safe HTML template import and image snapshots 2 дні тому
Start-MassMailer.cmd Add Access-backed HTA foundation and safe contact workflow 2 дні тому
config.example.ini Add Access-backed HTA foundation and safe contact workflow 2 дні тому

README.md

MassMailer

Windows HTA application under construction for individual marketing emails for a 9 x 12 postcard business.

Current build

  • Creates an Access .mdb with versioned tables for contacts, suppressions, templates, campaigns, attempts, protected secrets, and audit records.
  • Checks the configured provider, process architecture, MDB, and schema before launching the HTA.
  • Imports UTF-8 contacts from a previewed CSV and records global suppressions.
  • Imports constrained, well-formed HTML templates from TEMPLATE_ROOT, snapshots local PNG/JPEG/GIF images into the MDB, and previews the stored version in an untrusted HTA frame.
  • Stores the SMTP password as a Windows user-protected value in the MDB through an interactive local setup action.
  • Offers an explicit, single-message SMTP transport test to the configured SMTP_TEST_TO address. Campaign sending is not implemented yet.

The app sends no marketing messages in this build. Closing the HTA stops all in-app activity.

Setup on this PC

  1. Copy config.example.ini to config.ini and edit local settings. Set SMTP_TEST_TO to the owner-controlled test inbox. BUSINESS_POSTAL_ADDRESS remains blank until you supply it; future campaign approval will require it. Never place the SMTP password in the INI.
  2. Run C:\Windows\SysWOW64\cscript.exe //nologo tools\init-db.vbs once to create data\MassMailer.mdb. It refuses to overwrite an existing database.
  3. Run Start-MassMailer.cmd. The launcher selects the configured script architecture and opens the MDB before starting the HTA. Use C:\Windows\SysWOW64\cscript.exe //nologo tools\launch.vbs check to check startup without opening the UI.
  4. Import a UTF-8 CSV with an email header. Optional columns are business_name, source_reference, and acquired_at (YYYY-MM-DD). Supply a source reference in the CSV or the form; preview and review rejected rows before importing.
  5. Enter opt-out replies in the suppression form. To prepare an internal transport test, press Set or rotate SMTP password and enter the password in the local console. Then press Send one internal test in the HTA. The test sends one HTML message with an inline image to SMTP_TEST_TO; no live test has been sent from this project yet.
  6. Put template files under TEMPLATE_ROOT and import them from the HTA. The accepted HTML subset and example are in templates/README.md. Imported versions are immutable snapshots; the preview currently shows the template content only. Campaign footer and approval are still in development.

Local config.ini, MDB files, logs, backups, and temporary test data are ignored by Git.

Verification

Run powershell.exe -NoProfile -ExecutionPolicy Bypass -File tools\test-contact-flow.ps1 for a disposable MDB integration check. It covers database initialization and preflight, protected password save/load/rotation using synthetic values, local MIME pickup with an inline image, contact import, duplicate rejection, and suppression. Run powershell.exe -NoProfile -ExecutionPolicy Bypass -File tools\test-template-flow.ps1 for template import, snapshot, preview, and unsafe-input checks. C:\Windows\SysWOW64\cscript.exe //nologo //E:JScript tools\test-contacts.js covers CSV parsing and validation. powershell.exe -NoProfile -ExecutionPolicy Bypass -File tools\test-smtp-capabilities.ps1 checks the configured server's STARTTLS handshake without authenticating or sending mail.

Planning documents

System-wide settings belong in the INI; campaign settings, templates, contacts, queue state, and protected secrets belong in the Access MDB. Authenticated SMTP and inbox rendering still need an internal test message.

Powered by TurnKey Linux.