Codeigniter4 email queue
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.
- Codeigniter 4.x
composer require kgrruz/codeigniter4-email-queue
run migrations command:
php spark migrate -n EmailQueue
You must set these configuration 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, $data);
enqueue method receives 3 arguments:
- First argument is a string of email addresses that will be treated as recipients.
- Second argument is an string with the email subject
- Third arguments is an array of view variables to be passed to the email template
message: Email's body text/html
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.
Run the tests