我正在尝试使用SendinBlue的API v3 Php Library(https://github.com/sendinblue/APIv3-php-library)向多个收件人发送电子邮件。
下面的代码,我认为,它设置正确-因为代码打印了代码的$result
部分,这意味着没有异常。
但是,当测试发送给多个收件人时,只有数组中最后一个电子邮件地址(下面代码中的person2@exampe.com)会收到电子邮件。
如果我翻转to
数组的内容,使person1@example.com
出现在数组的最后,那么只有该地址会收到电子邮件。
下面是示例代码:
// ####################################################
// Sendinblue Email
// ####################################################
$config = SendinBlue\Client\Configuration::getDefaultConfiguration()->setApiKey('api-key', $send_in_blue_api_key);
$apiInstance = new SendinBlue\Client\Api\TransactionalEmailsApi(
new GuzzleHttp\Client(),
$config
);
$sendSmtpEmail = new \SendinBlue\Client\Model\SendSmtpEmail();
$sendSmtpEmail['subject'] = 'Mulitple Recipients Email Test';
$sendSmtpEmail['htmlContent'] = $html;
$sendSmtpEmail['sender'] = array('name' => 'Test Messages', 'email' => 'messages@example.com');
$sendSmtpEmail['to'] = array(
array('email' => 'person1@example.com', 'name' => 'Bugs Bunny'
, 'email' => 'person2@example.com', 'name' => 'Daffy Duck')
);
$sendSmtpEmail['replyTo'] = array('email' => 'sender@example.com', 'name' => 'Reply Name');
try {
$result = $apiInstance->sendTransacEmail($sendSmtpEmail);
print_r($result);
} catch (Exception $e) {
$send_error = $e->getMessage();
print_r($send_error);
}
我尝试将to
数组从:
$sendSmtpEmail['to'] = array(
array('email' => 'person1@example.com', 'name' => 'Bugs Bunny'
, 'email' => 'person2@example.com', 'name' => 'Daffy Duck')
);
收件人:
$sendSmtpEmail['to'] = array('email' => 'person1@example.com', 'name' => 'Bugs Bunny'
, 'email' => 'person2@example.com', 'name' => 'Daffy Duck');
但是,API返回了以下内容,我认为这意味着我在to
数组中定义多个收件人的方式是正确的:
[400] Client error: `POST https://api.sendinblue.com/v3/smtp/email` resulted in a `400 Bad Request` response:
{"code":"invalid_parameter","message":"to is not valid"}
我想知道是否有任何办法绕过这个问题?
1条答案
按热度按时间64jmpszr1#
你必须创建一个数组的数组。每个数组都应该有
email
和name
键:短数组语法:
等同于: