Additional spools for use with the SwiftMailer library.
This includes spools for PDO and MongoDB.
You can install this library using Composer:
$ 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.
Releases of this library will conform to Semantic Versioning.
Our code is intended to comply with PSR-1 and PSR-2. If you find any issues related to standards compliance, please send a pull request!
Here's how to instantiate a Swift_Mailer
object that uses the spools to send.
$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.
$transport = \Swift_SmtpTransport::newInstance($smtpHost, $smtpPort, $smtpEncrypt)
->setUsername($smtpUsername)
->setPassword($smtpPassword);
$spool->recover();
$spool->flushQueue($transport);
$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
);
$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
);
$client = new \MongoClient();
$db = new \MongoDB("dbname", $client);
$collection = new \MongoCollection($db, "emails");
$spool = new \Swift_MongoSpool($collection);