SendGrid在php中添加多个电子邮件地址到收件人列表


SendGrid add multiple email addresses to Recipient Lists in php

在收件人列表中添加多个电子邮件地址非常困难。

我成功添加一个电子邮件地址到收件人列表,见这里的代码

  $email_list = array ( "email" => "srinivas1@addpronetwork.com",'name' => "srinivas");
  $json_email =  json_encode($email_list);
  $url = 'https://api.sendgrid.com/api/newsletter/lists/email/add.json';
  $params = array(
    'list'   => urlencode($list_name),
    'data' =>  $json_email,
    'api_user'  => $this->config->item('api_username'),
    'api_key'   => $this->config->item('api_password'),
  );
    $request =  $url;
    // Generate curl request
    $session = curl_init($request);
    curl_setopt($session, CURLOPT_SSL_VERIFYPEER, false);
    // Tell curl to use HTTP POST
    curl_setopt ($session, CURLOPT_POST, true);
    // Tell curl that this is the body of the POST
    curl_setopt ($session, CURLOPT_POSTFIELDS, $params);
    // Tell curl not to return headers, but do return the response
    curl_setopt($session, CURLOPT_HEADER, false);
    // Tell PHP not to use SSLv3 (instead opting for TLS)
    /*curl_setopt($session, CURLOPT_SSLVERSION, CURL_SSLVERSION_TLSv1_2);*/
    curl_setopt($session, CURLOPT_RETURNTRANSFER, true);
    // obtain response
    $response = curl_exec($session);
    curl_close($session);
    $obj = json_decode($response);

在上面的代码中,我将单个电子邮件地址添加到列表中。我的数据参数看起来像这样

data => '{ "name": "srinivas", "email": "srinivas@addpronetwork.com" }'

当我试图添加多个电子邮件地址,但我面临的问题…见数据参数

['{"name":"Srinu","email":"srinivas@addpronetwork.com"}','{"name":"Pallavi","email" :"pallavi@addpronetwork.com"}']

见下面的链接

https://sendgrid.com/docs/API_Reference/Marketing_Emails_API/emails.html的东西—

您需要像这样将每个电子邮件条目添加为自己的'data'变量:

curl -X POST https://api.sendgrid.com/api/newsletter/lists/email/add.json '
 -d 'api_user=your_sendgrid_username' '
 -d 'api_key=your_sendgrid_password' '
 -d 'list=my_list' '
 -d 'data[]={"email":"address1@domain.com","name":"contactName1"}' '
 -d 'data[]={"email":"address2@domain.com","name":"contactName2"}'

在过去,我只是通过我的列表循环添加他们到我的营销邮件,我不真的在php工作,但这似乎工作:

$email_list = array ( '{"name":"Srinu","email":"srinivas@addpronetwork.com"}','{"name":"Pallavi","email" :"pallavi@addpronetwork.com"}');
$url = 'https://api.sendgrid.com/api/newsletter/lists/email/add.json';
foreach ($email_list as &$email) {
 $params = array(
'list'   => "my_list"),
'data[]' =>  $email,
'api_user'  => "api_username",
'api_key'   => "api_password",
);
$request =  $url;
// Generate curl request
$session = curl_init($request);
curl_setopt($session, CURLOPT_SSL_VERIFYPEER, false);
// Tell curl to use HTTP POST
curl_setopt ($session, CURLOPT_POST, true);
// Tell curl that this is the body of the POST
curl_setopt ($session, CURLOPT_POSTFIELDS, $params);
// Tell curl not to return headers, but do return the response
curl_setopt($session, CURLOPT_HEADER, false);
// Tell PHP not to use SSLv3 (instead opting for TLS)
/*curl_setopt($session, CURLOPT_SSLVERSION, CURL_SSLVERSION_TLSv1_2);*/
curl_setopt($session, CURLOPT_RETURNTRANSFER, true);
// obtain response
$response = curl_exec($session);
curl_close($session);
$obj = json_decode($response);
print_r($response);

希望这能让你振作起来!

相关文章: