使用 MailGun API - 在 Yii2 中批量发送

Using MailGun API - Batch Sending in Yii2

Yii2框架的项目我使用MailGun。 这里我想使用 MailGun Batch。我在整个互联网上搜索了一个示例或教程,但它仍然不起作用,并且我在每一步都收到一条错误消息。 这是我的 post 函数,电子邮件应该发送到这里。和我下面的错误信息。 希望你能帮助我

public function actionEmail() {
        $dataCollection = Trace::getOrderItemCollection();

        $configurator = new HttpClientConfigurator();
        $configurator->setApiKey( 'key-******API-KEY*******' );
        $configurator->setDebug( true );
        $mgClient     = new Mailgun( $configurator, new ArrayHydrator() );
        $batchMessage = $mgClient->messages()->getBatchMessage( "************MAilAdres******************.mailgun.org" );

        $batchMessage->setFromAddress( 'info@myemail.com' );
        $batchMessage->setSubject( 'Test-Subject' );
        $batchMessage->setHtmlBody( '<html>This is a test HTML text.</html>' );
        $batchMessage->setTextBody( "This is a test body text." );

        foreach ( Trace::getData( $dataCollection ) as $item ) {
            $batchMessage->addToRecipient( $item['email'] );
        }

        $batchMessage->finalize();
    }

似乎正在使用 mailgun/mailgun-php 包。

如其文档中所述here试试这个:

$mg = Mailgun::create( '**API-KEY**' );

// Setup batch
$batchMessage = $mg->messages()->getBatchMessage( "**DOMAIN**" );
$batchMessage->setFromAddress( "**EMAIL-FROM**");
$batchMessage->setSubject( "A Batch Message from the PHP SDK!" );
$batchMessage->setHtmlBody( '<html>This is the text body of the message!</html>' );
$batchMessage->setTextBody( "This is the text body of the message!" );

// Add receivers
foreach($receivers as $receiverEmail) {
    $batchMessage->addToRecipient( $receiverEmail);
}

// Send all that remain in queue
$batchMessage->finalize();

请记住,使用 $batchMessage->addToRecipient() 会将消息添加到队列中。每当队列达到 1000 个收件人时,它就会发送邮件。确保调用 $batchMessage->finalize(); 发送队列中剩余的所有邮件。

另请注意,在使用沙盒域进行测试时,每个收件人都必须是经过授权的电子邮件地址。否则你可能 运行 变成 this "Check your inputs!" 错误。