Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/radutopala/tssautomailerbundle

Swiftmailer Spool for Doctrine packaged into a Symfony2 Bundle
https://github.com/radutopala/tssautomailerbundle

pheanstalk php spool swiftmailer swiftmailer-spool symfony symfony-bundle

Last synced: about 1 month ago
JSON representation

Swiftmailer Spool for Doctrine packaged into a Symfony2 Bundle

Awesome Lists containing this project

README

        

TSSAutomailerBundle
===================

Swiftmailer Spool for Doctrine packaged into a Symfony2 Bundle

Installation instructions:

- Easiest way to install is via composer, add those lines to `./composer.json`:

```
"require": {
...
"tss/automailer-bundle": "dev-master"
}
```

and then run `composer.phar install`

- Then enable the bundle in `./app/AppKernel.php`:

```
public function registerBundles()
{
$bundles = [
...
new TSS\AutomailerBundle\TSSAutomailerBundle(),
];
}
```

- Change Swiftmailer spool type in `./app/config.yml`:

```
swiftmailer:
...
spool: { type: automailer }
```

- Update your db with Bundle's entity:

```
app/console doctrine:schema:update --force
```

Set a cron to execute the queue:

```
app/console automailer:spool:send
```

You can also test the spool by adding a new email with:

```
app/console automailer:test [email protected]
```

Automailer has also a Beanstalk integration feature, which uses pheanstalk to send a job with `automailer:spool:send` to a queue/tube. This feature is activated automatically once a new email is sent through mailer, if pheanstalk is installed and if you add this inside `./app/config.yml`:

```
tss_automailer:
beanstalk: true
```

You can also customize the entity manager:

```
tss_automailer:
manager: doctrine_mongodb.odm.document_manager
class: TSS\AutomailerBundle\DefaultDocument\Automailer
```

You can easily customize the class used for the entity or document by simply configuring the class in `config.yml` and disabling the relevant functionality like this:

```
tss_automailer:
class: AppBundle\Entity\Automailer # or AppBundle\Document\Automailer, your specific path to your entity or document
disable_default_document: true # disables the default document so that you can use your own
disable_default_entity: true # disables the default entity so that you can use your own
```

In order to customize the entity or document that you wish to use with your own functionality, you can do so by extending `TSS\Automailer\Model\Automailer` and adding the relevant `@ODM\Document()` or `@ORM\Entity()` annotation to your class.

Enjoy :)