This bundle faciliates using a database to spool messages to with SwiftMailer and Symfony2., (*1)
At present, it only works with the Doctrine EntityManager and entities managed with this., (*2)
Installation
First of all, get the bundle into your project., (*3)
Via Composer:, (*4)
-
Add the following line to your composer.json require section:, (*5)
{
"require": {
"whiteoctober/swiftmailerdbbundle": "dev-master"
}
}
-
Download the bundle via Composer:, (*6)
$ php composer.phar update whiteoctober/swiftmailerdbbundle
Via the deps files:, (*7)
-
Add the following lines in your deps
file:, (*8)
[WhiteOctoberSwiftMailerDBBundle]
git=git://github.com/whiteoctober/WhiteOctoberSwiftMailerDBBundle.git
target=/bundles/WhiteOctober/SwiftMailerDBBundle
Run the vendors script:, (*9)
./bin/vendors install
-
Add the WhiteOctober namespace to your autoloader:, (*10)
// app/autoload.php
$loader->registerNamespaces(array(
'WhiteOctober' => __DIR__.'/../vendor/bundles',
));
Once you've got the bundle downloaded in your Symfony project, you'll need to add it to the kernel,
and add some configuration parameters, so that it knows which entity you want to use., (*11)
-
Add the bundle to your application's kernel:, (*12)
// app/AppKernel.php
public function registerBundles()
{
return array(
// ...
new WhiteOctober\SwiftMailerDBBundle\WhiteOctoberSwiftMailerDBBundle(),
// ...
);
}
-
Configure the white_october_swift_mailer_db
service in your config.yml:, (*13)
white_october_swift_mailer_db:
entity_class: Full\Path\To\Mail\Entity
Read below about how to construct this entity., (*14)
-
Tell SwiftMailer to use the database spooler:, (*15)
swiftmailer:
spool:
type: db
That's it for bundle installation and configuration., (*16)
Mail entity
You will need to create an entity that can be persisted and that extends from the
EmailInterface
interface in the bundle. At the moment, the bundle expects a
property to be available on your entity called 'status', since this field is queried., (*17)
Once you have your entity all set up, use the full namespaced path in your config.yml
configuration as detailed above., (*18)