libreworks / swiftmailer-spools
Additional spools for use with the SwiftMailer library
Installs: 15 158
Dependents: 0
Suggesters: 0
Security: 0
Stars: 3
Watchers: 3
Forks: 1
Open Issues: 1
Requires
- php: >=7.0.0
- swiftmailer/swiftmailer: ^6.0
Requires (Dev)
- phpdocumentor/reflection-docblock: ^2.0
- phpunit/phpunit: ^6.0.0
This package is not auto-updated.
Last update: 2024-12-12 14:30:53 UTC
README
Additional spools for use with the SwiftMailer library.
This includes spools for PDO and MongoDB.
Installation
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.
Compliance
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!
Examples
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 Spool
$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
$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)
$client = new \MongoClient(); $db = new \MongoDB("dbname", $client); $collection = new \MongoCollection($db, "emails"); $spool = new \Swift_MongoSpool($collection);