|
|
||
|---|---|---|
| credentials | ||
| docs | ||
| feca_mailshots_plugin | ||
| requirements | ||
| results | ||
| samples | ||
| scripts | ||
| tests | ||
| tools | ||
| .codex | ||
| .gitignore | ||
| README.md | ||
| composer.json | ||
| composer.lock | ||
README.md
FECA Mailshots Plugin
WordPress plugin project for defining, previewing, testing, and running mailshots using:
- data-source definitions stored in a mailshots database,
- recipient/source reads from a separate members database,
- per-user SMTP/IMAP credentials for send and sent-copy behavior.
Repository Overview
feca_mailshots_plugin/: plugin source code.requirements/: project requirements/specifications.tests/: integration/unit/fixture tests.scripts/: local helper scripts (deploy, tunnel, fixture server).credentials/: local development credentials (ignored in Git).results/: implementation notes and investigation outputs.
Key Features
- WordPress admin navigation under
FECA Mailshots. - CRUD admin pages for:
- Mailshots
- Data Sources
- Attachments
- PDF Assets
- Profile page for per-user SMTP/IMAP credentials with explicit connection tests.
- Setup page for environment DB connection settings (admin-only).
- Mailshot Test and Run pages for render/send execution.
- DSL-based data source model with validation and preview.
- REST and admin-post APIs for data source operations.
Runtime Data Routing
As defined in requirements/environment.md:
- Write-path tables (mailshot definitions/assets/run data):
MAILSHOTS_REMOTE_MYSQL_DB - Read-path recipient/source data:
MEMBERS_REMOTE_MYSQL_DB
Local Setup
- Copy env template:
cp credentials/.env.example credentials/.env
- Populate real values in
credentials/.env. - Start MySQL tunnel (if required):
scripts/mysql_tunnel.sh start
- (Optional) run fixture server:
scripts/run_fixture_server.sh start
Testing
Examples:
php tests/integration/test_phase2_db_access.phpphp tests/integration/test_phase3_admin_crud_ui.phpphp tests/integration/test_phase3_db_access.phpphp tests/integration/test_phase4_run_flow.phpphp tests/integration/test_per_user_credentials.php
Deployment
- Deploy script:
scripts/deploy_remote.sh - Supports dry run:
scripts/deploy_remote.sh --dry-run
- Deployment script bumps plugin patch version automatically before real deploy.
Security Notes
- Do not commit secrets.
credentials/.envand key material are ignored by.gitignore.- Per-user mail credentials are stored encrypted in the mailshots DB.
Important References
- Environment baseline:
requirements/environment.md - Mailshot requirements:
requirements/mailshot.md - Data source requirements:
requirements/mailshot_data_source.md