libreworks / swiftmailer-spools

SwiftMailer库使用的额外spools

2.0.0 2018-02-10 23:05 UTC

This package is not auto-updated.

Last update: 2024-09-19 13:09:49 UTC


README

SwiftMailer库使用的额外spools。

这包括PDO和MongoDB的spools。

Packagist Build Status Scrutinizer Code Quality Code Coverage

安装

您可以使用Composer安装此库

$ composer require libreworks/swiftmailer-spools
  • 此项目的master分支(版本2.x)依赖于SwiftMailer 6.0+,需要PHP 7.0。
  • 此项目的1.x版本依赖于SwiftMailer 5.4+,需要PHP 5.3。它也兼容HHVM。

合规性

此库的版本将遵循语义版本控制

我们的代码旨在遵守PSR-1PSR-2。如果您发现任何与标准合规性相关的问题,请提交拉取请求!

示例

以下是使用spools发送的Swift_Mailer对象实例化的方法。

$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));

以下是实例化用于发送缓存的电子邮件的Swift_Transport的方法。

$transport = \Swift_SmtpTransport::newInstance($smtpHost, $smtpPort, $smtpEncrypt)
    ->setUsername($smtpUsername)
    ->setPassword($smtpPassword);

$spool->recover();
$spool->flushQueue($transport);

PDO缓池

$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缓池

$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缓池(1.x版本中已弃用;2.x版本中已移除)

$client = new \MongoClient();
$db = new \MongoDB("dbname", $client);
$collection = new \MongoCollection($db, "emails");
$spool = new \Swift_MongoSpool($collection);