繁体   English   中英

如何使用SparkPost PHP API一次性发送多封电子邮件?

[英]How to send multiple emails in one go with SparkPost PHP API?

我已经在Sparkpost PHP API https://github.com/SparkPost/php-sparkpost#send-an-email-using-the-transmissions-endpointhttps://github.com/SparkPost中成功使用了PHP传输端点/ php-sparkpost#wait-synchronous,但是现在我需要在程序的同一点向两个不同的地址发送两个不同的电子邮件。

似乎最明显的方法是使用异步方法https://github.com/SparkPost/php-sparkpost#then-asynchronous,但是我无法在post端点上使用它。 下面的代码。

或者,还有更好的方法? 我不确定如何使同步代码一个接一个地执行两个单独的请求。

$promise1 = $sparky->transmissions->post([
            'content' => [
                'from' => ['name' => 'My Service', 'email' => 'noreply@myservice.com'],
                'subject' => 'Booking Confirmation',
                'html' => $html,
                ],
            'recipients' => [['address' => ['email' => 'myemail@gmail.com']]],
            'options' => ['open_tracking' => false, 'click_tracking' => false]
            ]);

      $promise1->then(
        function ($response) // Success callback
            {
            echo('success promise 1');
            },
        function (Exception $e) // Failure callback
            {
            dump($e->getCode()."<br>".$e->getMessage());
            }
        );

$promise2 = $sparky->transmissions->post([
           'content' => [
               'from' => ['name' => 'My Service', 'email' => 'noreply@myservice.com'],
               'subject' => 'Another Email',
               'html' => $html,
               ],
           'recipients' => [['address' => ['email' => 'anotheremail@gmail.com']]],
           'options' => ['open_tracking' => false, 'click_tracking' => false]
           ]);

      $promise2->then(
       function ($response) // Success callback
           {
           echo('success promise 2');
           },
       function (Exception $e) // Failure callback
           {
           dump($e->getCode()."<br>".$e->getMessage());
           }
       );

您已经为诺言实现和拒绝定义了处理程序。 但是,必须履行或拒绝诺言才能调用处理程序。

由于您正在等待SparkPost的响应,因此需要在promise对象上使用wait()

$promise1->wait(); $promise2->wait();

SparkPost参考的然后(异步)部分中阅读最后一行。

另外,如果您要计划多个承诺,则可以使用\\GuzzleHttp\\Promise\\all()来组合所有承诺(如同一部分第二行中的建议)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM