使用 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!" 错误。
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!" 错误。