izumi-kun/yii2-spoolmailer

Implements email queue using SwiftMailer spool transport and yii2-swiftmailer extension

Maintainers

👁 Izumi-kun

Package info

github.com/Izumi-kun/yii2-spoolmailer

Type:yii2-extension

pkg:composer/izumi-kun/yii2-spoolmailer

Statistics

Installs: 4 146

Dependents: 0

Suggesters: 0

Stars: 4

Open Issues: 0

0.5.0 2017-11-30 19:42 UTC

Requires

Requires (Dev)

Suggests

Provides

None

Conflicts

None

Replaces

None

BSD-3-Clause aea44fc15139becc780d1ff86b092f2dd4760ea6

  • Viktor Khokhryakov <viktor.khokhryakov.woop@gmail.com>

queueemailextensionswiftmaileryii2yii2-swiftmailerspooling

This package is auto-updated.

Last update: 2026-06-15 09:29:34 UTC


README

Implements email queue using SwiftMailer spool transport and yii2-swiftmailer extension.

It supported queues based on built-in SwiftMailer spools or Yii2 Queue Extension.

👁 Latest Stable Version
👁 Total Downloads
👁 Build Status
👁 Scrutinizer Code Quality
👁 Code Coverage

Installation

The preferred way to install this extension is through composer.

Either run

php composer.phar require --prefer-dist izumi-kun/yii2-spoolmailer

or add

"izumi-kun/yii2-spoolmailer": "~1.0.0"

to the require section of your composer.json.

Basic Usage

This way uses built-in SwiftMailer spools: FileSpool (default) or MemorySpool.

Add the following code in your application configuration (both web and console):

return [
 //....
 'components' => [
 //....
 'mailer' => [
 'class' => izumi\spoolmailer\Mailer::class,
 ],
 ],
];

Add the following code in your console configuration:

return [
 //....
 'controllerMap' => [
 'mail' => izumi\spoolmailer\MailController::class,
 ],
];

You can then add an email in queue as follows:

Yii::$app->mailer->compose('contact/html')
 ->setFrom('from@domain.com')
 ->setTo($form->email)
 ->setSubject($form->subject)
 ->queue();

Process email queue by follow console command:

./yii mail/flush

CRON job:

* * * * * php /var/www/yii-app/yii mail/flush >/dev/null 2>&1

Advanced Usage

This way requires Yii2 Queue Extension in your application.

Add the following code in your application configuration (both web and console):

return [
 //....
 'components' => [
 //....
 'mailer' => [
 'class' => izumi\spoolmailer\Mailer::class,
 'spoolMailer' => [
 'class' => izumi\spoolmailer\spools\QueueSpool::class,
 'queue' => 'queue', // the application component ID of the queue object
 ],
 ],
 ],
];

For more details see the Yii2 Queue Guide.

License

BSD-3-Clause