Developed with love by KnpLabs Hire us for your project!
22

WhiteOctoberSwiftMailerDBBundle

by whiteoctober

A bundle to facilitate SwiftMailer spooling messages to a database

This bundle faciliates using a database to spool messages to with SwiftMailer and Symfony2.

At present, it only works with the Doctrine EntityManager and entities managed with this.

Installation

First of all, get the bundle into your project.

Via Composer:

  1. Add the following line to your composer.json require section:

    {
        "require": {
            "whiteoctober/swiftmailerdbbundle": "1.0.1"
        }
    }
    
  2. Download the bundle via Composer:

    $ php composer.phar update whiteoctober/swiftmailerdbbundle
    

Via the deps files:

  1. Add the following lines in your deps file:

    [WhiteOctoberSwiftMailerDBBundle]
        git=git://github.com/whiteoctober/WhiteOctoberSwiftMailerDBBundle.git
        target=/bundles/WhiteOctober/SwiftMailerDBBundle
    

    Run the vendors script:

    ./bin/vendors install
    
  2. Add the WhiteOctober namespace to your autoloader:

    // 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.

  1. Add the bundle to your application's kernel:

    // app/AppKernel.php
    public function registerBundles()
    {
        return array(
            // ...
            new WhiteOctober\SwiftMailerDBBundle\WhiteOctoberSwiftMailerDBBundle(),
            // ...
        );
    }
    
  2. Configure the white_october_swift_mailer_db service in your config.yml:

    white_october_swift_mailer_db:
        entity_class: Full\Path\To\Mail\Entity
    

    Read below about how to construct this entity.

  3. Tell SwiftMailer to use the database spooler:

    swiftmailer:
        spool:
            type: db
    

That's it for bundle installation and configuration.

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.

Once you have your entity all set up, use the full namespaced path in your config.yml
configuration as detailed above.

Optional: keeping sent messages in the database

By default, messages which were succesfully sent will be deleted from the database. It is possible to configure
the bundle to keep those messages in your config.yml:

white_october_swift_mailer_db:
    keep_sent_messages: true
white_october_swift_mailer_db:
entity_class: ~ # Required
keep_sent_messages: false
  • Merge pull request #13 from whiteoctober/12-doctrine-manager
    By richsage, 2 years ago
  • Make queue flushing work with deferred explicit change tracking policy
    By richsage, 2 years ago
  • Use Doctrine manager to enable reset if required
    By richsage, 2 years ago
  • Merge pull request #11 from lenar/patch-1
    By richsage, 2 years ago
  • Make queue flushing work with deferred explicit change tracking policy
    By lenar, 2 years ago
  • Merge pull request #10 from sam0delkin/add-env-support
    By richsage, 2 years ago
  • Add environment support for emails spooling
    By sam0delkin, 2 years ago
  • Merge pull request #7 from choonge/issue_6
    By richsage, 3 years ago
  • Add option to keep sent messages in the database
    By , 3 years ago
  • Bump README Composer installation version.
    By richsage, 3 years ago
  • Merge pull request #4 from garak/patch-1
    By richsage, 3 years ago
  • Update DatabaseSpool.php
    By garak, 3 years ago
  • Merge pull request #3 from falinsky/patch-1
    By richsage, 3 years ago
  • provide compatibility with newer versions of symfony
    By falinsky, 4 years ago
  • fixed typo.
    By richsage, 4 years ago
  • Updated README to use tag.
    By richsage, 4 years ago
  • Added explicit limit usage.
    By richsage, 4 years ago
  • Added limit restriction on DB retrieval (fixes #2)
    By richsage, 4 years ago
  • More updates - removed redundant packages.
    By richsage, 4 years ago
  • Composer dependencies updated.
    By richsage, 4 years ago
  • Switched back to default alias.
    By richsage, 4 years ago
  • Updated README to include Composer installation.
    By richsage, 4 years ago
  • Added composer.json
    By richsage, 5 years ago
  • Initial commit.
    By richsage, 5 years ago