Queue, preview and and send emails stored in the database.
MIT License
Queue, preview and and send emails stored in the database.
This package provides an interface for creating emails on the fly and store them in a queue to be processed later by an offline worker using a Codeigniter4 CLI command.
composer require kgrruz/codeigniter4-email-queue
php spark migrate -n EmailQueue
You must set these configuration in the app/Config/Email.php or set these values using the codeigniter4/settings package before using it:
setting('Email.fromEmail')
setting('Email.fromName')
setting('Email.protocol')
In case of SMTP protocol:
setting('Email.SMTPHost')
setting('Email.SMTPPort')
setting('Email.SMTPUser')
setting('Email.SMTPPass')
setting('Email.SMTPCrypto')
setting('Email.SMTPTimeout')
setting('Email.SMTPKeepAlive')
Default email settings:
$config['mailpath'] = '/usr/sbin/sendmail';
$config['wordWrap'] = true;
$config['mailType'] = 'html';
Whenever you need to send an email, use the EmailQueue model to create and queue a new one by storing the correct data:
use EmailQueue\EmailQueue;
EmailQueue::enqueue($to, $subject, $attachments, $data);
enqueue
method receives 3 arguments:
message
: Email's body text/html
$data['message'] = "hello world message";
Emails should be sent using bundled Sender command, use -l
option to
limit the number of emails processed
# php spark emails:send -l 10
You can configure this command to be run under a cron or any other tool you wish to use.
./vendor/bin/phpunit tests/