f500 / swiftmailer-sparkpost
此包已被弃用且不再维护。未建议替代包。
SparkPost API 的 SwiftMailer 传输实现。
v1.5.0
2022-08-23 06:00 UTC
Requires
- ext-json: *
- php-http/guzzle7-adapter: ^1.0
- sparkpost/sparkpost: ^2.0
- swiftmailer/swiftmailer: ^6.0
Requires (Dev)
- phpunit/phpunit: ^8.0
- squizlabs/php_codesniffer: ^2.7
README
SwiftMailer 对 SparkPost API 的传输实现。
它使用了官方的 SparkPost PHP 库。
它为 SwiftMailer 消息添加了对一些 SparkPost 特定功能的支持。
安装
composer require f500/swiftmailer-sparkpost
使用
$transport = SwiftSparkPost\Transport::newInstance('API-KEY'); $mailer = Swift_Mailer::newInstance($transport); $message = Swift_Message::newInstance() ->setFrom('me@domain.com', 'Me') ->setTo(['john@doe.com' => 'John Doe', 'jane@doe.com']) ->setSubject('...') ->setBody('...'); $sent = $mailer->send($message);
专用消息
$message = SwiftSparkPost\Message::newInstance() ->setFrom('me@domain.com', 'Me') ->setTo(['john@doe.com' => 'John Doe', 'jane@doe.com']) ->setSubject('...') ->setBody('...') ->setCampaignId('...') ->setPerRecipientTags('john@doe.com', ['...']) ->setMetadata(['...' => '...']) ->setPerRecipientMetadata('john@doe.com', ['...' => '...']) ->setSubstitutionData(['...' => '...']) ->setPerRecipientSubstitutionData('john@doe.com', ['...' => '...']) ->setOptions(['...']);
配置
$config = SwiftSparkPost\Configuration::newInstance(); $transport = SwiftSparkPost\Transport::newInstance('API-KEY', $config); $mailer = Swift_Mailer::newInstance($transport);
覆盖收件人
覆盖所有 To
、Cc
和 Bcc
地址,但保持名称和每个收件人的属性不变。
john@doe.com
变为 override@domain.com
。
$config = SwiftSparkPost\Configuration::newInstance() ->setRecipientOverride('override@domain.com');
gmail 风格
john@doe.com
变为 override+john-doe-com@domain.com
。
$config = SwiftSparkPost\Configuration::newInstance() ->setRecipientOverride('override@domain.com') ->setOverrideGmailStyle(true);
所有消息的选项
$config = SwiftSparkPost\Configuration::newInstance() ->setOptions([ SwiftSparkPost\Option::TRANSACTIONAL => false, SwiftSparkPost\Option::OPEN_TRACKING => false, SwiftSparkPost\Option::CLICK_TRACKING => false, SwiftSparkPost\Option::SANDBOX => true, SwiftSparkPost\Option::SKIP_SUPPRESSION => true, SwiftSparkPost\Option::INLINE_CSS => true, SwiftSparkPost\Option::IP_POOL => 'some-ip-pool', ]);
这些选项也适用于消息,其中它们将覆盖配置的选项。
$message = SwiftSparkPost\Message::newInstance() ->setOptions(['...']);
IP 池概率
添加一个概率因子以仅对发送消息的一部分启用 IP 池。0 将永不使用 IP 池,1 将始终使用。
可用于促进 IP 温暖过程。
$config = SwiftSparkPost\Configuration::newInstance() ->setOptions([SwiftSparkPost\Option::IP_POOL => 'some-ip-pool']) ->setIpPoolProbability(0.5);