f500/swiftmailer-sparkpost

此包已被弃用且不再维护。未建议替代包。

SparkPost API 的 SwiftMailer 传输实现。

v1.5.0 2022-08-23 06:00 UTC

This package is not auto-updated.

Last update: 2023-10-09 02:16:10 UTC


README

Build Status Code Coverage Scrutinizer Code Quality

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

覆盖收件人

覆盖所有 ToCcBcc 地址,但保持名称和每个收件人的属性不变。

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

许可证

版权 2017 Future500 B.V.