Download the PHP package tourze/email-direct-marketing-bundle without Composer
On this page you can find all versions of the php package tourze/email-direct-marketing-bundle. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Informations about the package email-direct-marketing-bundle
Email Direct Marketing Bundle
中文
A Symfony bundle for managing email marketing campaigns with support for bulk email sending, template management, and detailed tracking.
Table of Contents
- Features
- Requirements
- Installation
- Configuration
- Quick Start
- Console Commands
- Admin Interface
- Advanced Usage
- Security
- Contributing
- License
- References
Features
- Campaign Management: Create and manage email marketing campaigns with customizable templates
- Receiver Management: Organize receivers with tags for targeted campaigns
- Sender Pool: Support multiple sender email addresses with rotation
- Template System: Rich HTML email templates with variable substitution
- Queue System: Asynchronous email sending with Symfony Messenger
- Admin Interface: Complete EasyAdmin integration for managing campaigns
- Tracking: Monitor campaign performance with success/failure statistics
- Scheduling: Schedule campaigns to start at specific times
- Tag-based Targeting: Send emails to receivers based on tag filtering
Requirements
- PHP 8.1 or higher
- Symfony 7.3 or higher
- Doctrine ORM 3.0 or higher
- Symfony Messenger component
- Symfony Mailer component
Installation
Configuration
Messenger Transport
Configure Messenger to handle email queue processing:
Database Schema
The bundle will create the following tables:
ims_edm_task- Email marketing campaignsims_edm_template- Email templatesims_edm_sender- Sender email addressesims_edm_receiver- Email recipientsims_edm_queue- Email sending queue
Quick Start
Enable the Bundle
Register the bundle in your bundles.php:
Configure Database
Run migrations to create the required database tables:
Configure Messenger
Add the message handler to your messenger configuration:
Basic Usage
Create a campaign through the admin interface or programmatically:
Console Commands
edm:start-task
Check and start email marketing tasks that are ready to be sent.
This command is designed to be run as a cron job (every minute) to automatically process scheduled campaigns.
Admin Interface
The bundle provides EasyAdmin controllers for managing:
- Tasks: Create and monitor email campaigns
- Templates: Design email templates with variable substitution
- Senders: Manage sender email addresses
- Receivers: Organize email recipients with tags
- Queues: Monitor email sending queue and status
Template Variables
Templates support variable substitution using the ${expression} syntax:
${receiver.getName()}- Receiver's name${receiver.getEmailAddress()}- Receiver's email${task.getTitle()}- Campaign title${now.format('Y-m-d')}- Current date
Advanced Usage
Custom Variable Providers
You can extend the template system with custom variables by creating a service that implements variable providers:
Queue Processing Optimization
For high-volume campaigns, consider optimizing queue processing:
Monitoring and Logging
The bundle integrates with Symfony's logging system:
Architecture
The bundle follows a queue-based architecture:
- Task Creation: Define campaign with template, tags, and schedule
- Queue Generation: When task starts, create queue items for each matching receiver
- Async Processing: Queue items are processed by message handlers
- Status Tracking: Monitor success/failure for each email
Security
Email Validation
The bundle includes built-in email validation:
- Receiver email addresses are validated before adding to queue
- Sender email addresses must be verified
- DMARC/SPF records are recommended for production use
Rate Limiting
Consider implementing rate limiting for your SMTP provider:
Data Protection
- Receiver data is encrypted at rest
- Email content can be sanitized before storage
- Unsubscribe functionality is built-in
Contributing
Please see CONTRIBUTING.md for details.
License
The MIT License (MIT). Please see License File for more information.
References
All versions of email-direct-marketing-bundle with dependencies
doctrine/collections Version ^2.3
doctrine/common Version ^3.5
doctrine/dbal Version ^4.0
doctrine/doctrine-bundle Version ^2.13
doctrine/orm Version ^3.0
doctrine/persistence Version ^3.1 || ^4
easycorp/easyadmin-bundle Version ^4
knplabs/knp-menu Version ^3.7
nesbot/carbon Version ^2.72 || ^3
psr/log Version ^3|^2|^1
symfony/config Version ^6.4
symfony/console Version ^6.4
symfony/dependency-injection Version ^6.4
symfony/doctrine-bridge Version ^6.4
symfony/expression-language Version ^6.4
symfony/form Version ^6.4
symfony/framework-bundle Version ^6.4
symfony/http-foundation Version ^6.4
symfony/http-kernel Version ^6.4
symfony/mailer Version ^6.4
symfony/messenger Version ^6.4
symfony/mime Version ^6.4
symfony/yaml Version ^6.4 || ^7.1
tourze/backtrace-helper Version ~0.0.5
tourze/doctrine-indexed-bundle Version 0.0.*
tourze/doctrine-timestamp-bundle Version 0.0.*
tourze/doctrine-track-bundle Version 0.1.*
tourze/easy-admin-attribute Version 0.1.*
tourze/easy-admin-menu-bundle Version 0.1.*
tourze/enum-extra Version 0.1.*
tourze/symfony-async-bundle Version 0.0.*
tourze/symfony-cron-job-bundle Version 0.1.*