https://github.com/libreworks/swiftmailer-spools
Additional spools for use with the SwiftMailer library.
https://github.com/libreworks/swiftmailer-spools
Last synced: about 1 year ago
JSON representation
Additional spools for use with the SwiftMailer library.
- Host: GitHub
- URL: https://github.com/libreworks/swiftmailer-spools
- Owner: libreworks
- License: mit
- Created: 2015-10-29T20:25:40.000Z (over 10 years ago)
- Default Branch: master
- Last Pushed: 2019-06-27T13:56:48.000Z (almost 7 years ago)
- Last Synced: 2025-04-12T04:53:49.375Z (about 1 year ago)
- Language: PHP
- Size: 19.5 KB
- Stars: 3
- Watchers: 2
- Forks: 1
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# swiftmailer-spools
Additional spools for use with the SwiftMailer library.
This includes spools for PDO and MongoDB.
[](https://packagist.org/packages/libreworks/swiftmailer-spools)
[](https://travis-ci.org/libreworks/swiftmailer-spools)
[](https://scrutinizer-ci.com/g/libreworks/swiftmailer-spools/?branch=master)
[](https://scrutinizer-ci.com/g/libreworks/swiftmailer-spools/?branch=master)
## Installation
You can install this library using Composer:
```console
$ composer require libreworks/swiftmailer-spools
```
* The master branch (version 2.x) of this project depends on SwiftMailer 6.0+, which requires PHP 7.0.
* Version 1.x of this project depends on SwiftMailer 5.4+, which requires PHP 5.3. It also runs just fine on HHVM.
## Compliance
Releases of this library will conform to [Semantic Versioning](http://semver.org).
Our code is intended to comply with [PSR-1](http://www.php-fig.org/psr/psr-1/) and [PSR-2](http://www.php-fig.org/psr/psr-2/). If you find any issues related to standards compliance, please send a pull request!
## Examples
Here's how to instantiate a `Swift_Mailer` object that uses the spools to send.
```php
$mailer = \Swift_Mailer::newInstance(
\Swift_SpoolTransport::newInstance(
$spool // your spool goes here
)
);
// this e-mail will get spooled
$mailer->send(new \Swift_Message($subject, $body, $contentType, $charset));
```
Here's how to instantiate a `Swift_Transport` to send spooled e-mails.
```php
$transport = \Swift_SmtpTransport::newInstance($smtpHost, $smtpPort, $smtpEncrypt)
->setUsername($smtpUsername)
->setPassword($smtpPassword);
$spool->recover();
$spool->flushQueue($transport);
```
### PDO Spool
```php
$pdo = new \PDO("mysql:dbname=testdb;host=127.0.0.1", 'user', 'pass');
$spool = new \Swift_PdoSpool(
$pdo,
"email", // table
"id", // primary key field
"message", // serialized email field
"sentOn", // sent integer timestamp
);
```
### MongoDB Spool
```php
$manager = new \MongoDB\Driver\Manager("mongodb://localhost:27017");
$rp = new \MongoDB\Driver\ReadPreference(\MongoDB\Driver\ReadPreference::RP_PRIMARY_PREFERRED);
$wr = new \MongoDB\Driver\WriteConcern(\MongoDB\Driver\WriteConcern::MAJORITY);
$spool = new \Swift_MongoDbSpool(
$manager,
"dbname.emails",
$rp, // optional
$wc, // optional
);
```
### Mongo Spool (deprecated in 1.x; removed in 2.x)
```php
$client = new \MongoClient();
$db = new \MongoDB("dbname", $client);
$collection = new \MongoCollection($db, "emails");
$spool = new \Swift_MongoSpool($collection);
```